La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

TP sur le filtrage avec iptables. Mettre en oeuvre un ensemble de règles de filtrage sous iptables Comprendre la syntaxe iptables Organiser lordre des.

Présentations similaires


Présentation au sujet: "TP sur le filtrage avec iptables. Mettre en oeuvre un ensemble de règles de filtrage sous iptables Comprendre la syntaxe iptables Organiser lordre des."— Transcription de la présentation:

1 TP sur le filtrage avec iptables

2 Mettre en oeuvre un ensemble de règles de filtrage sous iptables Comprendre la syntaxe iptables Organiser lordre des règles Mettre en oeuvre un ensemble de règles de filtrage sous iptables Comprendre la syntaxe iptables Organiser lordre des règles Objectifs

3 Mettre la politique de filtrage à DROP pour toute la table filter Mettre la politique de filtrage à DROP pour toute la table filter Réalisation du script iptables -t filter -P INPUT DROP -t filter On indique que la règle sera ajoutée dans la table filter, mais on peut l'omettre étant donné que la table filter est choisie par défaut -P INPUT DROP Ici, on ne crée pas une simple règle, mais on ajoute une politique par défaut pour la chaîne INPUT (INPUT= le trafic à destination du firewall) En réalité, cela revient à ajouter une règle qui DROP tous les paquets après toutes les autres règles. Et on fait pareil pour les chaines OUTPUT et FORWARD iptables -t filter -P OUTPUT DROP iptables -t filter -P FORWARD DROP

4 Autoriser tous les flux en sortie de votre machine Réalisation du script (2) 1- iptables -t filter -P OUTPUT ACCEPT Deux façons de faire: Ou 2- iptables -A OUTPUT -j ACCEPT Exercice: Y a-t-il une différence entre les deux ? et si oui laquelle ? = On change la politique par défaut pour OUTPUT = On laisse tous les flux sortir en OUTPUT

5 Il faut aussi accepter les paquets de réponse à nos requêtes, sinon les connexions ne pourront pas être établies Il faut aussi accepter les paquets de réponse à nos requêtes, sinon les connexions ne pourront pas être établies MAIS !!!!! iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -m state --state ESTABLISHED,RELATED On accepte en INPUT les paquets appartenant à une connexion établie (ceux qui ont été autorisés en OUTPUT)

6 Autoriser les flux web et DNS vers votre machine Réalisation du script (3) iptables -A INPUT -m state --state NEW -p tcp -- dport 80 --syn -j ACCEPT iptables -A INPUT -m state --state NEW -p tcp -- dport 80 On autorise les flux entrants pour les nouvelles connexions tcp sur le port 80 --syn On vérifie aussi que seul le flag SYN est positionné (pour éviter les scans bizarres) On fait pareil pour le DNS, sans le --syn étant donné quil ny a pas de flags en UDP iptables -A INPUT -m state --state NEW -p udp -- dport 53 -j ACCEPT

7 Créer une chaine qui log et qui drop les paquets Réalisation du script (4) iptables -N log_n_drop On créé la chaîne log_n_drop Et on y créé deux règles, une pour logger et une pour filtrer iptables -A log_n_drop -j LOG --log-prefix '[paquet rejeté] : ' iptables -A log_n_drop -j DROP

8 Cette nouvelle chaîne créée ne sert a rien tant quelle nest pas appelée depuis une autre règle avec laction -j log_n_drop Pour linstant la chaîne est créée mais pas utilisée. Comme si vous créiez une fonction en C mais que vous ne lappeliez jamais. Cette nouvelle chaîne créée ne sert a rien tant quelle nest pas appelée depuis une autre règle avec laction -j log_n_drop Pour linstant la chaîne est créée mais pas utilisée. Comme si vous créiez une fonction en C mais que vous ne lappeliez jamais. ATTENTION !!!

9 Au lieu de droper dans le script, appelez la chaîne log_n_drop Au lieu de droper dans le script, appelez la chaîne log_n_drop Réalisation du script (5) Nous navons aucune règle de DROP pour linstant vu que nous dropons avec la politique par défaut. Si nous avions des règles finissant par -j DROP nous pourrions les remplacer par -j log_n_drop Nous navons aucune règle de DROP pour linstant vu que nous dropons avec la politique par défaut. Si nous avions des règles finissant par -j DROP nous pourrions les remplacer par -j log_n_drop

10 Créer une chaîne qui interdit lusage des adresses RFC 1918 et qui log Créer une chaîne qui interdit lusage des adresses RFC 1918 et qui log Réalisation du script (6) On créé la chaîne iptables -N RFC Et les règles pour chaque plage dadresse iptables -A RFC -s /8 -j log_n_drop iptables -A RFC -s /16 -j log_n_drop iptables -A RFC -s /12 -j log_n_drop

11 Comme pour log_n_drop, cette nouvelle chaîne créée ne sert a rien tant quelle nest pas appelée depuis une autre règle avec laction -j RFC Pour linstant la chaîne est créée mais pas utilisée. Comme pour log_n_drop, cette nouvelle chaîne créée ne sert a rien tant quelle nest pas appelée depuis une autre règle avec laction -j RFC Pour linstant la chaîne est créée mais pas utilisée. ATTENTION !!!

12 Créer une règle qui redirige dans la chaine RFC si le paquet vient sur linterface externe. Créer une règle qui redirige dans la chaine RFC si le paquet vient sur linterface externe. Réalisation du script (6) iptables -A INPUT -i eth0 -j RFC Ainsi tout paquet venant de lextérieur (interface eth0) avec une adresse anormale pour Internet (RFC1918) se verra rejeté. Ainsi tout paquet venant de lextérieur (interface eth0) avec une adresse anormale pour Internet (RFC1918) se verra rejeté.

13 Faire une règle qui nat toutes les requêtes venant de linterne Faire une règle qui nat toutes les requêtes venant de linterne Réalisation du script (7) iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE -t nat On spécifie que lon veut écrire dans la table nat, et non plus filter -A POSTROUTING On veut nater sur linterface externe, donc après le routage. -j MASQUERADE On met en place de la nat dynamique avec la cible MASQUERADE qui transforme automatiquement ladresse source du paquet en ladresse de linterface externe eth0.

14 Script complet #!/bin/bash iptables -X iptables -F iptables -N log_n_drop iptables -A log_n_drop -j LOG --log-prefix '[paquet rejeté] : ' iptables -A log_n_drop -j DROP iptables -N RFC iptables -A RFC -s /8 -j log_n_drop iptables -A RFC -s /16 -j log_n_drop iptables -A RFC -s /12 -j log_n_drop iptables -t filter -P INPUT DROP iptables -t filter -P OUTPUT ACCEPT iptables -t filter -P FORWARD DROP iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -i eth0 -j RFC iptables -A INPUT -m state --state NEW -p tcp --dport 80 --syn -j ACCEPT iptables -A INPUT -m state --state NEW -p udp --dport 53 -j ACCEPT iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

15 Lordre des règles est-il important ? Lordre des règles ? iptables -A INPUT -p tcp -j ACCEPT iptables -A INPUT -p tcp --dport 80 -j DROP Oui, extrêmement. Pour deux raisons: 1- Etant donné que les règles sont parcourues une à une dans lordre décriture, il est important de vérifier quune règle ne surpasse pas une autre, par exemple 1- Etant donné que les règles sont parcourues une à une dans lordre décriture, il est important de vérifier quune règle ne surpasse pas une autre, par exemple Ici la seconde règle ne sera jamais utilisée car la première correspondra à tout le traffic TCP et donc notamment au port 80 TCP. Ici la seconde règle ne sera jamais utilisée car la première correspondra à tout le traffic TCP et donc notamment au port 80 TCP. 2- Vu que les règles sont passées en revue une à une dans lordre et quon sarrête dès quune règle correspond, il est important de mettre en premier les règles les plus utilisées, comme ESTABLISHED et RELATED qui concerneront la majorité des paquets. 2- Vu que les règles sont passées en revue une à une dans lordre et quon sarrête dès quune règle correspond, il est important de mettre en premier les règles les plus utilisées, comme ESTABLISHED et RELATED qui concerneront la majorité des paquets.


Télécharger ppt "TP sur le filtrage avec iptables. Mettre en oeuvre un ensemble de règles de filtrage sous iptables Comprendre la syntaxe iptables Organiser lordre des."

Présentations similaires


Annonces Google