IPTABLES Conférence Starinux Introduction à IPTABLES
IPTABLES Plan de la conférence Introduction Conférence::Pré requis notions de réseaux termes «techniques»
IPTABLES Plan de la conférence Firewall::Généralités Pourquoi un firewall? Fonctionnement d un firewall Rôle et avantages d un firewall Les limites d un firewall Firewall logiciel et matériel Configurer un firewall Stateful et Stateless Les commandes utiles Les Firewalls open source
IPTABLES Plan de la conférence Netfilter :: Iptables Généralités Différences IPTABLES / IPCHAINS Tables, chaînes, états, paramètres et cibles Construction d une règle Exemple de règles Les logs Les extensions Les interfaces graphiques Sauvegarde et restauration
IPTABLES Plan de la conférence Netfilter :: Cas Pratique PC Seul connecté à internet PC avec partage de connexion internet PC passerelle avec réseau local Exemples de scripts Tester son iptables adoré Les différents types d attaque
IPTABLES Plan de la conférence Projets Free Routeurs, Firewall Les distributions spécialisées Conclusion
Introduction INTRODUCTION
IPTABLES Conférence::Pré requis
Conférence :: Pré requis Notions à connaître @dresse IP / @adresse MAC Un port TCP / UDP / ICMP Drapeau (Flags : ACK, SYN, FIN, RST) Routage Linux ; ) la paranoïa ; )
IPTABLES Firewall :: Généralités
Firewall :: Généralités Pourquoi un firewall? Internet = danger? Hausse des débits de connexion Protéger ou pour faire joli? L expérience numéricable
Fonctionnement d un firewall Firewall :: Généralités Stocker les règles de filtrage Analyser l en tête du datagramme Contient l @IP, l @IP destination, les protocoles src/dst Appliquer les règles de filtrage aux paquets reçus
Rôle et avantage d un firewall Firewall :: Généralités Point important où est centralisée la sécurité réseau Génération d alarmes et de reporting NAT Point unique de panne internet
Firewall :: Généralités Les limites - Ne protège pas contre tous type d attaque Ne protège pas contre les utilisateurs imprudents Ne protège pas les transferts de fichiers infectés Le firewall n est pas infaillible Ne protège pas des chevaux de Troie
Firewall :: Généralités Le pare feu matériel Intégré dans la machine Administration simplifiée Peu de vulnérabilités Dépendant du constructeur Faire attention aux besoins
Firewall :: Généralités Le pare feu logiciel Fw orienté «personnel» Beaucoup plus accessible pour un utilisateur NAT Difficile Nombreux firewalls disponibles Payants et facilement configurable
Firewall :: Généralités Configurer un firewall Il y a 2 types de configurations possibles : Tout ce qui est interdit est bloqué Tout ce qui n est pas interdit est permis
Fonctionnement d un firewall Firewall :: Généralités Stateless : Filtrage simple de paquets Stateful : Filtrage de paquets avec état
Firewall :: Généralités Fonctionnement d un firewall Stateless : Méthode la plus simple Concerne la plupart des routeurs actuels Se base sur : @IP src/dest, port src/dest Pas de résistances aux attaques : DoS Spoofing Flooding iptables A INPUT p tcp dport 80 j ACCEPT
Firewall :: Généralités Fonctionnement d un firewall Stateful : Amélioration de la méthode simple Conservation de la trace des sessions et des connexions Décision en fonction des états Meilleure protection contre les attaques N évite pas TOUTES les attaques! iptables A INPUT p tcp dport 80 \ m state state! INVALID j ACCEPT
Les commandes utiles Firewall :: Généralités cat /etc/services grep numéro_de_port
Les commandes utiles Firewall :: Généralités lsof Pi i pour IP / P pour Port netstat lnutp U pour UDP / T pour TCP
Les Firewalls Open Source Firewall :: Généralités IPFilter (IPF) Packet Filter (PF) IP Firewall (Ipfw) IPTables
IPTABLES Netfilter :: Iptables
Netfilter :: IPTABLES Généralités IPTABLES Netfilter est intégré au noyau Linux IPTABLES est l outil de configuration de Netfilter IPTABLES remplace ipchains / ipdwadm Filtrage de paquets Stateful et Stateless Translation d adresses (NAT) améliorée
Netfilter :: IPTABLES Généralités IPTABLES Administration difficile Port Forwarding / IP accounting Gestion de QoS (Qualité of Service) Module du noyau (iptable_filter.o) Outils : iptables_save & iptables_restore
Netfilter :: IPTABLES Différences IPTABLES / IPCHAINS Le nom des chaînes sont en MAJUSCULES Nouvelles options o et i La cible DENY devient DROP La cible MASQ devient MASQUERADE Les ports tcp/udp sont appelés avec sport et dport
Netfilter :: IPTABLES Différences IPTABLES / IPCHAINS Mettre un exemple de règles pour différencier iptables et ipchains
Netfilter :: IPTABLES Les tables À utiliser avec l option t : FILTER : filtre les paquets NAT : traduction d adresse ou de ports MANGLE : modification des paquets
Les tables et les chaines Netfilter :: IPTABLES FILTER : INPUT OUPUT FORWARD NAT : PREROUTING POSTROUTING OUTPUT MANGLE : PREROUTING POSTROUTING INPUT / OUTPUT
Firewall :: Généralités iptables t filter
Netfilter :: IPTABLES Les commandes N Créer une nouvelle chaîne X Effacer une chaîne P Changer la politique par défaut L Lister le contenu des chaînes F Vider les chaînes Z Mettre à zéro les compteurs de bits A Ajouter une chaîne D Supprimer une chaîne I Insérer une nouvelle règle
modprobe modprobe iptable_nat STARINUX Netfilter :: IPTABLES Les paramètres p, protocol p tcp s, source s 192.168.0.0/24 d, destination d 192.168.0.1 j, jump i, in interface o, out interface j ACCEPT i eth0 o eth1 v, verbose n, numeric affichage au format numérique
Netfilter :: IPTABLES Les types d états ( m state) NEW : paquet demandant une nouvelle connexion ESTABLISHED : paquet associé à une connexion établie RELATED : nouvelle connexion mais liée (ftp) INVALID : paquet associé à une connexion inconnue Iptables A INPUT p tcp dport 80 m state NEW, ESTABLISHED j ACCEPT Iptables A INPUT p tcp dport 80 m state INVALID j DROP
Netfilter :: IPTABLES Les cibles ( j cible) DROP : paquet ignoré ACCEPT : paquet accepté QUEUE : paquet mis en attente de traitement REJECT : paquet refusé MASQUERADE : masquage d adresse LOG : permet d enregistrer le paquet SNAT/DNAT : modification du paquet pour le NAT RETURN : permet de revenir à la chaîne précédente
Construction d une règle Netfilter :: IPTABLES TABLE CHAINE MOTIF DE RECONNAISSANCE CIBLE iptables t filter A INPUT p TCP dport 21 J ACCEPT
Netfilter :: IPTABLES Exemples de règles Mettre la politique par défaut des paquets entrants à rejeter # iptables P INPUT DROP Autoriser un serveur web # iptables A INPUT p tcp dport 80 j ACCEPT # iptables A OUPUT p tcp sport 80 j ACCEPT Interdire les ping en entrée # iptables A INPUT p icmp j ACCEPT
Netfilter :: IPTABLES Gestion des logs # les paquets en destination du port 702/tcp seront DROPés et LOGués. iptables N LOG_DROP iptables A LOG_DROP j LOG log prefix [IPTABLES DROP]: iptables A LOG_DROP j DROP iptables A INPUT p tcp 702 j LOG_DROP # les paquets en destination du port 703/tcp seront LOGués. iptables A INPUT p tcp 703 j LOG prefix [IPT 703]
Netfilter :: IPTABLES Gestion des logs : Exemple telnet 192.168.0.10 443. Refused. dmesg [IPTABLES DROP]:IN=eth1 OUT= MAC=00:02:a5:0c:f0:77:00:11:d8:00:a5:c9:08:00 SRC=192.168.0.1 DST=192.168.0.10 LEN=48 TOS=0x00 PREC=0x00 TTL=128 ID=9297 DF PROTO=TCP SPT=1241 DPT=443 WINDOW=64240 RES=0x00 SYN URGP=0 [IPTABLES DROP]:IN=eth1 OUT= MAC=00:02:a5:0c:f0:77:00:11:d8:00:a5:c9:08:00 SRC=192.168.0.1 DST=192.168.0.10 LEN=48 TOS=0x00 PREC=0x00 TTL=128 ID=9298 DF PROTO=TCP SPT=1241 DPT=443 WINDOW=64240 RES=0x00 SYN URGP=0
Netfilter :: IPTABLES Gestion des logs FirewallEyes Open source sous licence GPL Interface Web Possibilité de faire des recherches Gère plusieurs logs de plusieurs firewalls iptables A RULE_1 j LOG log level info log prefix «RULE 1 DROP» http://firewalleyes.creabilis.com
Gestion des logs FirewallEyes Netfilter :: IPTABLES
Gestion des logs FirewallEyes Netfilter :: IPTABLES Iptables A INPUT j DROP
Gestion des logs Ulogd Netfilter :: IPTABLES
Netfilter :: IPTABLES IPTABLES::extensions Le patch length Iptables A INPUT p icmp icmp type echo request m length length 86:0xffff j DROP But : DROPper tous les ping dont la taille de paquet est plus grande que 85 octets.
Netfilter :: IPTABLES IPTABLES::extensions Le patch string Iptables A INPUT m string string cmd.exe j QUEUE But : Mettre en queue (ou faire analyser par un IDS) toutes chaînes contenant le motif. Attention à ne pas mettre DROP.
Netfilter :: IPTABLES IPTABLES::extensions Le patch time Iptables A INPUT m time timestart 8:00 timestop 18:00 days Mon,Tue,Tue,Wed,Thu,Fri j ACCEPT But : sans commentaires
Netfilter :: IPTABLES IPTABLES::extensions Le patch nth Iptables A INPUT p icmp icmp type echo request m nth every 2 j DROP But : Bloquer un paquet sur 2. Possibilité de faire du load balancing.
Netfilter :: IPTABLES IPTABLES::extensions Le patch mport Iptables A INPUT p tcp m mport ports 20:23,80 j DROP But : Bloquer ftp, ssh, telnet et http en 1 ligne, sans tenir compte de TCP ou UDP. sports port dports port ports port matcher le port source matcher le port de destination matcher le port de destination ou source
Interfaces graphiques :: Guarddog Netfilter :: IPTABLES - Interface graphique GPL -
Interfaces graphiques :: Guarddog Netfilter :: IPTABLES
Netfilter :: IPTABLES Interfaces graphiques :: Firewall Builder
Interfaces graphiques :: Firestarter Netfilter :: IPTABLES Open source Présence d un assistant pour configurer le firewall Supporte les noyaux 2.4 et 2.6 Traduit en plusieurs langages Blacklist possible http://firestarter.sourceforge.net/
Interfaces graphiques :: Firestarter Netfilter :: IPTABLES
Netfilter :: IPTABLES Interfaces graphiques :: Shorewall http://www.shorewall.net/ Traductions fr : http://linuxfr.org/2003/02/03/11227.html
Interfaces graphiques :: Shorewall Netfilter :: IPTABLES
Module de Webmin STARINUX Interfaces graphiques :: Divers Netfilter :: IPTABLES Turtle Firewall Bastille Linux Arno s Script IPTABLES Firewall Script Gshield Lids
Sauvegarde et restauration Netfilter :: IPTABLES iptables save > regles iptables restore < regles Cat regles
Netfilter :: IPTABLES Vérifier les règles iptables L v n
IPTABLES Netfilter :: Cas Pratique
IPTABLES Cas Pratique Présence Firewall : cas différents Bouts de scripts Tester Iptables Les types d attaque
IPTABLES Cas Pratique 1 PC relié seul à Internet PC bureautique : surf, mail, ftp, etc Pas de services Pas de routage
IPTABLES Cas Pratique 1
IPTABLES Cas Pratique 1 Script # Requetes DNS iptables A INPUT p udp sport 53 j ACCEPT iptables A OUTPUT p udp dport 53 j ACCEPT # Surf iptables A INPUT p tcp sport 80 j ACCEPT iptables A OUTPUT p tcp dport 80 j ACCEPT
IPTABLES Cas Pratique 2 PC relié seul à Internet PC passerelle internet (partage) Réseau local sûr Services (ftp, samba, http)
IPTABLES Cas Pratique 2
IPTABLES Cas Pratique 2 Script ADDR_LAN="192.168.0.0/24" # Serveur Web itpables A INPUT p tcp dport 80 j ACCEPT iptables A OUTPUT p tcp sport 80 j ACCEPT # SSH iptables A INPUT s $ADDR_LAN p tcp dport 22 j ACCEPT iptables A OUTPUT d $ADDR_LAN p tcp sport 22 j ACCEPT
IPTABLES Cas Pratique 2 Script # Active le forwarding echo "1" > /proc/sys/net/ipv4/ip_forward # Traffic réseau local < > Internet $IPT A FORWARD s $ADDR_LAN o ppp0 j ACCEPT $IPT A FORWARD i ppp0 d $ADDR_LAN j ACCEPT # Partage la connexion $IPT t nat A POSTROUTING s $ADDR_LAN j MASQUERADE
IPTABLES Cas Pratique 3 PC passerelle internet (partage) Gestion du Réseau local et d une DMZ Services (http, dns, mail) Gestion du NAT Attention aux flux
IPTABLES Cas Pratique 3
IPTABLES Cas Pratique 3
IPTABLES Cas Pratique 3 Script # Table filter iptables P INPUT DROP iptables P OUTPUT DROP iptables P FORWARD DROP # Table nat iptables t nat P POSTROUTING ACCEPT iptables t nat P PREROUTING ACCEPT iptables t nat P OUTPUT ACCEPT # Log DMZ_HTTP (paquet accepté) $IPT N LOG_LAN DMZ_HTTP $IPT A LOG_LAN DMZ_HTTP j LOG log prefix '[IPT LAN DMZ_HTTP]:' $IPT A LOG_LAN DMZ_HTTP j ACCEPT
IPTABLES Cas Pratique 3 Script # Traffic vers le Net $IPT t nat A POSTROUTING s $ADDR_LAN o ppp0 j MASQUERADE $IPT t nat A POSTROUTING s $ADDR_DMZ o ppp0 j MASQUERADE # Routage entre les réseaux $IPT A FORWARD s $ADDR_LAN o ppp0 j LOG_LAN NET # Serveur WEB accessible $IPT t nat A PREROUTING d {ip_publique} p tcp dport 80 \ j DNAT to destination 192.16.100.1:80
Netfilter :: Cas Pratique Tester son firewall Sites Internet Outils
Netfilter :: Cas Pratique Tester son firewall Services Actifs : Apache : 80 /tcp Samba : 137, 138, 139 /tcp /udp Proftpd : 20, 21 /tcp Ssh : 22/tcp
Netfilter :: Cas Pratique Tester son firewall Sites Internet
Netfilter :: Cas Pratique Tester son firewall http://check.sdv.fr/
Netfilter :: Cas Pratique Tester son firewall http://www.auditmypc.com/
Netfilter :: Cas Pratique Tester son firewall http://www.pcflank.com/
Netfilter :: Cas Pratique Tester son firewall http://www.securityspace.com/
Netfilter :: Cas Pratique Tester son firewall Outils
IPTABLES NMAP Scanner de ports Scanner de réseau Identificateur d empreinte Interface graphique (nmapfe) Propose beaucoup d options Site officiel : http://www.insecure.org Man nmap
IPTABLES NMAP::options st ss si sf, sx, sn su sr sa, sw scanflags so TCP connect() Syn scan Idle scan FIN, XMAS, NULL scans Scan UDP Scan RPC ACK et Window scan Scans personalisés Scan de protocoles
IPTABLES NMAP::exemples Placer ici une capture d écran AVANT
IPTABLES NMAP::exemples Placer ici une capture d écran APRES configuration firewall
IPTABLES Outils::Netcat Permet aussi de scanner les ports d une machine netcat vv r @IP 65535 Très long Le scan s arrête lorsqu un port est ouvert Remède : Netcat vv i 2000 r z @IP
IPTABLES Outils::Hping2 (http://www.hping.org/) Teste les règles du pare feu Scan complexe Fait du firewalking Fingerprinting plus configurable que nmap
IPTABLES Outils::Nessus (http://www.nessus.org) Mode Client/Serveur Scanner de failles Plateformes X11, Win32, Java Beaucoup de plug ins 500 contrôles de vulnérabilité
IPTABLES Les autres outils (P) Netcon (Symantec) (P) ISS Internet Scanner (P) Retina (eeye) (P) Cybercop Scanner (Network Associates) (Win) Local Port Scanner
IPTABLES Les types d attaque Les types de Scan Attaque DoS Smurfing Fragmentation de paquets Comment s en protéger, non?
IPTABLES Attaque : Types de Scan Options vues de Nmap Scan furtif, Vanilla TCP Connect Prise d empreinte Détectables facilement pour la plupart Limiter l arrivée des paquets
IPTABLES Attaque : DoS Denial Of Service Syn Flood UDP Flood Denial Of Service distribué Limiter le traffic Syn et UDP
IPTABLES Attaque : Smurfing Attaque par réflexion Basée sur ICMP Saturation de la bande passante Limiter le traffic ICMP
IPTABLES Attaque : Fragmentation Fragmentation des paquets Utilisation de faille des piles TCP/IP Paquet modifié «TearDrop Attack»
IPTABLES Attaque : Se protéger Faire attention aux règles Lire les logs Installer un IDS Limiter le traffic et les flux Employer un Hacker ;)
IPTABLES PROJETS FREE - ROUTEURS / FIREWALL
IPTABLES Les solutions «toutes prêtes» Elle proposent : Fw basé sur Netfilter::Iptables Une suite d outils graphiques * pour configurer les règles * pour les statistiques * gestion des logs
IPTABLES Les solutions «toutes prêtes» Openwall Free OS Sentinix MNF Freesco LRP
IPTABLES Openwall (owl) OS destiné à la sécurité améliorée sous linux Architectures SPARC, x86, Alpha Noyau Linux + Outils GNU Environnement complet («make buildworld») Accès sur la sécurité linux http://www.openwall.com/owl/fr/ Compatible Red Hat
IPTABLES Free OS - Basée sur GNU/Linux et sur e smith Solution multi serveurs/passerelle Administration par une interface web Version Windows : 100% de logiciels libres http://free os.org
IPTABLES Sentinix Distribution GNU/Linux Spécialisée dans le monitoring, détection d intrusion, anti spam, reporting, Outils spécialisés : Nagios, Snort, Acid, Postfix, SpamAssassin, Nessus, etc http://www.sentinix.org
IPTABLES MNF (Multi Network Firewall) Distribution GNU/Linux basée sur Mandrake Firewall (Iptables, Shorewall), monitoring, détection d intrusion (Snort, Prelude), VPN, Gestion des DMZ Divers : DHCP, Proxy, cache DNS Interface Web et divers assistants http://www.mandrakesoft.com/products/mnf
IPTABLES FREESCO (Free Cisco) Distribution GNU/Linux, x86 Support utilisé : disquette Noyau 2.0.39 Serveurs DHCP, DNS, FTP Gestion de paquetage http://www.freesco.org http://hellsite.free.fr/montages/routeur_freesco/routeur_freesco.php
IPTABLES LRP (Linux Router Project) Distribution GNU/Linux minimale Support utilisé : disquette Configuration requise peu élevée Fonctionne sans disque dur Le projet est arreté depuis juin 2006 http://www.linuxrouter.org
IPTABLES Les autres projets IPCop http://www.ipcop.org Coyote Linux http://www.supinfo projects.com/fr/2004/coyotelinux/1/ SME http://www.sme fr.homelinux.net/
Conclusion CONCLUSION
Remerciements MERCI Retrouvez nous sur http://starinux.free.fr ou par mail : starinux@ml.free.fr