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)
iptables
nicht funktioniert:
[ ] Network packet filtering debugging (NEW)
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.
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)
# Erstellen der Schnittstelle br0 /usr/sbin/brctl addbr br0 # Hinzufügen der Ethernet-Schnittstelle, welche 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.31 # 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
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)
# Erstellen der Schnittstelle br0 /usr/sbin/brctl addbr br0 # Hinzufügen der Ethernet-Schnittstelle, welche 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.31
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.
Beispiel B.1. Grundlegende Iptables-Regeln
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 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 # AErlaube 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