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