Im Routing-Paket werden Einstellungen zum Masquerading, Portfilter und Portforwarding vorgenommen.
Das Menü im Setup-Programm ist wie folgt aufgebaut:
x. | Service administration |
x. | Routing administration |
1. | View documentaion | |||
2. | Edit configuration | |||
3. | Advanced configuration file handling | |||
4. | Show status | |||
5. | Stop service | |||
6. | Start servcice |
Gültige Werte: yes, no
Standardeinstellung: START_ROUTING='no'
Die Form ist:
NETZWERKNUMMER/ANZAHL-DER-GESETZTEN-BITS-IN-NETMASK
also z.B. für Netze der Form 192.168.x.0:
MASQ_NETWORK='192.168.6.0/24'
Hier sind also die ersten 24 Bits in der Netzwerkmaske gesetzt. Sollen mehrere Netze maskiert werden, sind diese durch Leerzeichen zu trennen. Soll kein Netz maskiert werden, muss der Variablen-Inhalt leer sein.
Die Verwendung von IP-Masquerading hat zwar den Vorteil, dass mehrere Rechner im LAN über eine einzige offizielle IP-Adresse geroutet werden können, es gibt aber auch Nachteile, die man in Kauf nehmen muss.
Ein großes Problem ist zum Beispiel, dass kein Rechner von außen von sich aus eine Verbindung zu einem Rechner aufnehmen kann. Das ist zwar aus Sicherheitsgründen eigentlich durchaus erwünscht, aber bestimmte Protokolle funktionieren nicht mehr, weil sie einen Verbindungsaufbau von außen einfach erfordern.
Ein klassisches Beispiel ist ftp. Neben dem Kommunikationskanal, auf dem Befehle und Antworten ausgetauscht werden, wird ein weiterer Kanal (in Form eines IP-Ports) verwendet, um die eigentlichen Nutzdaten zu versenden. fli4l verwendet dafür bestimmte Masquerading-Module, um solche zusätzlichen Ports, die verwendet werden, ad hoc dann freizuschalten und an den internen Rechner weiterzuleiten, wenn sie benötigt werden. Dabei „horcht“ das Masquerading-Modul in den Datenstrom, um zu erkennen, wann ein zusätzlicher Port benötigt wird.
Typische Anwendungen für Masquerading-Module sind Chat-Protokolle und Spiele im Internet.
Bisher wurde für fli4l das ftp-Masquerading-Modul immer automatisch geladen. Mittlerweile sind weitere Module verfügbar. Diese lassen sich auch mit zusätzlichen Optionen aufrufen. Dies ist zum Beispiel dann nötig, wenn ein FTP-Server auf einem anderen Port als 21 angesprochen werden soll. Hier eine Übersicht aller Module mit ihren Parametern, die vorgegebenen Werte sind die Standardwerte:
mIRC ist standardmäßig falsch konfiguriert, sodass er nicht mit diesem Modul zusammenarbeitet. Um mIRC richtig einzustellen, geht man folgendermaßen vor (Verbindung zum IRC-Server erst trennen): Im „Options“-Dialog: Auswahlliste: „Connect“, dann „Local Info“, hier beide Eingabefelder löschen (falls etwas drin steht), dann „Lookup Method:“ auf „Normal“ stellen.
Alle Parameter, die eine Liste von Ports annehmen, können höchstens 12 Ports übergeben bekommen.
Natürlich kann man nicht für jedes Protokoll, welches zusätzliche Ports verwendet, ein separates Masquerading-Modul programmieren. Aus diesem Grund gibt es neben den oben aufgeführten Modulen auch noch eine andere Möglichkeit, neue Ports an einen internen Rechner weiterzuleiten. Siehe dafür auch die Beschreibung zum Port-Forwarding.
Die Standardeinstellung für MASQ_MODULE_N ist '1'. Damit wird nur das erste Modul, nämlich ftp, geladen. Möchte man weitere Module laden, ist MASQ_MODULE_N entsprechend zu erhöhen.
Gültige Werte: Zahl
Standardeinstellung: MASQ_MODULE_N='1'
MASQ_MODULE_1='ftp'
MASQ_MODULE_2='irc'
Gültige Werte: Modul z.B. ftp
Standardeinstellung: MASQ_MODULE_x='ftp'
Gültige Werte: Optionen
Standardeinstellung: MASQ_MODULE_x_OPTION=''
Dieses kann z.B. für eine Verbindung zur Firma sinnvoll sein, wo Mitarbeiter dieser Firma von dort Zugang in das eigene Netz haben sollen. Das Format ist dasselbe wie bei MASQ_NETWORK, also z.B.
ROUTE_NETWORK='192.168.1.0/24'
Auch können hier wieder mehrere Netze angegeben werden.
ROUTE_NETWORK kann in der Regel einfach leer bleiben.
Standardeinstellung: ROUTE_NETWORK=''
FORWARD_DENY_PORT_N='1'
FORWARD_DENY_PORT_1='137:139 REJECT'
Ein Eintrag besteht dabei aus einem einzelnem Port bzw. einem ganzen Port-Bereich (zwei Ports durch Doppelpunkt getrennt) und einer optionalen Protokollangabe (TCP oder UDP). Wird kein Protokoll angegeben, werden auf dem Port beide Protokolle akzeptiert. Am Beispiel der ssh, die ihren Dienst auf Port 22 über das TCP-Protokoll anbietet, würde das wie folgt aussehen:
INPUT_ACCEPT_PORT_N='1' # no. of ports to accept from outside
INPUT_ACCEPT_PORT_1='22 TCP' # e.g. allow connection to ssh service
Für einige Internet-Protokolle ist es nötig, einen Verbindungsaufbau eines Rechners von außen in das interne Netz umzuleiten. Ist das Netz nach außen hin maskiert (IP-Masquerading), also nur eine offizielle IP- Adresse für das gesamte LAN vorhanden, kann man bestimmte Ports oder Protokolle, die von außen erreichbar sein sollen, auf einen bestimmten internen Rechner umleiten. Dieses nennt man Port-Forwarding (bzw. allgemeiner Destination Network Address Translation, kurz DNAT). Die Problematik des Port-Forwarding wurde bei der Beschreibung von MASQ_MODULE_N bereits angesprochen (s.o.).
Oft müssen bei Spielen, Chat oder Internet-Telefonie solche Ports freigeschaltet werden. Können dies die Masquerading-Module selber nicht lösen, kann man selbst Port-Weiterleitungen einrichten.
PORTFW_x_SOURCE gibt an, an welches Ziel Pakete gerichtet sein müssen, um weitergeleitet zu werden. Kommt ein solches Paket am Router an, wird es an das eigentliche Ziel weitergeleitet.
Folgende Formate sind hier möglich:
PORTFW_x_SOURCE='<port>'
Leitet alle Pakete, die bei aktiver Internetverbindung auf dem Port <port> ankommen an einen anderen Rechner weiter.
PORTFW_x_SOURCE='<port1>-<port2>'
Leitet alle Pakete, die auf den Ports im Bereich zwischen <port1> und <port2> ankommen, an einen anderen Rechner weiter.
PORTFW_x_SOURCE='<ip>:<port>'
Leitet alle Pakete, die auf der IP <ip> des Routers auf Port <port> ankommen, an einen anderen Rechner weiter.
PORTFW_x_TARGET='<ip>'
Leitet alle Pakete, die für diese Regel ankommen, an den Rechner mit der IP <ip> weiter.
PORTFW_x_TARGET='<ip>:<port>'
Leitet alle Pakete, die für diese Regel ankommen, an den Rechner mit der IP <ip> an den Port <port> weiter. Diese Regel ist für Portbereiche (<port1>-<port2>) unzulässig!
Hier eine kurze Erklärung der wichtigsten Elemente einer Protokollzeile:
IN=ppp0 OUT= MAC= SRC=217.238.54.176 DST=217.235.38.43 LEN=48 TOS=0x00 PREC=0x00 TTL=124 ID=30343 DF PROTO=TCP SPT=3087 DPT=4662 WINDOW=16384 RES=0x00 SYN URGP=0
Standardeinstellung: PACKETFILTER_LOG='no'