420 likes | 907 Vues
Pare-feu. Pare-feu. Responsables : Hugo ETIEVANT (côté routeur), Benoît MAYNARD (côté client) Objectifs : sécuriser la passerelle et protéger le réseau privé Outil : ipchains. Outil ipchains. Utilisation de l’outil standard de firewalling : ipchains .
E N D
Pare-feu Responsables : Hugo ETIEVANT (côté routeur), Benoît MAYNARD (côté client) Objectifs : sécuriser la passerelle et protéger le réseau privé Outil : ipchains
Outil ipchains Utilisation de l’outil standard de firewalling : ipchains. Permet d’établir des règles de filtrage selon une hiérarchie de chaînes arborescentes. Rapide, souple, efficace et très bien documenté.
Fonctionnement (I) Les règles de filtrage déterminent le devenir des paquets grâce à une police qui peut être : ACCEPT, REJECT, DENY, MASQ ou encore une redirection vers une chaîne. Les règles sont groupées en chaînes qui peuvent être celles de base : input, forward, output ou d’autres définies par l’utilisateur.
Fonctionnement (II) Les paquets entrants dans le pare-feu arrivent automatiquement dans la chaîne input. Ceux qui sont émis par le pare-feu, passent dans la chaîne output. Et ceux qui sont retransmis passent par la chaîne forward. Un paquet qui entre dans une chaîne teste toutes les règles de la chaîne jusqu’à en trouver une qui lui corresponde. Et il obéit à la police spécifiée par la règle trouvée.
Fonctionnement (III) Si aucune règle s’appliquant au paquet n’a été trouvée, alors c’est la police par défaut de la chaîne qui est utilisée pour savoir que faire de ce paquet. Il est donc important, avant de créer les règles, de définir la police par défaut d’une chaîne. Par sécurité, on applique REJECT en entrée (input) et en sortie (output) et DENY en redirection (forward).
Les polices Les polices de base : • ACCEPT : le paquet est accepté • REJECT : le paquet est rejeté avec envoi d’un message d’explication ICMP • DENY : le paquet est rejeté en mode silencieux • MASQ : le paquet est redirigé par masquerading (translation d’adresses IP NAT)
Les critères de sélection Les règles reposent sur des critères de sélection très variés : • Machine source • Port source • Machine destination • Port destination • Interface • TOS • Protocole • Drapeaux spéciaux du paquet TCP • Types et codes spéciaux du paquet ICMP
Actions sur les paquets Les règles peuvent définir différentes actions sur un paquet : • Mise en fichier de log • Application d’une police • Redirection vers une autre chaîne • Marquage du paquet
Mode de construction des règles • Chaînes • création N • vidage F • suppression X • affectation d’une police P • affichage L • Règles • ajout en fin de liste A, insertion ordonnée I • suppression D • remplacement R • changement d’ordre • test C
Politique de sécurité • IP masquerading • Prohiber le Ping • Palier à l’IP Spoofing • Restreindre Telnet • Gérer l’accès aux sites web • Limiter les autres services • Garder trace du trafic sensible
IP masquerading Pour un réseau local invisible de l’extérieur. Tout en lui permettant l’accès à l’extérieur incognito. echo 1 > /proc/sys/net/ipv4/ip_forward ipchains –P forward DENY ifconfig eth0 up 192.168.0.1 netmask 255.255.255.0 ifconfig eth1 up 134.214.90.20 netmask 255.255.252.0 ipchains –b –A forward –s 192.168.0.0/24 –j MASQ
Accès aux sites web Autoriser seulement les connexions HTTP vers l’extérieur. ipchains –A forward –p tcp –s 192.168.0.0/24 –d 0.0.0.0/0 80 –j MASQ ipchains –A forward –p tcp ! –y –s 0.0.0.0/0 80 –d 192.168.0.0/24 –j MASQ
IP Spoofing Combattre l’usurpation d’identité, limité à la plage d’adresses de notre réseau privé et à l’adresse de notre passerelle. ipchains –N ipspoof ipchains –F ipspoof ipchains –A ipspoof –l –j DENY ipchains –A input –i eth1 –s 192.168.0.0/24 –j ipspoof ipchains –A input –i eth1 –s 134.214.90.20 –j ipspoof
Restrictions Telnet (I) Pour des besoins de maintenance à distance, autorisation est faite à la machine 134.214.90.14 de se connecter à la passerelle sur le port Telnet (port 23 selon /etc/services). L’accès des autres machines via Telnet est interdit.
Restrictions Telnet (II) – en entrée ipchains –N telin ipchains –F telin ipchains –A telin –s 134.214.90.14 –d 134.214.90.20 –j ACCEPT ipchains –A telin –l -j REJECT ipchains –A input –i eth1 –p tcp –s 0.0.0.0/0 23 –j telin
Restrictions Telnet (III) – en sortie ipchains –N telout ipchains –F telout ipchains –A telout –s 134.214.90.20 –d 134.214.90.14 –j ACCEPT ipchains –A telout –l –p tcp ! –y -j REJECT ipchains –A output –i eth1 –p tcp –s 0.0.0.0/0 23 –j telout
Trafic ICMP (I) • Internet Control Message Protocol (RFC 950) : mécanisme de contrôle des erreurs au niveau IP. • Utilisé par les outils ping et traceroute afin de préparer les attaques par découverte des réseaux. • Ping : teste l’existence d’une machine sur le réseau. • Traceroute : suivi du trajet des paquets.
Trafic ICMP (II) – objectifs Pour éviter tout scan futur, la parade pour rester invisible aux outils de découverte du réseau est : • Devenir invisible aux requêtes echo-request Malgré tout, on va participer à la gestion normale des erreurs • Gérer normalement les autres messages ICMP
Ping – avant 134.214.90.20 134.214.88.12 ping 134.214.90.20 -c 1 64 bytes from 134.214.90.20: icmp_seq=0 ttl=240 time=17.3 ms
Ping – après 134.214.90.20 134.214.88.12 ??? Mise en fichier de log. ping 134.214.90.20 -c 1 100% packet loss
Trafic ICMP (III) – en entrée ipchains -N icmpin ipchains -F icmpin ipchains -A icmpin -l -p icmp --icmp-type echo-request -j DENY ipchains -A input -i eth1 -p icmp -j icmpin
Trafic ICMP (IV) – en sortie ipchains -N icmpout ipchains -F icmpout ipchains -A icmpout -l -p icmp --icmp-type echo-reply -j DENY ipchains -A output -i eth1 -p icmp -j icmpout
Fichier de log • Conserver les traces du trafic sensible (option -l) • /etc/log/messages • Exemple de trace : Nov 8 10:25:53 b710pbv kernel: Packet log: input REJECT eth1 PROTO=17 134.214.90.16:138 134.214.91.255:138 L=236 S=0x00 I=51490 F=0x0000 T=128 (#7) date et heure machine, système chaîne, police, interface protocole machine et port source machine et port destination taille du paquet TOS id du paquet IP grapeau et id de fragment durée de vie (TTL) index de la règle utilisée