make menuconfig
ou make xconfig
. Dans la section Networking options, activez les options suivantes :
[*] Network packet filtering (replaces ipchains) [ ] Network packet filtering debugging (NEW) <*> 802.1d Ethernet Bridging [*] netfilter (firewalling) support (NEW)
iptables
ne fonctionnera pas :
[ ] Network packet filtering debugging (NEW)
make-kpkg
pour créer un paquet noyau personnalisé Debian à installer sur le serveur en utilisant dpkg. Une fois le nouveau noyau compilé et installé, installez le paquet bridge-utils.
Internet ---- routeur ---- pont (62.3.3.25) (62.3.3.26 gw 62.3.3.25 / 192.168.0.1) | | |---- serveur web | (62.3.3.27 gw 62.3.3.25) | réseau ---- Zipowz (192.168.0.2 gw 192.168.0.1)
# Créer l'interface br0 /usr/sbin/brctl addbr br0 # Ajouter l'interface Ethernet à utiliser avec le pont /usr/sbin/brctl addif br0 eth0 /usr/sbin/brctl addif br0 eth1 # Activer l'interface Ethernet /sbin/ifconfig eth0 0.0.0.0 /sbin/ifconfig eth1 0.0.0.0 # Configurer le pont Ethernet # Le pont sera correct et invisible (pare-feu transparent). # Il est invisible à traceroute et la passerelle réelle est # conservée sur les autres machines. La passerelle pourrait aussi # être configurée sur le pont et être choisie comme nouvelle # passerelle pour les autres machines. /sbin/ifconfig br0 62.3.3.26 netmask 255.255.255.248 broadcast 62.3.3.31 # Cette IP interne est ajoutée pour créer la traduction d'adresse ip addr add 192.168.0.1/24 dev br0 /sbin/route add default gw 62.3.3.25
Internet ---- routeur ---- pont (62.3.3.25) (62.3.3.26) | | |---- serveur web | (62.3.3.28 gw 62.3.3.25) | |---- serveur de courriers (62.3.3.27 gw 62.3.3.25)
# Créer l'interface br0 /usr/sbin/brctl addbr br0 # Ajouter l'interface Ethernet à utiliser avec le pont /usr/sbin/brctl addif br0 eth0 /usr/sbin/brctl addif br0 eth1 # Activer l'interface Ethernet /sbin/ifconfig eth0 0.0.0.0 /sbin/ifconfig eth1 0.0.0.0 # Configurer le pont Ethernet # Le pont sera correct et invisible (pare-feu transparent). # Il est invisible à traceroute et la passerelle réelle est # conservée sur les autres machines. La passerelle pourrait aussi # être configurée sur le pont et être choisie comme nouvelle # passerelle pour les autres machines. /sbin/ifconfig br0 62.3.3.26 netmask 255.255.255.248 broadcast 62.3.3.31
ssh
, vous devez utiliser une passerelle ou d'abord vous connecter sur un autre serveur comme le « serveur de courriers », puis ensuite vous connecter sur le pont par la carte réseau interne.
Exemple B.1. Règles de base d'iptables
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 # Quelques règles amusantes, mais pas pour un iptables classique, # désolé... # Limite ICMP # iptables -A FORWARD -p icmp -m limit --limit 4/s -j ACCEPT # Correspond à une chaîne de caractères, une bonne méthode simple pour # bloquer certains VIRUS très rapidement # iptables -I FORWARD -j DROP -p tcp -s 0.0.0.0/0 -m string \ --string "cmd.exe" # Bloquer toutes les connexions MySQL simplement pour être sûr iptables -A FORWARD -p tcp -s 0/0 -d 62.3.3.0/24 --dport 3306 -j DROP # Règles du serveur de courriers Linux # Autoriser 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 # Autoriser le serveur de courriers à se connecter à l'extérieur # Remarque : ce n'est *pas* nécessaire pour les connexions précédentes # (rappel : filtrage à état) et peut être supprimé. iptables -A FORWARD -p tcp -s 62.3.3.27/32 -d 0/0 -j ACCEPT # Règles pour le serveur WWW # Autoriser les connexions HTTP (80) avec le serveur web iptables -A FORWARD -p tcp -s 0.0.0.0/0 -d 62.3.3.28/32 --dport 80 \ -j ACCEPT # Autoriser les connexions HTTPS (443) avec le serveur web iptables -A FORWARD -p tcp -s 0.0.0.0/0 -d 62.3.3.28/32 --dport 443 \ -j ACCEPT # Autoriser les connexions sortantes du serveur web # Remarque : ce n'est *pas* nécessaire pour les connexions précédentes # (rappel : filtrage à état) et peut être supprimé. iptables -A FORWARD -p tcp -s 62.3.3.28/32 -d 0/0 -j ACCEPT