Garde - Barrière Transparent sous Linux Retour d expérience Philippe Weill ( Aéronomie IPSL ) Frédéric Bongat ( LMD IPSL ) Thierry N Guyen ( Stage ARS FP6 )
Solutions possibles Pas de commutateurs sur le marché permettant de faire du filtrage dynamique ( à ma connaissance) Possible avec Linux ( Bridge + iptables ) Possible avec BSD ( Bridge + filtrage ) Possible avec certains firewall commerciaux ( souvent à base de linux ou BSD ) Choix de linux ( Goût personnel ;-)
PRINCIPE DE BASE La machine sous Linux fonctionne comme un commutateur de niveau 2 Elle permet de faire du filtrage dynamique de niveau 3 sur ses interfaces résea INTERNET eth0 eth2 Switch DMZ eth1 Firewall transparent Bridge défini par eth0, eth1 et eth2 LAN Switch
Pourquoi? Avoir la possibilité de modifier l architecture du réseau sans modifier les configurations des machines actuelles Efficacité du suivi de session en terme de sécurité
Les principaux avantages Possibilité de mise en place progressive et évolutivité Retour en arrière très rapide Pas de renumérotation des machines Coût Matériel relativement faible Configurations utilisées» P3 2.8 MHz, P3 1.2GHz, P3 800Mhz» 512 Mo de ram» 3 cartes réseaux 10/100 3Com» Intel E1000
Distributions Utilisées Pour le Stage: Redhat 7.2 épurée + Bastille-Linux 1.2 + Patch Kernel http://bridge.sourceforge.net/ + Utilitaires bridge En production chez nous depuis Janvier 2003 Devil Linux 1.0.x http://www.devil-linux.org La distribution tourne sur un CDROM La configuration ( /etc ) est sur une disquette ou bien une clef USB Le disque n est pas obligatoire ( utilisation pour les logs )
Stratégie de mise en place Analyse en utilisant un miroir du port d entrée au niveau du commutateur Mise en place du garde barrière avec juste des règles de log ( 15 jours ) Basculement ensuite d un laboratoire par semaine Aujourd hui environ 600 machines derrière le firewall
Activation du Bridge brctl addbr br0 #creation d'un bridge br0 brctl addif br0 eth0 #ajout de eth0 au bridge br0 brctl addif br0 eth1 #ajout de eth1 au bridge br0 brctl addif br0 eth2 #ajout de eth2 au bridge br0 ifconfig eth0 0.0.0.0 #ip eth0 à 0.0.0.0 ifconfig eth1 0.0.0.0 #ip eth1 à 0.0.0.0 ifconfig eth2 0.0.0.0 #ip eth2 à 0.0.0.0 ifconfig br0 ADDR-IP up # adresse IP utile pour la config # à distance TEST de performances : pertes de débit insignifiantes en 100Mb/s avec cartes Giga On peut espérer de l ordre de 200Mb/s avec filtrage
Problématique Gestion des règles Intervention à plusieurs administrateurs» Pas tous habitués à iptables» Besoin de simplicité» Opération d ajout (le plus souvent) Ne pas modifier les règles sur le firewall Conserver de bonnes performances 22/01/2009 Formation Permanente Paris6 128
Le fichier de règles (1) Organisation des règles Affectation des modules iptables et flags Définition des variables Initialisation d iptables Définition des zones Création des chaînes personnalisées» Chaînes de logs» Chaînes thématiques» Règles associées aux chaînes thématiques 22/01/2009 Formation Permanente Paris6 129
Le fichier de règles (2) Initialisation des règles iptables -F iptables -X iptables Z Tout interdit sauf en entrée iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT DROP iptables -A INPUT -i $LOOPBACK_INTF -j ACCEPT iptables -A OUTPUT -o $LOOPBACK_INTF -j ACCEPT 22/01/2009 Formation Permanente Paris6 130
Le fichier de règles (3) Définition des zones : iptables -N INTERNET_LAN iptables -A FORWARD \ -i $INTERNET_INTF -o $LAN_INTF \ -j INTERNET_LAN INTERNET eth1 = $LAN_INTF eth0 = $INTERNET_INTF LAN Internet vers Lan 22/01/2009 Formation Permanente Paris6 131
Le fichier de règles (4) Création de chaînes personnalisées : Chaînes de log (si la règle nécessite un suivi) Chaînes thématique (liste des machines auxquelles les règles s appliquent) Règles associées (souvent déterminées par un port) 22/01/2009 Formation Permanente Paris6 132
Le fichier de règles (5) Création de chaînes personnalisées : Les règles : Règles classiques (décision appliquée directement) # Connexions établies iptables -A INTERNET_LAN \ -m state --state ESTABLISHED,RELATED -j ACCEPT Règles personnalisées (appel vers un bloc supplémentaire): # SSH iptables -A INTERNET_LAN -p tcp \ -m state --state NEW \ --sport $UNPRIVSSH_PORTS --dport 22 -j ssh 22/01/2009 Formation Permanente Paris6 133
Le fichier de règles (6) Création de chaînes personnalisées : Les chaînes thématiques Exemples : iptables -N ssh iptables -A ssh -d 134.157.xxx.7 -j LnA iptables -A ssh -d 134.157.xxx.52 -j LnA iptables -A ssh -d 134.157.xxx.143 -j LnA iptables -A ssh -j LnD 22/01/2009 Formation Permanente Paris6 134
Le fichier de règles (7) Création de chaînes personnalisées : Les chaînes thématiques (2) Exemples 2 : iptables -N icmp_incoming iptables -A icmp_incoming -p icmp -m limit --limit 1/s \ --icmp-type echo-request -d 129.199.xxx.72 -j ACCEPT iptables -A icmp_incoming -p icmp \ --icmp-type echo reply -d 129.199.xxx.72 -j ACCEPT iptables -A icmp_incoming -p icmp --icmp-type echo-request \ -j REJECT iptables -A icmp_incoming -p icmp --icmp-type echo-reply \ -j REJECT 22/01/2009 Formation Permanente Paris6 135
Le fichier de règles (8) Création de chaînes personnalisées : Les chaînes de logs Exemples : iptables -N LnA iptables -A LnA -p tcp --syn -j LOG --log-prefix "Accept TCP Syn:" iptables -A LnA -p tcp! --syn -m limit --limit 5/m --limit-burst 5 \ -j LOG --log-prefix "Accept :" iptables -A LnA -p! tcp -m limit --limit 5/m --limit-burst 5 \ -j LOG --log-prefix "Accept :" iptables -A LnA -j ACCEPT 22/01/2009 Formation Permanente Paris6 136
Gestion du firewall (1) A partir d une station d administration Editions des règles Mise à jour des règles (script) sur le firewall Logs sont envoyés via syslog-ng du firewall Des scripts analysent les logs (toutes les nuits) Detescan :» type du routeur est iptables,» Informations complémentaires par messagerie 22/01/2009 Formation Permanente Paris6 137
Gestion du firewall (2) Consultation sur la station d administration via un Intranet Procédure de mise à jour des règles Les différents fichiers de règles Les logs journaliers du firewall 22/01/2009 Formation Permanente Paris6 138
Gestion du firewall (3) 22/01/2009 Formation Permanente Paris6 139
Gestion du firewall (4) 22/01/2009 Formation Permanente Paris6 140
Gestion du firewall (5) 22/01/2009 Formation Permanente Paris6 141