Technik, Gothic und Anderes

Technik ist Spiel, Gothic ist ernst und Zeit hat man zuviel

Archiv für 'Linux' Kategorie


Switchconf: Ein kleines, feines aber geniales Tool um die Konfiguration umzuschalten

Geschrieben von skaldrom am 14. August 2007

Das Tool

Laptops sind (meistens) (mehr oder weniger) portabel. Sie müssen sich also viele verschiedene Dinge in ihren Netzwerkanschlüssen gefallen lassen; Andere Konfigurationen, Netze die mit PEAP gesichert sind, Luftnetze, wechselnde Drucker und Windowsshares, etcetc.

Auch zu Hause gibt es unter Umständen Konfigurationen mit und ohne externem Monitor, in verschiedenen Netzwerkzonen (jaa, das gibts wirklich auch zu Hause …) etcetc pipapo.

Natürlich kann man sich das automagisch erledigen lassen. Unter Debian mit ifupdown, etc… Ich mags aber unter meiner Kontrolle auf mein Kommando. Switchconf ist ein kleines, feines Tool, dass die Aufgabe elegant und einfach löst. Es kann für sich angewendet oder von einem, anderen Skript getriggert werden.

Funktionsweise

In einem konfigurierbaren Verzeichnis (normalerweise /etc/switchconf) werden Verzeichnisse für die Konfigurationen angelegt. Beispielsweise home und work. Dort kann nun ein kompletter Verzeichnisbaum mit den Dateien die zu dieser Konfiguration gehören aufgebaut werden; beispielsweise ein /etc/switchconf/home/etc/network/interfaces und ein /etc/switchconf/work/etc/network/interfaces. Das Kommando

switchconf home

grast nun das Ganze /etc/switchconf/home ab und erstellt symbolische Links (konfigurierbar, es kann auch hardlinken und kopieren) vom System auf diese Konfiguration. Also:
/etc/network/interfaces/etc/switchconf/home/etc/network/interfaces

Auf die Arbeitskonfiguration schaltet es um mittels:

switchconf work

Und der Link sieht so aus:
/etc/network/interfaces/etc/switchconf/work/etc/network/interfaces

Weiter gibt es noch die Verzeichnisse /etc/switchconf/before.d und /etc/switchconf/after.d. Alle Skripts in before.d werden vor, alle in after.d nach der Umstellung ausgeführt, damit können Daemons (Cups, PCMCIA, XSupplicant, …) neu gestartet werden damit sie die neue Konfiguration einlesen.

Mögliche Lösungen

Netzwerk
Die Datei /etc/network/interfaces für jede Konfiguration anpassen. Bei statischem DNS eventuell noch /etc/resolv.conf.
Windows Shares
Die Datei /etc/fstab und eventuell die Credentials für jede Konfiguration anpassen.
Zweitmonitor, X-Auflösung, etc…
Die Datei /etc/X11/xorg.conf für jede Konfiguration anpassen.
Drucker
Die Datei /etc/cups/printers.conf für jede Konfiguration anpassen.
XSupplicant, WPA_Supplicant
Die Datei /etc/default/xsupplicant für jede Konfiguration anpassen. ENABLED auf 0 oder 1 setzen, je nachdem ob man ihn will oder nicht…

Es wäre noch mehr denkbar wie SMTP-Host, Hintergrundbild, …

Switchconf kann auch von Netzwerkdetektoren wie laptop-netconf oder Guessnet angestossen werden. Ich finde sein Konzept etwas transparenter wie die eingebauten Monster dieser Produkte… Und vorallem kann man immernoch von Hand umschalten…

Teile und geniesse:
  • Technorati
  • del.icio.us
  • MisterWong
  • Digg
  • StumbleUpon
  • blogmarks
  • Furl
  • Simpy
  • Spurl
  • YahooMyWeb

Eingeordnet in Linux | Keine Kommentare »

ATI (AMD) Radeon Grafikkarte unter Linux

Geschrieben von skaldrom am 13. August 2007

Tja, die Schule geht los und ich hab viel gewurstelt an meinem Laptop… Morgen früh, extrem viel geschlafen, ich starte die Präsi, beginne Weisheiten abzusondern und sehe dass ich die Präsentation am Beamer genau nicht sehe. Es folgt ein wildes Gewurstel an Kabeln, Tastern und Schaltern bis ich kleinlaut ein Windowslaptop holen gehen muss, unter dem spottenden Spalier der Pinguinjäger…

Diagnose

Die AMD-Treiber sind ein proprietäres Modul von ATI selbst. Es treibt das Xorg an und ist wie alle proprietären Module (vmware, gna!, aber das ist ein anderes Thema) abhängig von der Kernelversion und reagiert empfindlich auf Updates. Ob alles ok ist sieht man am Besten mittels fglrxinfo:

$ fglrxinfo
display: :0.0 screen: 0
OpenGL vendor string: Mesa project: www.mesa3d.org
OpenGL renderer string: Mesa GLX Indirect
OpenGL version string: 1.2 (1.5 Mesa 6.5.1)

Hab ichs doch geahnt, Mesa werkelt und nicht ATI. lsmod zeigte mir, dass kein Modul fglrx seine Arbeit tat. Nun, wahrscheinlich wurde wieder der Kernel hinter meinem Rücken upgedated…

Die unrühmliche Ausprobierphase

Nun folgte die obligatorische, eigentlich-weiss-man-es-besser Treiber neuinstallations-, X-reboots- und Restartphase :-) . Sie gipfelte immer irgendwie in:

FATAL: Module fglrx not found.

Die Lösung

Zuerst aufräumen als Root:

rm -Rf /usr/lib/fglrx
rm -Rf /lib/modules/fglrx
dpkg -P fglrx-amdcccle fglrx-driver fglrx-driver-dev fglrx-kernel-src

Dann das Ganze wie in diesem kleinen HOWTO beschrieben installieren:

Folgende Dinge braucht man:

apt-get install module-assistant build-essential dh-make debhelper debconf libstdc++5 linux-headers-$(uname -r)

Dann den Treiber downloaden und die Pakete erstellen:

ati-driver-installer-8.39.4-x86.x86_64.run --buildpkg Debian/etch

Diese installieren:

dpkg -i *.deb

Und das Kernelmodul machen:

cd /usr/src
m-a prepare
m-a a-i fglrx

Ein modprobe fglrx sollte nun klappen. Ev muss man es noch in /etc/modules einbauen.

Ich habe noch eine neue xorg.conf erstellt:

dpkg-reconfigure xserver-xorg
aticonfig --initial

Der Rest wird vom Tool amdcccle erledigt (auch als Root starten)…

Teile und geniesse:
  • Technorati
  • del.icio.us
  • MisterWong
  • Digg
  • StumbleUpon
  • blogmarks
  • Furl
  • Simpy
  • Spurl
  • YahooMyWeb

Eingeordnet in Hardware, Linux | Keine Kommentare »

PEAP - 802.1X unter Linux

Geschrieben von skaldrom am 5. August 2007

Lock802.1X ist ein Standard zur Authentifizierung von Netzteilnehmern, ursprünglich für Mobilnetze entwickelt, aber immer mehr auch bei Festnetzen im Einsatz.

Benötigt wird xsupplicant bzw. wpa_supplicant als Open Source implementierung des IEEE 802.1X Standards.

Die meisten Distributionen bringen xsupplicant in ihrer Packetverwaltung mit. Die Installation/Konfiguration kann sich unterscheiden.

Debian

Installation

Zuerst muss xsupplicant installiert werden. Als root folgende Zeile eingeben:

apt-get install xsupplicant

Damit wäre xsupplicant installiert.

Konfiguration

Damit xsupplicant beim Booten startet, muss die Datei /etc/default/xsupplicant editiert werden. Sie nimmt die Startparameter auf:

# /etc/default/xsupplicant

# WARNING! Before enabling xsupplicant, make sure you have a valid
# configuration file, (/etc/xsupplicant/xsupplicant.conf), and that
# you have set a list of arguments below.
ENABLED=1

# At a minimum you need to set an interface with the -i argument. See
# the man page xsupplicant(8) for more options and information.
ARGS="-c /etc/xsupplicant/xsupplicant.conf -i eth0"

eth0 ist dabei das Interface, auf dem xsupplicant arbeiten soll.

Die eigentliche Konfigurationsdatei /etc/xsupplicant/xsupplicant.conf muss nun mit den Daten des BBB Netzes gefüllt werden. Die folgende gilt für Version 1.2.4.dfsg.1-1:

network_list = all
default_netname = default
logfile = syslog
log_facility = daemon
default_interface = eth0
default
{
  type = wired
  allow_types = all
  identity = skaldrom.sarg@oncode.info

  eap-peap {
      root_cert = NONE
      random_file = /dev/urandom
      session_resume = yes
      proper_peap_v1_keying = yes         
      allow_types = all # where all = MSCHAPv2, MD5, OTP, GTC, SIM
      #allow_types = eap_mschapv2

      eap-mschapv2 {
        username = Michael.Schneider
        #ntpwdhash = E653E6452753C97E46792567DFF599B6
        password = "PaSsWoRT"
      }
  }
}

skaldrom.sarg@oncode.info respektive PaSsWoRT müssen natürlich mit den eigenen, höchselbstigen Angaben ersetzt werden.

Start

Bei eingeschaltetem Netzwerkinterface (ifconfig eth0 up) kann nun xsupplicant gestartet werden und sollte sich authentifizieren. Die DHCP Anfrage, etc, sollte danach nach Standard funktionieren (ifup eth0).

Debugging

Um dem xsupplicant bei der Arbeit zuzusehen kann er im Vordergrund gestartet werden:

xsupplicant -f -dA -c /etc/xsupplicant/xsupplicant.conf -i eth0

Ubuntu Dapper

Gebraucht wird wpasupplicant und nicht xsupplicant.

Schnell eine wpa_supplicant.conf erstellt:

ctrl_interface=/var/run/wpa_supplicant
ap_scan=0
network={
   key_mgmt=IEEE8021X
   eap=PEAP
   identity="Vorname.Nachname"
   password="passwort"
   eapol_flags=0
}

Danach kann man wpa_supplicant gestartet werden:

wpa_supplicant -Dwired -c ~/wpa.conf -i eth0 -w

Weitere Probleme

Es ist ein Fall bekannt, in welchem dhcp3-client (der neue Standard-DHCP-Client in Debian?) nicht mitgespielt hat und erst mit dhcp-client eine IP vergeben wurde (ganz unabhängig von *supplicant).

Ebenfalls haben schon automatische Netzwerkkabeleinsteckdetektoren Probleme verursacht.

Ein No network configuration found for the current AP kann darauf hindeuten, dass die Netzwerkkarte nicht unterstützt ist oder dass der Treiber kein WPA hat.

Reconnect-Scripts

Dieses kleine Script authentifiziert (unter Debian) und wartet bis der Vorgang abgeschlossen ist. Per Polling wird /etc/syslog geprüft. Das Script wäre ausbaubar (Abbruch bein Nichtauthentifizierung, Timeout, …), ich würde sehr gerne Überarbeitungen entgegen nehmen.

#! /bin/bash
ifdown eth0
/etc/init.d/xsupplicant stop
ifconfig eth0 down
ifconfig eth0 up
/etc/init.d/xsupplicant start
while ! tail /var/log/syslog | grep "Successfully authenticated eth0"
do
  echo -n "*"
  sleep 5
done
echo "\n"
ifup eth0

Bitte

Ich wäre froh für jede Info, wenn es jemand geschafft hat über das Zertifikat eines Windows Zertifikatsserver zu authentifizieren… Als Belohnung gäbs einen virtuellen Blumenstrauss :-)

Teile und geniesse:
  • Technorati
  • del.icio.us
  • MisterWong
  • Digg
  • StumbleUpon
  • blogmarks
  • Furl
  • Simpy
  • Spurl
  • YahooMyWeb

Eingeordnet in Linux, Netzwerk | 1 Kommentar »

USB Logitech QuickCam Express (046d:092f) unter Linux

Geschrieben von skaldrom am 10. July 2007

Da chatten ein neues Hobby geworden ist und meine alte Webcam, hmm, das Schicksal aller ausgeliehenen Bücher gegangen ist, habe ich ne neue gekauft: QuickCam Express für fastgarnix. Das Einrichten ging dank der Anleitung von ichbinsnur genial einfach. Thnx a lot diesem Wizard…

Kurz:

  • Quellen installieren:
    apt-get install spca5xx-source
  • Quellen entpacken:
    tar xvfj /usr/src/spca5xx-source.tar.bz2
  • Den Patch (nach ichbinsnurs Anleitung geschrieben) drüberlaufen lassen. Patch for spca5xx for Logitech Quickcam Express
    patch -p0 > echo  qcexpresspatch.patch
  • Das Ganze kompilieren:
    make; make install

Und schon sehe ich meine Fresse bei Kopete, etc… Uuups, sollte mal die Haare kämmen gehen….

Teile und geniesse:
  • Technorati
  • del.icio.us
  • MisterWong
  • Digg
  • StumbleUpon
  • blogmarks
  • Furl
  • Simpy
  • Spurl
  • YahooMyWeb

Eingeordnet in Hardware, Linux | Keine Kommentare »

Systemnachrichten auf virtuelle Konsolen

Geschrieben von skaldrom am 22. April 2007

Ich mag es wenn ich weiss, wie es meiner Computerin geht (dochdoch, die ist weiblich, ganz bestimmt!). Darum soll sie ausspucken was sie beschäftigt…. Am geilsten wäre ein serielles Terminal, aber das möchte ich neben meinem Schlepptop nicht immer mittragen, darum darf sie sich auf einer virtuellen Konsole ausdrücken. CTRL+ALT+F9 und CTRL+ALT+F10 zeigen mir, was sie so beschäftigt.

Syslog soll auf F9 gehen, dazu muss /etc/syslog.conf editiert werden:

daemon,mail.*;
news.=crit;news.=err;news.=notice;
*.=debug;*.=info;
*.=notice;*.=warn       /dev/tty9

Um auf F10 die “console” zu haben, muss man dem Kernel beim Booten “console=tty10″ mitgeben. Mit Grub muss man das in /boot/grub/menu.lst einfügen:

[...]
kernel          /boot/vmlinuz-2.6.18-4-686 root=/dev/hda1 ro console=tty10
[...]
Teile und geniesse:
  • Technorati
  • del.icio.us
  • MisterWong
  • Digg
  • StumbleUpon
  • blogmarks
  • Furl
  • Simpy
  • Spurl
  • YahooMyWeb

Eingeordnet in Linux | Keine Kommentare »

Beagle Revisited

Geschrieben von skaldrom am 3. April 2007

Wie im Artikel Organisatorisch herausgefordert… habe ich immernoch zuviele Dokus und zuwenig Ordnung. Aber leider scheint XFriend 2.1 zu kosten… Zeit, Beagle nochmals anzusehen. Und: Ich bin begeistert! Er tut genau das was ich erwarte und die KDE Integration ist spitze! Es werden nicht nur Konversationen in Kopete, Mails von KMail direkt ab den Maildirs (was mir extrem viel Speicherplatz für die HTML-Mails spart!), Kontakte von KAddressbook, Akregator-Feeds und KNotes indiziert, sondern mit Kerry steht auch eine Applikation für den Tray zur Verfügung!!! Ich glaube das ist die bei Opensuse viel gemacht haben… Damit sind sowohl Gnome als auch Opensuse in meiner Sympathieskala gestiegen.

Beagle-Suche mit Kerry

Natürlich wollte ich, dass er alles indiziert was mich interessiert: Powerpoint, LaTeX, Excel, Word, … Dafür musste ich die Datei /etc/beagle/external-filters.xml etwas anpassen:

< ?xml version=”1.0encoding=”utf-8?>
<external -filters>
<filter>
<mimetype>text/x-tex</mimetype>
<extension>.tex</extension>
<command>untex</command>
<arguments>-gascii %s</arguments>
</filter>
<filter>
<mimetype>application/msword</mimetype>
<mimetype>application/x-mswrite</mimetype>
<extension>.doc</extension>
<command>catdoc</command>
<arguments> %s</arguments>
</filter>
<filter>
<mimetype>application/postscript</mimetype>
<extension>.ps</extension>
<extension>.ai</extension>
<extension>.eps</extension>
<command>pstotext</command>
<arguments>%s</arguments>
</filter>
<filter>
<mimetype>application/x-rar</mimetype>
<extension>.rar</extension>
<command>unrar</command>
<arguments>lb %s</arguments>
</filter>
<filter>
<mimetype>application/vnd.ms-powerpoint</mimetype>
<mimetype>application/mspowerpoint</mimetype>
<extension>.ppt</extension>
<command>catppt</command>
<arguments>%s</arguments>
</filter>
<filter>
<mimetype>application/excel</mimetype>
<mimetype>application/msexcel</mimetype>
<extension>.xls</extension>
<command>xls2csv</command>
<arguments>%s</arguments>
</filter>
<filter>
<mimetype>application/x-zip</mimetype>
<mimetype>application/zip</mimetype>
<mimetype>application/x-zip-compressed</mimetype>
<extension>.zip</extension>
<command>unzip</command>
<arguments>-l %s</arguments>
</filter>
<filter>
<mimetype>application/mbox</mimetype>
<command>cat</command>
<arguments>%s</arguments>
</filter>
</external>
Teile und geniesse:
  • Technorati
  • del.icio.us
  • MisterWong
  • Digg
  • StumbleUpon
  • blogmarks
  • Furl
  • Simpy
  • Spurl
  • YahooMyWeb

Eingeordnet in Linux | 2 Komentare »

Eclipse und die Umlaute

Geschrieben von skaldrom am 3. April 2007

Ganz einfach, schlicht und ergreifend, und kann einem Stunden sparen: Eclipse unter Linux importiert keine Projekte die einen Umlaut im Pfadnamen haben. GNARRRGH!

Teile und geniesse:
  • Technorati
  • del.icio.us
  • MisterWong
  • Digg
  • StumbleUpon
  • blogmarks
  • Furl
  • Simpy
  • Spurl
  • YahooMyWeb

Eingeordnet in Coding, Linux | Keine Kommentare »

Excel und Powerpoint mit htdig indizieren

Geschrieben von skaldrom am 27. March 2007

Möchte man xls und ppt in den Index der Intranet Suchengine htdig aufnehmen, muss man etwas Magie wirken lassen:

  1. Es braucht ein Umwandler “gewünscht2txt”. Ich habe xls2csv für Excel und catppt für Powerpoint gewählt.
  2. Die Mimetypes sollten aktualisiert werden. /etc/htdig/mime.types:
    [...]
    application/vnd.ms-excel        xls
    application/vnd.ms-powerpoint   ppt
    [...]
  3. Externe Parser müssen aktiviert werden in /etc/htdig/htdig.conf:
    [...]
    external_parsers: application/msword /usr/share/htdig/parse_doc.pl \
    application/postscript /usr/share/htdig/parse_doc.pl \
    application/pdf /usr/share/htdig/parse_doc.pl \
    application/vnd.ms-powerpoint /usr/share/htdig/parse_doc.pl \
    application/vnd.ms-excel /usr/share/htdig/parse_doc.pl
    [...]
  4. Nun muss noch /usr/share/htdig/parse_doc.pl angepasst werden:
    [...]
    #
    # Excel
    #
    $XLS2CSV = "/usr/bin/xls2csv";#
    # Powerpoint
    #
    $CATPPT = "/usr/bin/catppt";
    [...]
    } elsif ( $ARGV[1] =~  /excel/) {       # it's MS Excel - this detection is a kludge
        $parser = $XLS2CSV;
        # convert all possible sheets to ascii
        $parsecmd = "$parser \"$ARGV[0]\" |";
        $type = "MS-Excel";
        $dehyphenate = 0;               # Excel documents not likely hyphenated
    } elsif ( $ARGV[1] =~  /powerpoint/) {
        $parser = $CATPPT;
        # convert all possible sheets to ascii
        $parsecmd = "$parser \"$ARGV[0]\" |";
        $type = "MS-Powerpoint";
        $dehyphenate = 0;
    }
    [...]
  5. Nun sollts funzen.

Man könnte es wohl auch über html machen (mit dem Helfer xlhtml). Dazu müsste die Zeile in htdig.conf heissen:

application/vnd.ms-excel->text/html /usr/share/htdig/parse_doc.pl

und dann müsste inparse_doc.pl xlhtml mit den korrekten Parametern aufgerufen werden.

Generell können folgende Probleme auftreten:

Apache Index:
Indiziert man Verzeichnisse, die das Apache Index Modul erzeugt (Dateibaum ohne index.html), so können Seiten mehrfach gespeichert sein weil sich die Parameter unterscheiden. Um dies zu verhindern muss htdig.conf ergänzt werden:

bad_querystr: ?C=D ?C=S ?C=M ?C=N ?O=A ?D=A ?D=D ?M=A ?M=D ?N=A ?N=D ?S=A ?S=D C=D C=S C=M C=N O=A D=A D=D M=A M=D N=A N=D S=A S=D

Ghostscript-Hanger:
Mein Indexer hatte die Tendenz beim Aufruf von gs zu hangen. Nundenn, ein Umstellen von “pstotext” auf “pdftotext” hat das ganze subjektiv schneller gemacht und bis jetzt ist es nimmer gestalled. In /usr/share/htdig/parse_doc.pl:

[...]
#
# set this to your PDF to text converter
#
#$CATPDF = "/usr/bin/pstotext";                         # From "pstotext"
$CATPDF = "/usr/bin/pdftotext";                         # From "pdftotext"
if (! -x $CATPDF) { $CATPDF = "/usr/bin/pdftotext"; }   # From "xpdf"/"xpdf-i"
if (! -x $CATPDF) { $CATPDF = "/usr/bin/ps2ascii"; }    # From a ghostscript
if (! -x $CATPDF) { $CATPDF = "/bin/true"; }
[...]
Teile und geniesse:
  • Technorati
  • del.icio.us
  • MisterWong
  • Digg
  • StumbleUpon
  • blogmarks
  • Furl
  • Simpy
  • Spurl
  • YahooMyWeb

Eingeordnet in Linux, Webapplikationen | Keine Kommentare »

Changelogs mit SVN

Geschrieben von skaldrom am 15. March 2007

Aufgabe

Und die Aufgabe sei: Es werde ein Tool geschaffen, das jeden Tag prüft, wer an den Repositories gefrickelt hat und daraus ein Changelog generieret. Fürtherhin sei eine Liste als Index erstellt, die alle diese Repositories mit den Committern anzeiget und mit Links versehet, die zum detailierten Changelog geleiten. Auch ein RSS sei geschaffen, der abonniert werden kann.

So sei es. svn2log kann Text-Changelogs generieren. source-highlight kann daraus html-Seiten basteln. Damit svn2log auch Commits ohne Kommentar berücksichtigt, wird es gepatcht.

So sei Dir ein BASH-Script geschrieben, das durch unsere 2 Stufige Repositoryhierarchie hindurchloopt, und 4 Dinge erzeuge:

  • Text Changelog generell
  • Text Changelog der letzten 7 Tage
  • Html Changelog generell
  • Html Changelog der letzten 7 Tage

Und danach ein PHP fürwahr ein Index erstelle der eine Übersicht zeige und der auch via RSS in ein jede heimische Stube kommen kann!

Beispiel: Changelog Index

Bemerkungen

Nachtrag: Eine weitere Möglichkeit ist svn2rss. Ein etwas mächtigeres Paket, geschrieben in Ruby.

Code

Den Code gibts bei oncode.info.

Teile und geniesse:
  • Technorati
  • del.icio.us
  • MisterWong
  • Digg
  • StumbleUpon
  • blogmarks
  • Furl
  • Simpy
  • Spurl
  • YahooMyWeb

Eingeordnet in Linux | Keine Kommentare »

aMule (emule, xmule), aMuled und Kademlia über einen Linux Router

Geschrieben von skaldrom am 8. March 2007

Ich hab ja so ein nettes Claxan-teil, und ab und zu gebrauche ich auch aMule (nur für legale Inhalte!!!). Ich hätte gerne eine HighID und keinen “firewalled” Kademlia (Kademilia :) ). Und es funzt!

Auf meiner Appliance lasse ich ab und zu den amuled laufen und verbinde mich über amulegui.

Konfiguration aMuled

Damit der Daemon läuft habe ich:

  • Mein gesamtes ~/.aMule Verzeichnis auf die Appliance (in den VSERVER) kopiert
  • Auf der Appliance in ~/.aMile/amule.conf:
    • AcceptExternalConnections=1
    • ECAddress=
    • ECPort=4712
    • ECPassword=
  • md5passwort kriegt man mittels: echo -n passwort | md5sum
  • Iptablesregeln angepasst…

Die Regeln um eine HighID und Kademlia aus dem Firewalled zu bekommen:

EMULEPORT=7555
EMULEUDP=7565
EMULEUDP2=`expr $EMULEPORT + 3`
VSERVER=192.168.1.252
#EMULEHOST=192.168.1.20
EMULEHOST=$VSERVER

iptables -t nat -A PREROUTING -i $INET_IFACE -p tcp --destination-port $EMULEPORT -j DNAT --to-destination $EMULEHOST:$EMULEPORTiptables -t nat -A PREROUTING -i $INET_IFACE -p udp --destination-port $EMULEUDP -j DNAT --to-destination $EMULEHOST:$EMULEUDPiptables -t nat -A PREROUTING -i $INET_IFACE -p udp --destination-port $EMULEUDP2 -j DNAT --to-destination $EMULEHOST:$EMULEUDP2

iptables -A INPUT -i $INET_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPTiptables -A FORWARD -i $INET_IFACE -o $INT_IFACE -d $EMULEHOST -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A FORWARD -i $INET_IFACE -o $INT_IFACE -p tcp --dport $EMULEPORT -d $EMULEHOST -j ACCEPTiptables -A FORWARD -i $INET_IFACE -o $INT_IFACE -p udp --dport $EMULEUDP -d $EMULEHOST -j ACCEPTiptables -A FORWARD -i $INET_IFACE -o $INT_IFACE -p udp --dport $EMULEUDP2 -d $EMULEHOST -j ACCEPT

# Amule Remote Interface
iptables -t nat -A PREROUTING -s ! 192.168.1