Firewalls
(Kernel 2.2)
Voraussetzungen
Ihr solltet allgemein Kenntnisse von Netzwerken haben
und ihr solltet wenigstens etwas Erfahrung im Umgang mit linux haben
sonst cu!!
warum nehme ich einen 2. PC für eine Firewall???
das hat 2 gründe
1. man kann besser damit angeben;-)
2. ihr werdet auf eurem Rechner sicher einige Programme laufen haben zB sendmail, die man für die Ausführung der Firewall
nicht brauchst die aber unter Umständen, je nach Version Sicherheit relevante Bugs haben:-(
Nachteile der 2.pc Variante sind :
1. hörer Stromverbrauch :)
2. ihr müsst ein Netzwerk zusammenbasteln können
1.Was man für Kernel Optionen braucht !
IP: large routing tables
Deaktivieren
GRE tunnels over IP
Deaktivieren
ARPD support
Deaktivieren
IP: verbose route monitoring
aktivieren
GRE broadcast over IP
Deaktivieren
IP:firewall packet netlink device
Deaktivieren
IP: equal cost multipath
Deaktivieren
Fast Switching
Aktivieren
optimize as router not host
Deaktivieren
IP: verbose route monitoring
Aktivieren
IP: tunneling
Deaktivieren
IP: Always defragment
Aktivieren
IP: Transparent PROXY
Aktivieren
IP: Masquerading
Aktivieren
IP: fast network address translation
Deaktivieren
IP: FAST NETWORK ADDRES TRANSLATION
deaktivieren
IP: ICMP masquerading
Deaktivieren
IP: ipautofw masquerade support
Deaktivieren
IP: ipportfw masquerade support
Deaktivieren
IP: policy routing
Deaktivieren
Syn cookies
Deaktivieren
Bridging
Deaktivieren
IP: Kernel level autoconfiguration
Deaktivieren
IP: ipmarkfw masquerade support
Deaktivieren
Forwarding between high speed interfaces
Deaktivieren
IP: use TOS
Aktivieren
LOADABLE Module Support
Deaktivieren
socket filtering
Deaktivieren
2. Prinzip einer Firewal
Wie Pakete über die Firewall hinweg geroutet werden.
Es gibt 3 versch. regeln*die Firewall chains*
chains=zusammenstellung von ruels(regeln)
1. Input
2. Output
3. forward
Checksum:
sie prüft ob ein packet bei Übertragung verändert wurde
sanity
Hier werden wichtigen Überprüfungen gemacht(Pakete mit besonderen Flags im Header)die eventuell die Durchführung der Firewall-Regeln verhindern könnten.
Input chain:
Überprüfung der Filter regeln die Pakete werden hier zurückgewiesen je nach regeln.
Routing decision:
Entscheidung an welche outputchain das Paket übergeben wird.
Local process:
Hier kann das Paket von einem Programm bearbeitet werden.
Danach wird das Paket an die Output chain übergeben.
lo Interface:
Falls Pakete eines lokalen Programms an einen anderes übergeben werden sollen,
dann werden sie an das Interface lo übergeben. Für diese Interface existiert also auch eine Input chain,
local:
Wenn ein Paket nicht von einem lokalen Programm erstellt wurde, dann wird dieses an die forward chain übergeben,
sonsten wird das Paket an Output chain übergeben.
forward chain:
Diese chain muß von jedem Paket durchlaufen werden, welches von einem Interface kommt.
Output chain:
Hier werden nochmals alle Pakete gefiltert, bevor sie das Interface verlassen.
3. Die Programmierung von ipchains.
Man muss die Regeln in drei verschiedenen chains aufstellen: Input, Output und forward
Optionen:
-N Eine neue chain erzeugen
-X Eine leere chain löschen
-P Die Policy für eine eingebaute chain ändern
-L Alle Regeln in einer chain listen
-F Alle Regeln in einer chain löschen
-Z Alle Pakete und Paketzähler in der chain zurücksetzen
verändern eine Regel:
-A Eine Regel an eine chain anfügen
-I Eine Regel in einer chain einfügen
-R Eine Regel in einer chain ersetzen
-D Eine Regel in einer chain löschen
-D Die erste Regel, die zutrifft in einer chain löschen
Es gibt noch ein paar weitere Optionen für das Masquerading:
-M -L Zeige die momentan maskierten Regeln an
-M -S Setze Timouts auf maskierte Pakete
was ist ein Regel?
Jede Regel ist ein Sammlung von Bedingungen, die, wenn sie die Regeln bestehen, angeben,
was man mit dem Paket machen soll.
Regeln löschen
1.die Variante ist ein Löschen der Regel dadurch,
daß man die Syntax der Regel noch einmal wiederholt, nur diesmal aber nicht anfügt (-A) sondern löscht (-D)
2. unter Angabe der Nummer löschen.
Filtern nach Quell - und Zieladresse
Die Quell (-s) und Ziel (-d) IP-Adressen können im Prinzip auf 4 Arten erfolgen.
1.können die IP-Adressen direkt vier Zahlen zwischen 0 und 255 angegeben werden,wie 127.0.0.1,
2.der Name wird eingesetzt, wie z.B. localhost. oder
www.newstylecrew.cjb.net. der 3.und 4. Weg sind die Angaben der Netzwerk-Gruppen. Hier können Adressen, wie 10.0.0.0/24 oder 192.168.0.0/8 gemacht werden.
/24 bedeutet, daß die letzen 3 Zahlen variiert werden dürfen. also alle IP - Nummern von 10.0.0.1 bis 10.254.254.254 verwendet werden dürfen, was dann einem Class-C Netz entspricht.
/16 bezeichnet ein CLASS-B Netzwerk, und
/8 ein CLASS-A . Die Bezeichnung
/0 steht für jede IP - Nummer.
Invertierung von Adressen
Den Flags, kann ein "!" vorstellt werden, welches ein "nicht" heisst.
Filterung von Ports
Ein Protokolle kann mit dem -p Flag angegeben werden. Das Protokoll kann eine Zahl/Bezeichnung für ein Protokoll sein. liste in der Datei /etc/services
Der Protokollname kann ebenfalls invertiert werden.
Filterung von Portbereichen
Für den fall, daß TCP oder UDP als Protokoll angegeben werden, kann ein weiteres Argument angegeben werden
(ein Bereich von Ports)
schema: 6000:6010(zw den ports 6000 und 6100) oder :1023 (unterhalb von 1023)
Auch hier können die Portbereiche invertiert werden.
Die Zuordnung der Netzwerkkarte
Die Option -i ordnet eine Regel einem Interface zu.
Bei Interfaces sind wildcards erlaubt
Die Invertierung der Interface Bezeichnungen kann man machen.
4. Interne Abläufe der Firewall
Hier nur ein Überblick darüber, welche Prozesse in der Firewall vorgehen:
1. Der Bytecounter für jede Regel wird um die Größe des Headers/Gesamtpaketes erhöht.
2. Der Paketzähler wird erhöht
3. Es kann ein Logeintrag vorgenommen werden
4. es kann der TCP Header mit dem ToS Feld verändert werden.
5. es kann ein Paket in einer Liste vermerkt werden.
6. Die Anweisungen nach der Regel werden analysiert, um zu entscheiden, was mit dem Paket gemacht werden soll.
Regel - Anweisungen
Die Regel Anweisungen sind für den Kernel bestimmt, das der weis , was mit dem Paket gemacht werden soll, auf welches eine Regel zutrifft. die Option -j wird für die Angabe einer Ziels benutzt. Der Name des Ziels darf nur max. 8 Buchstaben lang sein.
Es gibt sechs spezielle Anweisungen.
ACCEPT besagt, das das Paket passieren kann.
DENY lehnt ein Paket ab
REJECT lehnt auch das Paket ab, erstellt aber eine ICMP Nachricht,
MASQ. Sie beauftragt den Kernel, die Absendeadresse, also die Quell IP - Nummer durch die IP - Nummer des eingehenden Interfaces zu ersetzen.
Diese Anweisung ist nur zulässig für Pakete, die die forward chain durchlaufen.
REDIRECT. dieses target leiten das Paket an einen lokalen socket oder Vorgang.
RETURN. Diese Anweisung besagt, daß alle folgenden Regeln über gangen werden können.
5. Operationen auf eine ganze chain
ipchains kann Regeln in chains definieren, die sich auf ganze Gruppen von Hosts beziehen. Die chains können mit beliebig bezeichnet werden.
Setzen der Policy
Nur die chains:input, Output und forward besitzen policies. Wenn ein Paket am Ende einer Userdefinierten chain zB ToKrA "herausfällt", dann werde die Regeln der vorangegangenen chain weiter durchlaufen.
Die Policy kann eine der vier ersten speziellen Anweisungen sein: ACCEPT, DENY, REJECT oder MASQ.
Optionen für Masquerading
Es gibt für Masquerading einige anwendbare Parameter.
um Masquerading zu aktivieren benutzt man -M, der mit -L kombiniert werden kann, oder mit -S.
Die Option -L kann mit -n kombiniert werden oder mit der Option -v.
Der Option -S müssen drei Timeout Werte folgen(in Sekunden): Für einfache TCP Verbindungen, für TCP Verbindungen nach eintreffen eines FIN-Paketes, und für UDP Pakete.
Prüfen einer Regel
mit der Option: -C
Wo befinden sich die logfiles?
/var/log/firewall
Nachwort:
also dieses tut sollte eine KLEINE Einführung in die grosse Welt der firewalls seins
ihr solltet euch auf jedenfall nicht scheuen nach mehr Infos im netz zu suchen und
UNBEDINGT das firewall howto zu lesen!!!
© by ToKrA|NSC|
<FONT COLOR="#ABFF0F">AD</FONT c><FONT COLOR="#8BD700">MI</FONT c><FONT COLOR="#74B300">NI</FONT c><FONT COLOR="#629700">S</FONT c><FONT COLOR="#74B300">TR</FONT c><FONT COLOR="#8BD700">AT</FONT c><FONT COLOR="#ABFF0F">OR</FONT c>
[Diese Nachricht wurde von mikels am 05. Juni 2000 editiert.]