Content
Dateianzeige für routing (3.0.0)
usr/share/doc/routing/routing.txt
Das Routing Paket
Einleitung
Im Routing-Paket werden Einstellungen zum Masquerading, Portfilter und
Portforwarding vorgenommen.
Konfiguration
Routing
START_ROUTING
Gueltige Werte: yes, no Hier wird das Paket ein und
ausgeschaltet.
MASQ_NETWORK
Hier sind die Netzwerke anzugeben, die nach aussen hin maskiert
werden sollen. Verwendet man nicht-offizielle IP-Adressen, wie
z.B. 192.168.x.x, und soll der Server als Zugang ins Internet
verwendet werden, muessen diese hier unbedingt angegeben werden.
Die Form ist:
NETZWERKNUMMER/ANZAHL-DER-GESETZTEN-BITS-IN-NETMASK
also z.B. fuer 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 ueber eine einzige offizielle IP-Adresse geroutet werden
kann, es gibt aber auch Nachteile, die man in Kauf nehmen muss.
Ein grosses Problem ist zum Beispiel, dass kein Rechner von aussen von
sich aus eine Verbindung zu einem Rechner aufnehmen kann. Das ist zwar
aus Sicherheitsgruenden eigentlich durchaus erwuenscht, aber bestimmte
Protokolle funktionieren nicht mehr, weil sie einen Verbindungsaufbau
von aussen 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 dafuer bestimmte Masquerading-Module, um
solche zusaetzlichen Ports, die verwendet werden, ad hoc dann
freizuschalten und an den internen Rechner weiterzuleiten, wenn sie
benoetigt werden. Dabei "horcht" das Masquerading-Modul in den
Datenstrom, um zu erkennen, wann ein zusaetzlicher Port benoetigt wird.
Typische Anwendungen fuer Masquerading-Module sind Chat-Protokolle und
Spiele im Internet.
Bisher wurde fuer fli4l das ftp-Masquerading-Modul immer automatisch
geladen. Mittlerweile sind weitere Module verfuegbar. Diese lassen sich
auch mit zusaetzlichen Optionen aufrufen. Dies ist zum Beispiel dann
noetig, wenn ein FTP-Server auf einem anderen Port als 21 angesprochen
werden soll. Hier eine Uebersicht aller Module mit ihren Parametern,
die vorgegebenen Werte sind die Standardwerte:
ftp
File Transfer Protocol
irc
Internet Relay Chat
Bemerkungen
mIRC ist standardmaessig falsch konfiguriert, sodass er nicht mit
diesem Modul zusammenarbeitet. Um mIRC richtig einzustellen, geht man
folgendermassen vor (Verbindung zum IRC-Server erst trennen): Im
"Options" -Dialog: Auswahlliste: "Connect" , dann "Local Info" , hier
beide Eingabefelder loeschen (falls etwas drin steht), dann "Lookup
Method:" auf "Normal" stellen.
Alle Parameter, die eine Liste von Ports annehmen, koennen hoechstens
12 Ports uebergeben bekommen.
Natuerlich kann man nicht fuer jedes Protokoll, welches zusaetzliche
Ports verwendet, ein separates Masquerading-Modul programmieren. Aus
diesem Grund gibt es neben den oben aufgefuehrten Modulen auch noch
eine andere Moeglichkeit, neue Ports an einen internen Rechner
weiterzuleiten. Siehe dafuer auch die Beschreibung zum Port-Forwarding.
MASQ_MODULE_N
gibt die Anzahl der zu ladenden Masquerading-Module an.
Die Standardeinstellung fuer MASQ_MODULE_N ist '1'. Damit wird
nur das erste Modul, naemlich ftp, geladen. Moechte man weitere
Module laden, ist MASQ_MODULE_N entsprechend zu erhoehen. Die
Reihenfolge in der beigefuegten Datei config/base.txt ist nur
ein Beispiel. Sie kann also beliebig geaendert werden, z.B.
MASQ_MODULE_N='2'
MASQ_MODULE_1='ftp'
MASQ_MODULE_2='irc'
MASQ_MODULE_x
gibt das x'te zu ladende Masquerading-Modul an.
MASQ_MODULE_x_OPTION
legt Optionen fuer das jeweilige Modul fest. Kann leer bleiben.
MASQ_FTP_PORT_N
Hier koennen die Standard-Ports fuer FTP auf alternative
Portnummern gesetzt werden.
ROUTE_NETWORK
Pakete, die zu von Hosts in diesen Subnetzen aufgebauten
Verbindungen gehoeren, werden vom Router weitergeleitet
(geforwarded). Zusaetzlich werden Pakete, die in diese Netze
hineingehen, nicht maskiert.
Dieses kann z.B. fuer 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 koennen hier wieder mehrere Netze angegeben werden.
ROUTE_NETWORK kann in der Regel einfach leer bleiben.
FORWARD_HOST_WHITE
Hiermit kann eingestellt werden, ob die folgende Liste von Hosts
eine Liste aller erlaubten ('yes') oder aller verbotenen Hosts
ist ('no'), welche auf das Internet zugreifen duerfen.
FORWARD_HOST_N /
FORWARD_HOST_x
Normalerweise soll allen Rechnern im LAN der Internet-Zugang
erlaubt sein. Dann ist FORWARD_HOST_WHITE='no' einzustellen und
FORWARD_HOST_N='0' zu setzen. Anderenfalls setzt man
FORWARD_HOST_N auf die Anzahl der verbotenen/erlaubten Rechner
und traegt diese in FORWARD_HOST_x ein.
FORWARD_DENY_PORT_N /
FORWARD_DENY_PORT_x
Hier koennen Ports angegeben werden, die generell nicht in das
Internet geroutet werden sollen. Sinnvoll sind hier zum Beispiel
die SMB-Ports 137-139, die von Windows fuer Netzwerkfreigaben
verwendet werden. Deshalb ist standardmaessig eingestellt:
FORWARD_DENY_PORT_N='1'
FORWARD_DENY_PORT_1='137:139 REJECT'
INPUT_ACCEPT_PORT_N /
INPUT_ACCEPT_PORT_x
Standardmaessig sind alle Ports nach aussen zu, eine Verbindung
zum Router ist nicht moeglich. Ports, auf denen ein Dienst nach
aussen angeboten wird, muessen hier angegeben werden.
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
ueber das TCP-Protokoll anbietet, wuerde 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
Port-Forwarding
Fuer einige Internet-Protokolle ist es noetig, einen Verbindungsaufbau
eines Rechners von aussen in das interne Netz umzuleiten. Ist das Netz
nach aussen hin maskiert (IP-Masquerading), also nur eine offizielle
IP- Adresse fuer das gesamte LAN vorhanden, kann man bestimmte Ports
oder Protokolle, die von aussen 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 muessen bei Spielen, Chat oder Internet-Telefonie solche Ports
freigeschaltet werden. Koennen dies die Masquerading-Module selber
nicht loesen, kann man selbst Port-Weiterleitungen einrichten.
PORTFW_N
Hiermit wird die Anzahl der Port-Weiterleitungen angegeben.
Diese werden in PORTFW_x_SOURCE, PORTFW_x_SOURCE und
PORTFW_x_PROTOCOL definiert.
PORTFW_x_SOURCE
Pakete sind an ein bestimmtes Ziel gerichtet (normalerweise eine
IP- Adresse und ein Port) und gehoeren zu einem bestimmten
Protokoll. Dieses Ziel ist in einem maskierten Netz der Router,
das eigentliche Ziel liegt aber im maskierten Netz, die Pakete
muessen also dorthin weitergereicht werden.
PORTFW_x_SOURCE gibt an, an welches Ziel Pakete gerichtet sein
muessen, um weitergeleitet zu werden. Kommt ein solches Paket am
Router an, wird es an das eigentliche Ziel weitergeleitet.
Folgende Formate sind hier moeglich:
PORTFW_x_SOURCE=''
Leitet alle Pakete weiter, die bei aktiver Internetverbindung
auf dem Port ankommen an einen anderen Rechner weiter.
PORTFW_x_SOURCE='-'
Leitet alle Pakete, die auf den Ports im Bereich zwischen
und ankommen, an einen anderen Rechner weiter.
PORTFW_x_SOURCE=':'
Leitet alle Pakete, die auf der IP des Routers auf Port
ankommen, an einen anderen Rechner weiter.
PORTFW_x_TARGET
Dieser Parameter gibt das Ziel eines Port-Forwardings an. Dies
ist in der Regel ein anderer Computer im internen Netzwerk.
Folgende Formate sind hier moeglich:
PORTFW_x_TARGET=''
Leitet alle Pakete, die fuer diese Regel ankommen, an den
Rechner mit der IP weiter.
PORTFW_x_TARGET=':'
Leitet alle Pakete, die fuer diese Regel ankommen, an den
Rechner mit der IP an den Port weiter. Diese Regel
ist fuer Portbereiche (-) unzulaessig!
PORTFW_x_PROTOCOL
Dieser Parameter gibt das Protokoll an, fuer das diese Regel
zutrifft. Zugelassen sind hier 'tcp', 'udp', 'gre' und die
Angabe der Protokollnummer (siehe [1]Liste der Protokoll-Nummern
der IANA).
PACKETFILTER_LOG
Hier kann eingestellt werden, ob abgelehnte Zugriffe von aussen
ueber die Syslog-Schnittstelle protokolliert werden sollen.
Hier eine kurze Erklaerung 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
IN
Device, auf dem das Paket hereinkam
SRC
Quelladresse des Paketes (Source)
DST
Zieladresse des Paketes (Destination)
LEN
Laenge des Pakets in Bytes (Length)
TOS
Type Of Service
TTL
Time To Live, Anzahl der Hops, bis das Paket geloescht wird
PROTO=TCP
TCP Paket
SPT
Quellport (Source Port)
DPT
Zielport (Destination Port)
ID
IP-ID, wird mit jedem Paket vom Sender um eins erhoeht
Standardeinstellung: PACKETFILTER_LOG='no'
__________________________________________________________________
Holger Bruenjes 2017-01-01
References
1. http://www.iana.org/assignments/protocol-numbers