Next Previous Contents

3. Also was ist ein Paketfilter?

Ein Paketfilter ist ein Stueck Software, das sich die Header von passierenden Paketen ansieht und ueber das Schicksal des vollstaendigen Pakets entscheidet. Es koennte entscheiden, das Paket zu DROPPEN (ich meine das Paket zu verwerfen, als waere es niemals empfangen worden), es zu akzeptieren (ACCEPT, ich meine das Paket durchzulassen), oder etwas Komplizierteres.

Unter Linux ist Paketfiltern im Kernel selbst enthalten (als ein Kernelmodul oder direkt eingebaut), und es gibt noch ein paar trickreichere Dinge, die wir mit Paketen anstellen koennen, aber das generelle Prinzip vom Ansehen der Header und ueber das Schicksal der Pakete entscheiden ist immernoch da.

3.1 Warum sollte ich einen Paketfilter wollen?

Kontrolle. Sicherheit. Wachsamkeit.

Kontrolle:

Wenn Du einen Linuxrechner benutzt, um Dich aus Deinem internen Netzwerk mit einem anderen Netzwerk (wie dem Internet) zu verbinden, hast Du die Moeglichkeit, bestimmte Arten von Traffic zu erlauben, und andere zu verbieten. Zum Beispiel enthaelt der Header eines Pakets die Zieladresse des Pakets, also kannst Du verhindern, dass Pakete zu einem bestimmten Teil des aeusseren Netzwerks gehen. Ein anderes Beispiel: Ich benutze Netscape, um die Dilbert-Archive zu besuchen. Es gibt Werbung von doubleclick.net auf der Seite, und Netscape verschwendet meine Zeit, um sie alle froehlich herunterzuladen. Man kann das Problem loesen, indem man den Paketfilter beauftragt, keine Pakete von oder zu Adressen, die doubleclick.net gehoeren, zuzulassen (es gibt hierfuer auch bessere Wege: siehe Junkbuster).

Sicherheit:

Wenn Dein Linuxrechner das einzige zwischen dem Chaos des Internet und Deinem netten, ordentlichen Netzwerk ist, ist es schoen, zu wissen, dass Du einschraenken kannst, was fuer Dinge durch Deine Tuer kommen. Zum Beispiel kannst Du alles erlauben, was aus Deinem Netzwerk rausgeht, aber Du koenntest besorgt sein ueber den wohlbekannten 'Ping of Death', der von boesen Aussenstehenden hereinkommen koennte. Als ein anderes Beispiel moechtest Du vielleicht nicht, dass Fremde zu Deinem Linuxrechner telnetten koennen, obwohl all Deine Accounts Passwoerter haben. Vielleicht moechtest Du auch (wie die meisten) im Internet eher ein Beobachter sein, als jemand, der Dienste (gewollt oder nicht) anbietet. Erlaube einfach niemandem, eine Verbindung zu Dir aufzubauen, indem der Paketfilter eingehende Pakete, die eine Verbindung aufbauen wollen, verwirft.

Wachsamkeit:

Manchmal koennte eine schlecht konfigurierte Maschine im lokalen Netz entscheiden, Pakete regelrecht in die Aussenwelt zu spucken. Es ist nett, wenn man dem Paketfilter sagen kann, dass er Dir melden soll, sobald etwas Abnormales vorfaellt; vielleicht kannst Du dann etwas daran aendern, oder vielleicht bist Du bloss von Natur aus neugierig.

3.2 Wie filtere ich Pakete unter Linux?

Linuxkernel hatten Paketfilter seit der 1.1er Serie. Die erste Version, ba- sierend auf 'ipfw' von BSD, wurde von Alan Cox Ende 1994 portiert. Dies wurde von Jos Vos und anderen fuer Linux 2.0 weiterentwickelt; das tool 'ipfwadm' kontrollierte die Filterregeln des Kernels. Mitte 1998, fuer Linux 2.2, habe ich den Kernel mit Hilfe von Michael Neuling sehr stark ueberarbeitet und das tool 'ipchains' eingefuehrt. Mitte 1999, endlich, gab es fuer Linux 2.4 eine komplette Ueberarbeitung des Kernels und somit das Tool fuer die vierte Generation: 'iptables'. Es ist dieses iptables, auf das sich dieses HOWTO konzentriert.

Du brauchst einen Kernel mit der Netfilter-Infrastruktur: Netfilter ist ein iptables Modul im Linuxkernel, auf dem andere Dinge (wie die iptables Module) aufbauen koennen. Das bedeutet, dass Du Kernel 2.3.15 oder hoeher brauchst und CONFIG_NETFILTER in der Kernel-Konfiguration mit 'Y' beantworten musst.

Das Tool iptables spricht mit dem Kernel und sagt ihm, welche Pakete zu filtern sind. Wenn Du kein Programmierer und auch nicht ueberaus neugierig bist, ist das der Weg, auf dem Du den Paketfilter kontrollieren wirst.

iptables

Das iptables Tool fuegt Regeln in die Filtertabellen des Kernels ein und loescht andere. Das bedeutet, dass die Regeln, wie immer Du sie aufsetzt, beim Neustart des Rechners verloren sein werden. Lies Regeln dauerhaft erstellen, um sicherzugehen, dass sie beim naechsten Neustart wieder neu aufgesetzt werden.

iptables ist ein Ersatz fuer ipfwadm und ipchains: Lies ipchains und ipfwadm verwenden, um den Gebrauch von iptables schmerzfrei zu vermeiden, wenn Du eins der beiden Tools verwendest.

Regeln dauerhaft erstellen

Deine jetzige Firewall-Konfiguration ist im Kernel gespeichert und geht also beim Neustart verloren. iptables-save und iptables-restore schreiben steht auf meiner TODO-Liste. Wenn es sie geben wird, werden sie cool sein, ich verspreche es.

In der Zwischenzeit schreib die Befehle, die noetig sind, um Deine Regeln zu erstellen, in ein Init-Script. Versichere Dich, dass Du etwas Intelli- gentes tust, falls einer der Befehle nicht ausgefuehrt werden kann (normalerweise 'exec /sbin/sulogin').


Next Previous Contents