Webhosting, Domains und VServer von Host Europe
Bild

Pakete versenden, Rechner verlinken

Rechner dicht machen: IPChains unter Linux

hand1  2  3  4  5  

Policies - die Auffangbecken
Die Policy ist das Auffangbecken einer Chain - allerdings haben lediglich die drei Standardchains (input, output, forward) eine Policy, alle eigenen Chains reichen Pakete für die keine Regeln existieren einfach an die aufrufende Chain zurück. Mögliche Werte für die Policy sind 'DENY', 'REJECT' und 'ACCEPT'. Deny läßt das Paket einfach verschwinden. Reject tut das gleiche, teilt der Gegenstelle allerdings mit, daß das Paket nicht angenommen wurde. Accept läßt das Paket passieren.

Soll der Firewall wirklich Sicherheit bieten, so sollten alle Policies auf 'DENY' stehen. Die Option 'REJECT' produziert nur unnötigen Traffic und 'ACCEPT' öffnet bei jedem Konfigurationsfehler ein Scheunentor für den Angreifer.

Die Policy einer Chain setzt man mit dem Kommando ipchains -P Name Policy Das Setzen der Policy sollte zu Beginn der Firewallkonfiguration erfolgen. Damit ist sichergestellt, daß eventuell auftretende Fehler im späteren Verlauf, die zum Beispiel zum Abbruch des Konfigurationsskripts führen, nicht für offene Türen sorgen. Allerdings müssen die folgenden Regeln dann wohlüberlegt sein. Außerdem ist zu beachten, das bei der Verwendung von Namen statt IP Adressen innerhalb einer Regel sichergestellt sein muß, daß der Zugriff auf den Nameserver in früheren Regeln erlaubt wurde.

Das Kernstück: Die Regel
Jede Chain besteht aus einer Menge von Regeln. Eine Regel betrachtet den Header eines Paketes und enscheidet anhand der dort vorliegenden Informationen was mit dem Paket zu geschehen hat. Als Grundlage der Entscheidungen betrachtet es die Absendeadresse, die Zieladresse das verwendete Protokoll und abhängig von diesem entsprechend weitere Informationen.

Eine Regeldefinition basiert nun auf genau diesen Informationen. Im folgenden Beispiel soll die Kommunikation mit dem Webserver 'www.somehost.com' vom Rechner 'paul.myhome.de' erlaubt werden. Das HTTP Protokoll basiert auf TCP, der Webserver verwendet den Port 80. Der lokale Rechner 'Paul' hat eine gültige IP Adresse. Der Firewall ist über das Interface 'eth0' im LAN eingebunden, und über eine Dialup Verbindung 'ppp0' mit dem Internet.

Zunächst muß das Paket des lokalen Rechners die Input-Chain passieren. Das hinzufügen der Regel erfolgt mit dem Kommando:

ipchains -A input -i eth0 -s paul.myhome.de -j ACCEPT Jetzt werden Pakete von Paul an der Schnittstelle eth0 entgegengenommen. Entsprechende Routen vorausgesetzt, werden die Pakete nur weitergeleitet, und passieren die Forward Chain. Eine Regel die das Weiterleiten von Pauls Paketen erlaubt setzt man mit

ipchains -A forward -s paul.myhome.de -d www.somehost.com -j ACCEPT Alle Pakete von Paul an den Webserver werden nur weitergereicht. Vor dem Verlassen des Rechners werden ausgehende Pakete nun noch von der Output Chain untersucht. Das Kommando

ipchains -A output -i ppp0 -pTCP -d www.somehost.com 80 -j ACCEPT erlaubt nun allen Paketen auf der Schnittstelle ppp0 zu verlassen, sofern sie an den Webserver gerichtet sind, und auch dann nur, wenn Sie dort an den Webserverport gerichtet sind. Eine FTP Verbindung zu dem Rechner ist damit nicht möglich. Erreichen die Pakete von Paul den Server so versucht der Server im allgemeinen Pakete zurückzuschicken. Entsprechende Regeln für die Antwortpakete mü ssen ebenfalls eingetragen werden. Im Beispiel lauten sie

ipchains -A input -i ppp0 -pTCP -s www.somehost.com 80 -j ACCEPT ipchains -A forward -s www.somehost.com -d paul.myhome.de -j ACCEPT ipchains -A output -i eth0 -d paul.myhome.de -j ACCEPT Die erste Regel erlaubt Antwortpaketen von Port 80 des Webservers das Passieren der Input Regel, die zweite das Weiterleiten von entsprechenden Paketen an den lokalen Rechner Paul, und die dritte das Verlassen der Pakete über die Lokale Schnittstelle. Will man auf diese Weise Regeln für alle möglichen Verbindungen definieren so ist der Aufwand gigantisch. Für gewöhnlich vergibt man Regeln nicht für einzelne Rechner sondern für Rechnergruppen. Hat das lokale Netz den IP Bereich von 1.2.3.1 bis 1.2.3.255 und sollen allen Rechner Verbindungen zu Webservern erlaubt werden so genügt ein 1.2.3.0/24 als Quelladresse. Die Zahl nach dem '/' gibt die Anzahl signifikanter Bits in der IP Adresse an. Die erste Input Regel lautet also beispielsweise:

ipchains -A input -i eth0 -s 1.2.3.0/24 -j ACCEPT um Pakete von allen lokalen Rechnern an der lokalen Schnittstelle entgegenzunehmen.

Um sich alle bestehenden Regeln anzusehen verwendet man das '-L' (list) Kommando. Eine fehlerhafte oder überflüssige Regel löscht man über das '-D' Kommando. Als Parameter dient entweder die Nummer der Regel in der Chain also z.B. 'ipchains -D 1' um die erste Regel zu löschen oder die extakten Parameter des entsprechenden '-A' Kommandos. Sollen alle Regeln gelöscht werden so kann eine Chain mittels 'ipchains -F Name' geleert (flushed) werden.


Seiten: 1  2  3  4  5  


Diskussion zum Beitrag

Mehr zum Thema: