[ précédent ] [ Table des matières ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ A ] [ B ] [ C ] [ D ] [ E ] [ F ] [ G ] [ H ] [ suivant ]
Ces informations sont fournies par Francois Bayart pour aider les utilisateurs
à mettre en place un pare-feu pont avec le noyau 2.4.x et
iptables
. Des correctifs de noyau ne sont plus nécessaires car
le code est maintenant une partie standard de la distribution du noyau Linux.
Pour configurer le noyau avec la prise en charge nécessaire, exécutez 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)
Avertissement : vous devez désactiver ceci si vous voulez appliquer des
règles de pare-feu ou sinon iptables
ne fonctionnera pas :
[ ] Network packet filtering debugging (NEW)
Ensuite, ajoutez les options correctes dans la section IP: Netfilter
Configuration. Puis, compilez et installez le noyau. Si vous désirez le
faire à la sauce Debian, installez kernel-package
et
exécutez 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
.
Une fois ces étapes achevées, vous pouvez terminer la configuration du pont. La section suivante présente deux configurations différentes possibles pour le pont, chacune avec une carte réseau hypothétique et les commandes nécessaires.
La première configuration utilise le pont comme un pare-feu avec traduction d'adresse réseau (NAT) qui protège un serveur et les clients du réseau interne. Voici ci-dessous un diagramme de la configuration du réseau :
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)
Les commandes suivantes présentent une façon de configurer ce pont.
# 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
Une seconde possibilité est un système mis en place comme un pare-feu transparent pour un réseau avec un espace d'adresses IP publiques.
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)
Les commandes suivantes présentent une façon de configurer ce pont.
# 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
Si vous exécutez un traceroute vers le serveur de courriers Linux, vous ne
verrez pas le pont. Si vous voulez accéder au pont avec 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.
Voici un exemple des règles de base qui pourraient être utilisées pour l'une ou l'autre des configurations.
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
[ précédent ] [ Table des matières ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ A ] [ B ] [ C ] [ D ] [ E ] [ F ] [ G ] [ H ] [ suivant ]
Securing Debian Manual
Version: 3.13, Sun, 08 Apr 2012 02:48:09 +0000jfs@debian.org