[ zurück ] [ Inhalt ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ A ] [ B ] [ C ] [ D ] [ E ] [ F ] [ weiter ]

Anleitung zum Absichern von Debian
Anhang D - Aufsetzen einer Überbrückenden Firewall (bridge Firewall)


Diese Informationen trug Francois Bayart bei, um User zu helfen, eine Linux Bridge / Firewall mit 2.4.x Kernel und iptables aufzusetzen. Es wird lediglich noch der Bridge-Firewall-Patch benötigt, den Sie auf der sourceforge download page finden.

Wenn Sie zum Beispiel einen 2.4.18er Kernel benutzen, müsen Sie den entsprechenden patch herunterladen und anschliessend auf die installierten Kernel-Quellen anwenden:

     Zipowz:/usr/src# apt-get install kernel-source-2.4.18
     Zipowz:/usr/src# cd kernel-source-2.4.18
     Zipowz:/usr/src/kernel-source-2.4.18# patch -p1 < ../bridge-nf-0.0.6-against-2.4.18.diff 
     patching file include/linux/netfilter.h
     patching file include/linux/netfilter_ipv4.h
     patching file include/linux/skbuff.h
     patching file net/bridge/br.c
     patching file net/bridge/br_forward.c
     patching file net/bridge/br_input.c
     patching file net/bridge/br_netfilter.c
     patching file net/bridge/br_private.h
     patching file net/bridge/Makefile
     patching file net/Config.in
     patching file net/core/netfilter.c
     patching file net/core/skbuff.c
     patching file net/ipv4/ip_output.c
     patching file net/ipv4/netfilter/ip_tables.c
     patching file net/ipv4/netfilter/ipt_LOG.c

Jetzt rufen Sie die Kernel-Konfiguration auf (mit Ihrer lieblings Methode: make menuconfig, make xconfig, ...). Aktivieren Sie diese Optionen unter Networking option:

     [*] Network packet filtering (replaces ipchains)
     [ ]   Network packet filtering debugging (NEW)
     <*> 802.1d Ethernet Bridging
     [*]   netfilter (firewalling) support (NEW)

Passen Sie auf, dass Sie dieses hier deaktiviert haben, wenn Sie Firewall-Regeln anwenden wollen, oder iptables funktioniert nicht.

     [ ]   Network packet filtering debugging (NEW)

Anschliessend müssen Sie die korrekten Optionen im Abschnitt IP: Netfilter Configurationsetzen. Dann kompilieren und installieren Sie den Kernel. Wenn Sie dies auf die Debian Art machen wollen, installieren Sie kernel-package und benutzen Sie make-kpkg um ein neues Debian Paket zu erstellen, das Sie auf Ihrem Server installieren können (oder auf einem anderen System benutzen können). Sobald der neue Kernel kompiliert und installiert ist, müssen Sie die bridge-utils installieren.

Jetzt können Sie zwei verschiedene Konfigurationen betrachten, die Ihnen zeigen, wie sie das konfigurieren können, sobald diese Schritte erledigt sind. Beide Konfigurationen sind mit einer Netzwerk-Karte und den notwendigen Kommandos zur konfiguration der Bridge aufgeführt.


D.1 Eine Bridge mit NAT- und Firewall-Fähigkeiten

Die erste benutzt eine Bridge als Firewall mit Network Address Translation (NAT), die einen Server und interne LAN-Clienten schützt.

     Internet ----- router ( 62.3.3.25 ) ----- bridge ( 62.3.3.26 gw 62.3.3.25 / 192.168.0.1 )
                                                 |
                                                 |
                                                 |---- WWW-Server ( 62.3.3.27 gw 62.3.3.25 )
                                                 |
                                                 |
                                                LAN --- Zipowz ( 192.168.0.2 gw 192.168.0.1 )

Diese Kommandos zeigen, wie die Bridge konfiguriert werden kann:

     # So wird die Schnittstelle br0 erstellt:
     /usr/sbin/brctl addbr br0
     
     # Hinzufügen der Ethernet-Schnittstellen, die die Bridge benutzen
     # soll
     /usr/sbin/brctl addif br0 eth0
     /usr/sbin/brctl addif br0 eth1
     
     # Die Schnittstellen einfach starten
     /sbin/ifconfig eth0 0.0.0.0
     /sbin/ifconfig eth1 0.0.0.0
     
     # Konfigurieren der Ethernet-Bridge
     # Die Bridge wird korrekt und unsichtbar (transparente Firewall) sein.
     # In einem traceroute ist Sie versteckt, und Sie behalten Ihr echtes
     # Gateway auf Ihren anderen Computern. Jetzt können Sie ein Gateway
     # auf Ihrer Bridge konfigurieren und es auf Ihren anderen Computern als
     # neues Gateway einsetzen
     
     /sbin/ifconfig br0 62.3.3.26 netmask 255.255.255.248 broadcast 62.3.3.32
     
     # Ich habe benutze diese internen IPs für mein NAT
     ip addr add 192.168.0.1/24 dev br0
     /sbin/route add default gw 62.3.3.25

D.2 Eine Bridge mit Firewall Fähigkeiten

Dieses System ist als transparente Firewall für ein LAN mit öffentlichen IP-Addressen aufgesetzt.

     Internet ----- router ( 62.3.3.25 ) ----- bridge ( 62.3.3.26 )
                                                 |
                                                 |
                                                 |---- WWW Server ( 62.3.3.28 gw 62.3.3.25 )
                                                 |
                                                 |
                                                 |---- Mail Server ( 62.3.3.27 gw 62.3.3.25 )

Diese Kommandos zeigen, wie die Bridge konfiguriert werden kann:

     # So wird die Schnittstelle br0 erstellt:
     /usr/sbin/brctl addbr br0
     
     # Hinzufügen der Ethernet-Schnittstellen, die die Bridge benutzen
     # soll
     /usr/sbin/brctl addif br0 eth0
     /usr/sbin/brctl addif br0 eth1
     
     # Die Schnittstellen einfach starten
     /sbin/ifconfig eth0 0.0.0.0
     /sbin/ifconfig eth1 0.0.0.0
     
     # Konfigurieren der Ethernet-Bridge
     # Die Bridge wird korrekt und unsichtbar (transparente Firewall) sein.
     # In einem traceroute ist Sie versteckt, und Sie behalten Ihr echtes
     # Gateway auf Ihren anderen Computern. Jetzt können Sie ein Gateway
     # auf Ihrer Bridge konfigurieren und es auf Ihren anderen Computern als
     # neues Gateway einsetzen
     
     /sbin/ifconfig br0 62.3.3.26 netmask 255.255.255.248 broadcast 62.3.3.32

Wenn Sie traceroute auf den Linux-Mail-Server schicken, sehen Sie die Bridge nicht, wenn Sie mit ssh auf die Bridge zugreifen wollen, müssen Sie ein Gateway haben, oder erst auf einen anderen Server, wie den "Mail Server", zugreifen um dann über die interne Netzwerkkarte auf die Bridge zuzugreifen.


D.3 grundlegende Iptables-Regeln

Dies ist ein Beispiel für grundlegende Regeln, die für beide Beispiele benutzt werden könnten:

     iptables -F FORWARD
     iptables -P FORWARD DROP
     iptables -A FORWARD -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 -m state --state INVALID -j DROP
     iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
     
     # Zwei lustige Regeln, aber nicht bei klassischen Iptables. Sorry ...
     # Limit ICMP 
     # iptables -A FORWARD -p icmp -m limit --limit 4/s -j ACCEPT
     # Uebereinstimmende Strings, eine gute, einfache Methode, um Viren sehr
     # schnell abzublocken
     # iptables -I FORWARD -j DROP -p tcp -s 0.0.0.0/0 -m string --string "cmd.exe"
     
     # Abblocken aller MySQL Verbindingen, nur um ganz sicher zu gehen
     iptables -A FORWARD -p tcp -s 0/0 -d 62.3.3.0/24 --dport 3306 -j DROP
     
     # Regeln für den Linux Mail Server
     #
     
     # Erlaube FTP-DATA ( 20 ) , FTP ( 21 ) , SSH ( 22 ) 
     iptables -A FORWARD -p tcp -s 0.0.0.0/0 -d 62.3.3.27/32 --dport 20:22 -j ACCEPT
     
     # Dem Mail-Server erlauben, sich mit der Aussenwelt zu verbinden
     # Beachten Sie: Dies ist *nicht* fuer die vorherigen Verbindungen
     # notwendig (Erinnern Sie sich: stateful filtering) und koennte entfernt
     # werden:
     iptables -A FORWARD -p tcp -s 62.3.3.27/32 -d 0/0 -j ACCEPT
     
     # Regeln fuer den WWW-Server
     #
     
     # Erlaube HTTP ( 80 ) Verbindungen mit dem WWW-server
     iptables -A FORWARD -p tcp -s 0.0.0.0/0 -d 62.3.3.28/32 --dport 80 -j ACCEPT
     
     # Erlaube HTTPS ( 443 ) Verbindungen mit dem WWW-server
     iptables -A FORWARD -p tcp -s 0.0.0.0/0 -d 62.3.3.28/32 --dport 443 -j ACCEPT
     
     # Dem WWW-Server erlauben, sich mit der Aussenwelt zu verbinden
     # Beachten Sie: Dies ist *nicht* fuer die vorherigen Verbindungen
     # notwendig (Erinnern Sie sich: stateful filtering) und koennte entfernt
     # werden:
     iptables -A FORWARD -p tcp -s 62.3.3.28/32 -d 0/0 -j ACCEPT

[ zurück ] [ Inhalt ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ A ] [ B ] [ C ] [ D ] [ E ] [ F ] [ weiter ]

Anleitung zum Absichern von Debian

2.5 (beta) 5 marzo 2004Sat, 17 Aug 2002 12:23:36 +0200

Javier Fernández-Sanguino Peña jfs@computer.org