Projekt Bericht Shorewall

Homepage: Shorewall

-- DavidSchaefer -- 12 Oct 2004

1. Wer steckt hinter der 'shorewall'?

Ein amerikanischer Mathematiker namens Tom Eastep dachte sich einst, dass es viel zu schwierig ist eine komplexe Firewall mithilfe der ipchains und iptables aufzubauen, deswegen schrieb er kurzerhand für den Eigenbedarf die Shorewall. Er schrieb die Version 1 nicht ganz alleine, sondern benutzte einen bereits bestehendes Script und baute es um. Die spätere Version 2 schrieb er von Grund auf nocheinmal neu. Diese Firewall ist komplett unter der GNU herausgegeben, und es wird viel an ihr gearbeitet. Zwar wird dieses Projekt nur von Thom Eastep betrieben, dennoch sind aber fast täglich neue Versionen zu erhalten. Mitlerweile gibt es auch eine rpm Version, so dass Installationen unter RedHat, Fedora, SuSE, Mandrake, Linux PPC, Trustix und TurboLinux ab dem 2.4er Kernel sehr einfach sind. Ein paar Worte zu Tom Eastep. 1967 machte er den Bachelor, 1969 dann den Master der Mathematik in der Washington State University. Im Anschluss arbeitete er 21 Jahre für Burroughs Corporation (heute Unisys). Er arbeitete viel mit Hewlett Packard zusammen und ist deswegen immernoch Mitglied des Design Teams für next-generation Betriebssysteme der NonStop Enterprise Division von Hewlett Packard. Seit 1969 ist er kinderlos verheiratet.

"I became interested in Internet Security when I established a home office in 1999 and had DSL service installed in our home. I investigated ipchains and developed the scripts which are now collectively known as Seattle Firewall. Expanding on what I learned from Seattle Firewall, I then designed and wrote Shorewall."

2. Was ist die 'Shorewall'

Die Shorewall ist ein Script, das auf der Basis von Netfiltern unter Linux eine Firewall konfiguriert. Eingestellt wird die Shorewall mithilfe von Konfigurationsdateien. Diese liest die Shorewall - Firewall aus und richtet mithilfe der iptables die Netfilter nach den Bedürfnissen des Users ein. Die Shorewall ist kein Daemon, ist also nicht die ganze Zeit resistent im Speicher. Sobald die Konfigurationsdateien abgearbeitet wurden wird die Shorewall beendet. Sie kann auf mehrere Arten eingesetzt werden: Als dedicated Firewall, als Router, als Bridge, zum reinen Masquerading, als Filter inmitten eines Netzes und vielen weiteren Möglichkeiten. Somit ist die Sharewall eine Firewall - aber keine Personal Firewall, denn eine Personal Firewall verwaltet die angegebenen Programme einzeln, Shorewall arbeitet Deviceabhängig.

3. Wie funktioniert die 'Sharewall'?

Shorewall teilt die Verbindungen in 4 Bereiche ein:
net das gesamte Internet
loc das homenetz, das Einsatznetz intern
dmz die demilitarisierte Zone
fw die Firewall ansich
Die Zonen werden in der /etc/shorewall/zones eingestellt.

Die Regeln die man festlegt beziehen sich immer auf eine Zone. Die Standardregeln werden in der /etc/shorewall/policy, die Ausnahmen in der /etc/shorewall/rules festgelegt.

Jede Verbindung kann ACCEPTed werden (die Verbindung kommt zustande), DROPped (die Verbindung wird ignoriert) oder REJECTed werden (die Verbindung wird abgewiesen und ein Vermerk wird an den Absender geschickt). Bei jeder Verbindungsanfrage wird zuerst die /etc/shorewall/rules geprüft, und wenn keine Regel angewandt werden kann wird danach die /etc/shorewall/policy geprüft ob sie eine Regel kennt.

Eine Beispiel: /etc/shorewall/policy sieht folgendermaßen aus:

#SOURCE DEST POLICY LOG LEVEL LIMIT:BURST
loc net ACCEPT
net all DROP info
all all REJECT info

Wenn man der Firewall ungehemmten Zugriff auf das Internet geben möchte fügt man folgende Zeile ein:

#SOURCE DEST POLICY LOG LEVEL LIMIT:BURST
fw net ACCEPT
Diese Regeln -erlaubaen allen Anfragen aus der lokalen Zone (dem Intranet) in das Internet. -Verweigern alle Verbindungsanfragen aus dem Internet zur Firewall und dem Intranet. Diese Verbindungsanfragen werden geloggt.

Die Zonen kann man ganz einfach in der /etc/shorewall/interfaces definieren, indem man ein Netzwerkinterface dort mit einem Zonennamen einträgt.

In den Standardeinstellungen für eine 3 Interface Konfiguration ist folgendes definiert:
#ZONE INTERFACE BROADCAST OPTIONS
net eth0 detect dhcp,routefilter,norfc1918
loc eth1 detect
dmz eth2 detect

Hier werden 3 Netzwerkkarten 3 Namen, den Zonen, zugeordnet. Es gibt für die verschiedensten Möglichkeiten bei den die Shorewall eingesetzt werden kann vorgefertigte Konfigurationsdateien, welche nur ein wenig abgeändert werden müssen damit die Shorewall ordentlich funktioniert. Der Autor Thomas M. Eastep benutzt selber die Shorewall Firewall bei sich zu hause, wie das unten abgebildete Bild deutlich macht. network.png

Das Netz besteht aus einem DSL Anschluss mit 5 statischen IP Adressen (206.124.146.176-180). Sein DSL Modem ist das (Westell 2200) welches bei ihm an mit der 192.168.1.1 an eth0 angeschlossen ist. Das Modem ist als Brige konfiguriert, damit er kein PPPoE benötigt. Sein Intranet befindet sich an eth2 (subnet 192.168.1.0/24) und seine demilitarisierte Zone an eth1 (206.124.146.176/32). Eth0 und eth1 haben bei ihm die gleiche IP Adresse. Hierbei hat er eine one-to-one NAT Verbindung zu Ursa (seinem Suse9.1 Computer) - mit der internen Adresse 192.168.1.5 und der externen Adresse 206.124.146.178. Eine weitere one-to-one NAT Verbindung benutzt er zu seinem EastepLaptop, seinem Arbeitscomputer mit WinXP SP1. Die interne Adresse lautet 192.168.1.8 und die externe ist 206.124.146.180. Weiterhin benutzt der Rechner seiner Frau eine SNAT Verbindung durch 206.124.146.179, sowie der Laptop "Tipper" über einen WLAN AP mithilfe einer Wireless Bridge (wet). Sein Ursa hat er als eine 2-port Bridge konfiguriert (193.168.1.5/206.124.146.178). Die Firewall an sich läuft auf einem 384MB K-6/II mit SuSE 9.1. Auf Ursa läuft Samba für Dateifreigaben im Internet. Das WLAN läuft über Ursas eth0 mit LinkSys WAP11. Um die relativ schwache WEP 40- bit Verschlüsselung zu stärken verifiziert er zusätlich die MAC Adressen. Das System hinter der DMZ (206.124.146.177) beherbergt postfix, Courier IMAP, DNS, Apache, fetchmail und FTP Server. Gewartet wird der Server über Proxy ARP, die restlichen Linux Rechner per ssh. Die Adresse des Servers ist 206.124.146.177, die netmask 255.255.255.0, der gateway is sein ISP.

Für dieses sehr verzweigte und kompliziert erscheinende Netzwerk kann man mit Shorewall eine einfach zu überblickende Konfiguration erstellen, die man unter http://shorewall.net/myfiles.htm ansehen kann. Die Shorewall hat als Stärke eine einfache Handhabung, sie ist eine sichere Firewall aufgrund von Linux Netfiltern, nimmt kaum Systemressourcen in Anspruch und bietet einen guten Support, da der Entwickler in dem 5 Jahre jungen Projekt sehr viel Engagement beweisst.

 
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback