Sécurité avancée des réseaux Filtrage des paquets IUT d Auxerre Département RT 2 ème année 2013-2014 ZHANG Tuo tuo.zhang@u-bourgogne.fr
Outline Pare-feu & Filtre de Confiance Filtrage de paquets Pare-feu Linux Exemple Autres mécanismes
Pare-feu et Filtre de Confiance requirement
Fonctions de filtrage
Décomposition et recomposition des trames
Pare-feu (Firewall)(1/2)
Pare-feu(2/2) Définition Fonctions Principe Objectifs Ensemble de composants appliquant une politique de contrôle d'accès entre deux réseaux Autoriser ou interdire l'ouverture d'un service utilisant un protocole Autoriser ou bannir une adresse IP source / destination Vérifier / inspecter la conformité du trafic Tout ce qui n'est pas explicitement autorisé, est interdit Se protéger des malveillances "externes" Éviter la fuite d information non contrôlée vers l extérieur Surveiller les flux d'informations internes / externes Faciliter l administration du réseau
Types de pare-feu(1/2) pare-feu à filtrage de paquets
Types de pare-feu(1/2) pare-feu à filtrage de paquets
La Grande Muraille filtrage de paquets
Filtrage de paquets
Filtrage de paquets
Différence entre filtrage statique et dynamique Le filtrage statique analyse les paquets indépendamment les uns des autres Pour tcp seul les flags sont regardés pour «established» Le filtrage dynamique introduit la notion de session (Aussi bien en TCP qu en UDP) un flux de retour sera autorisé uniquement si on a déjà «vu passer un paquet similaire» dans l autre sens
Les Décision de firewall
Exemple de règle en entreprise
Avantages et Inconvénients
Différents Types de firewalls Pare-feu niveau réseau(iptables, paquet filter, ) Firewall fonctionnant à un niveau bas de la pile TCP/IP Basé sur le filtrage des paquets Possibilité (si mécanisme disponible) de filtrer les paquets suivant l état de la connexion Intérêt: Transparence pour les utilisateurs de réseau Pare-feu au niveau applicatif.(inetd, xinetd, ) Firewall fonctionnant au niveau le plus haut de la pile TCP/IP Généralement basé sur des mécanisme de proxy Intérêt: Possibilité d interpréter le contenu du trafic Pare-feu des applications. (/etc/ftpaccess pour ftp, ) Restrictions au niveau des différentes applications
Proxy(1/2)
Proxy (2/2)
Filtrage applicatif(proxy, )
DMZ(DeMilitarized Zone)(1/2) Définition: Une zone démilitarisée est un sous-réseau se trouvant entre le réseau local et le réseau extérieur. Propriétés: Les connexions à la DMZ sont autorisées de n importe où. Les connections à partir de la DMZ ne sont autorisées que vers l extérieur. Intérêt: Rendre des machines accessible à partir de l extérieur(possibilité de mettre en place des serveurs( DNS,SMTP, ) )
DMZ(DeMilitarized Zone)(2/2)
DMZ
DMZ
Bastion
Architecture(1/2)
Exemple Architecture(1/2)
Configurations
NAT(Network Address Translation) C est aussi une mécanisme de filtrage des paquets Permet de renuméroter les adresse et les ports source/destination Traduction dynamique ou statique Table de correspondances adresse: port en entrée/ adresse : port traduite
NAT statique
NAT statique: Principe
NAT dynamique:masquerading
NAT dynamique: Principe(1/2)
NAT dynamique: Principe(2/2)
Pare-feu Linux
Linux firewall Quand une paquet arrive à la firewall de linux, il peut être accepté par application de hôte ou bien transféré par l autre interface d après sa destination. Pare-feu libre Netfilter/iptables(Linux)
netfilter Un framework implémentant un pare-feu au sein du noyau Linux.(version>=2.4) Il prévoit des accroches(hooks)dans le noyau pour l interception et la manipulation des paquets réseau lors des appels des routines de réception ou d émission des paquets des interfaces réseaux.
Netfilter Hook 5 hooks dans la pile réseau, soit Pre-Routing, Local-IN, Forward, Local-Out et Post-Routing
Netfilter Hook routage
Netfilter Table Netfilter défini trois Tables différents, soit NAT, Mangle et Filter Utilisateur peut configure les actions à travers les tables différents pour satisfaire les exigences.
Netfilter Table
Filter table 3 chaînes : INPUT : Paquets rentrants vers des processus locaux OUTPUT : Paquets sortant des processus locaux FORWARD : Paquets passant d'une interface à l'autre
NAT table 3 chaînes : PREROUTING : Paquets rentrants dans la couche réseau POSTROUTING : Paquets sortants de la couche réseau OUTPUT : Paquets sortants des processus locaux
Mangle table
Table et Hook
Exemple pour expliquer iptables Supposons la configuration dans Filter table: si on a une règle: protocole=icmp, on fait DROP iptables -A INPUT -p ICMP -j DROP
Explication(flèche1) Flèche1:le paquet transférer à travers les interfaces réseaux Le paquet entre de Pre-Routing, via Forward Post-Routing et puis sort. Quand le paquet passe via Forward(Check Point A), on va check si c est paquet de ICMP et puis log.
Explication(flèche2) Le paquet entré dans application de Hôte Linux Le paquet passe via Pre-Routing, puis passe INPUT, donc faire le check si c est paquet de ICMP dans le point B, si oui, log it.
Explication(flèche3) Paquet via hôte linux vers extérieur Via OUTPUT, Faire le check dans le Point C
Bilan Fonctionnement: Tous les paquets émis par des processus locaux au routeur traversent la chaine OUTPUT.
Bilan
Connection Tracking Un mécanisme permettant netfliter manager et contrôler l état de connexion. On peut faire TCP Connection Tracking à travers iptables Quatre état(state) de TCP Connection Tracking : NEW ESTABLISHED RELATED et INVALID Sauf le paquet produit par le hôte est dans le chaine OUTPUT, toutes les autres Connection Tracking fonctionnent dans le chaine Pre-Routing.
État de Connection Tracking(connect TCP)
État de Connection Tracking(disconnect TCP)
État de Connection Tracking(connect UDP)
État de Connection Tracking(connect ICMP)
Commands iptables iptables est noyau de contrôle sur netfilter de userspace Trois genres de configuration iptables: Table, Chain, Rule Trois genres de tables: Filter,NAT, Mangle. Iptable v L peut lister toutes les règles et infos de table. Il est utilisé pour expliquer Table, Chain, Rule
Un exemple de résultat iptables -v -L
Ex: Format de command iptables
Format iptables
Liste de iptables Table
Liste de iptables Table
Liste des autre iptables commands
Liste de iptables Generic match
Liste de iptables implicit match
Liste de iptables explicit match
Liste de iptables target/jump
EXEMPLE
Exemple1 port 53 de hôte accepte un paquet UDP vient de 1.2.3.4 # iptables -A INPUT -p UDP -s 1.2.3.4 --dport 53 -j ACCEPT Rajouter une règle(rule), puis le supprimer # iptables -A test -p tcp -j ACCEPT # iptables -D test -p tcp -j ACCEPT
Exemple2 accpte paquet ICMP comme 3(ping) # iptables -A INPUT -p icmp --icmp-type 3 -j ACCEPT Si 20 paquet de tcp SYN se produit par seconde, log it, le prefix est SYN Flood. # iptables -A INPUT -p tcp --syn -m limit --limit 20/second -j \ LOG logdatagrammeprefix "SYN Flood:"
Exemple3 Fonctionnalité NAT d iptables(1/2)
Exemple4-a Fonctionnalité NAT d iptables(1/2)
Exemple4-b Fonctionnalité NAT d iptables(1/2)
Fonctionnalités NAT d Iptables (2/2)
Transfert de ports
Iptables et filtrage(1/2)
Iptables et filtrage(1/2)
Iptables et filtrage(2/2)
Iptables et filtrage(2/2)
Iptables et suivi des connexions(1/2)
Iptables et suivi des connexions(2/2)
Outils de diagnostic Traces iptables. Possibilité de tracer certaines actions iptables. exemple : 1. Tracer toutes les actions iptables : 2. Rajouter une règle pour tracer les paquets rejetés nmap, nessus,.... Logiciels permettant de diagnostiquer l état d un firewall (trouver les ports ouverts, détecter les services utilisant les ports,... )
Outils et liens
Autres mécanismes de sécurité détection d instrusion(1/3)
Autres mécanismes de sécurité détection d instrusion(2/3)
Autres mécanismes de sécurité détection d instrusion(3/3)
Autres mécanismes de sécurité IPS et Honeypots