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


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


Diese Informationen trug Francois Bayart bei, um Benutzern zu helfen, eine Linux Bridge/Firewall mit 2.4.x Kernel und iptables aufzusetzen. Ein Kernelpatch wird nicht mehr benötigt, da der Code Standardinhalt der Linux-Kernel-Distribution wurde.

Um die notwendigen Einstellungen im Kernel vorzunehmen, rufen Sie make menuconfig oder make xconfig auf. Aktivieren Sie im Abschnitt Networking options folgende Optionen:

     [*] 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. Anderenfalls wird iptables nicht funktioniert.

     [ ]   Network packet filtering debugging (NEW)

Anschließend müssen Sie die korrekten Optionen im Abschnitt IP: Netfilter Configuration setzen. 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 maßgeschneidertes Debian-Kernelpaket zu erstellen, das Sie mit dpkg auf Ihrem Server installieren können. Sobald der neue Kernel kompiliert und installiert ist, müssen Sie das Paket bridge-utils installieren.

Wenn Sie diesen Schritt abgeschlossen haben, können Sie die Konfiguration Ihrer Bridge fertigstellen. Im nächsten Abschnitt werden Ihnen zwei verschiedene mögliche Konfigurationen einer Bridge vorgestellt. Beide sind mit einer Übersicht eines hypothetischen Netzwerks und den notwendigen Befehlen versehen.


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

Die erste Konfigurationsmöglichkeit benutzt die Bridge als Firewall mit Network Address Translation (NAT, Übersetzung der Netzwerkadressen), die einen Server und interne LAN-Clienten schützt. Unten wird eine Darstellung der Anordnung des Netzwerks gezeigt:

     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)

Die folgenden Befehle zeigen, wie diese Bridge konfiguriert werden kann:

     # So wird die Schnittstelle br0 erstellt:
     /usr/sbin/brctl addbr br0
     
     # Hinzufügen der Ethernet-Schnittstelle, die die Bridge benutzen
     # soll
     /usr/sbin/brctl addif br0 eth0
     /usr/sbin/brctl addif br0 eth1
     
     # Starten der Ethernet-Schnittstelle
     /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 diese internen IPs für mein NAT benutzt
     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

Eine zweite denkbare Konfiguration ist ein System, das als transparente Firewall für ein LAN mit einer öffentlichen IP-Adresse aufgesetzt ist.

     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)

Die folgenden Kommandos zeigen, wie diese Bridge konfiguriert werden kann:

     # So wird die Schnittstelle br0 erstellt:
     /usr/sbin/brctl addbr br0
     
     # Hinzufügen der Ethernet-Schnittstelle, die die Bridge benutzen
     # soll
     /usr/sbin/brctl addif br0 eth0
     /usr/sbin/brctl addif br0 eth1
     
     # Starten der Schnittstelle
     /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 mit traceroute die Route des Linux-Mail-Servers verfolgen, 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 Einstellungen benutzt werden können:

     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
     # Übereinstimmende 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-Verbindungen, 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 Außenwelt zu verbinden
     # Beachten Sie: Dies ist *nicht* für die vorherigen Verbindungen
     # notwendig (erinnern Sie sich: stateful filtering) und könnte entfernt
     # werden:
     iptables -A FORWARD -p tcp -s 62.3.3.27/32 -d 0/0 -j ACCEPT
     
     # Regeln für 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 Außenwelt zu verbinden
     # Beachten Sie: Dies ist *nicht* für die vorherigen Verbindungen
     # notwendig (erinnern Sie sich: stateful filtering) und könnte 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 ] [ 12 ] [ A ] [ B ] [ C ] [ D ] [ E ] [ F ] [ G ] [ H ] [ weiter ]


Anleitung zum Absichern von Debian

Version: 3.10, Fri, 12 Jan 2007 13:43:33 +0100

Javier Fernández-Sanguino Peña jfs@debian.org
Autoren, Abschnitt 1.1