Pages

samedi 14 janvier 2012

TP:Iptables






Iptables :

Dans ce TP , nous allons utiliser IpTables, une solution complète de firewall sous linux (à partir du noyau 2.4).
1 - Lancement d’Iptables
Dans le cas ou les options iptables du kernel ont étés compilées en modules, il est nécessaire de charger ces modules avant de pouvoir utiliser iptables :
# modprobe ip_tables

      Opérations sur une seule chaîne et sur la table filtrer:

1.1.1.        Première règle :

·         Interdire tout paquet entrant :
#iptables -A INPUT -j DROP
·         Effacer la règle :
iptables -D INPUT 1

1.1.2.        Paramètre protocole :

·         Interdire le protocole ICMP :
iptables -A INPUT -p icmp -j DROP
·         Effacer la règle :
iptables -D INPUT 1

1.1.3.        Paramètre source :

·         Interdire le protocole ICMP provenant de localhost :
iptables -A INPUT -p icmp -s localhost -j DROP
·         Effacer la règle :
iptables -D INPUT 1

1.1.4.        chaîne OUTPUT paramètre destination :
·         Interdire tout paquet à destination de localhost :
iptables -A OUTPUT -d localhost -j DROP
·         Effacer la règle :
iptables -D OUTPUT 1

1.1.5.        paramètre inversion :

·         Interdire un paquet s' il ne provient pas de localhost :
iptables -A INPUT -s ! localhost -j DROP
·         Effacer la règle :
iptables -D INPUT 1

1.1.6.        paramètre interface d'entrée :

·         Interdire un paquet s' il provient de lo :
iptables -A INPUT -i lo -j DROP
·         Effacer la règle :
iptables -D INPUT 1

1.1.7.        paramètre interface de sortie :

·         Interdire tout paquet sortant par eth0 :
iptables -A OUTPUT -o eth0 -j DROP
·         Effacer la règle :
iptables -D OUTPUT 1


1.1.8.        paramètre destination port :

·         Interdire tout paquet à destination du port ftp :
iptables -A INPUT -p tcp --dport 21 -j DROP
·         Effacer la règle :
iptables -D INPUT 1

1.1.9.        paramètre source port :

·         Interdire tout paquet sortant par eth0 dont le numéro de port destination est inférieur à 1024 :
iptables -A OUTPUT -o eth0 -p tcp --sport :1023 -j DROP
iptables -A OUTPUT -o eth0 -p udp --sport :1023 -j DROP
·         Effacer la règle :
iptables -D OUTPUT 1

1.1.10.    paramètre flag TCP :

·         Interdire toute tentative d' initialisation de connexion TCP provenant de eth0 :
iptables -A INPUT -i eth0 -p tcp --syn --sport :1023 -j DROP
·         Effacer la règle :
iptables -D INPUT 1

1.1.11.    paramètre flag icmp :

·         Interdire tout paquet entrant correspondant à un ping :
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
·         Effacer la règle :
iptables -D INPUT 1

·         Interdire toute réponse à un ping :
iptables -A OUTPUT -p icmp --icmp-type echo-reply -j DROP
·         Effacer la règle :
iptables -D OUTPUT 1

1.1.12.    paramètre extension:
                     2.1.12.1. extension mac :

·         Interdire tout paquet entrant par eth0 dont l' adresse mac n' est pas celle du voisin :
iptables -A INPUT -i eth0 -m mac --mac-source ! 00:50:FC:23:2D:D7 -j DROP
·         Effacer la règle :
iptables -D INPUT 1

                     2.1.12.2. extension limit :

·         Positionner la police par défaut à DROP pour la chaîne INPUT :
iptables -P INPUT DROP
·         Ecrire une règle qui laisse entrer 5 tentatives de connexion TCP puis qui n' en laisse passer plus que 2 par minute :

iptables -A INPUT -p tcp --syn -m limit --limit 2/minute --limit-burst 5 -j ACCEPT
·         Faire de même avec les pings :
iptables -A INPUT -p icmp --icmp-type ping -m limit --limit 2/minute --limit-burst 5 -j ACCEPT
·         combien de temps faudra t' il pour qu' on puisse à nouveau avoir 5 des ces paquets qui puissent passer à la suite ?
5 minutes

·         Effacer la règle :
iptables -D INPUT 1

1.1.13.    le suivi de connexion(ip_conntrack) :

·         Positionnez les règles par défaut à DROP pour les chaînes INPUT, OUTPUT, FORWARD :
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
·         Autoriser tout paquet relatif à une connexion déjà établi ou en rapport avec une connexion déjà établi en entrée

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

·         Interdire tout paquet relatif à une connexion de type INVALID :

iptables -A INPUT -m state --state INVALID -j DROP
·         Autoriser tout paquet créant une nouvelle connexion en sortie à destination du port 80 :
iptables -A OUTPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
·         Que faut il modifier ici pour que l' on puisse naviguer sur le net ?
iptables -A OUTPUT -p tcp --dport 53 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT



         Opérations sur plusieurs chaînes et sur la table filter:

ü  création d'un nouvelle chaîne :

·         créer une nouvelle chaîne qui log le paquet en ajoutant le préfixe [INPUT DROP] et qui le drop renvoyer sur cette nouvelle chaîne tout paquet engendrant une nouvelle connexion en entrée :

iptables -N LOG_DROP
iptables -A LOG_DROP -j LOG --log-prefix «[INPUT DROP]»
iptables -A LOG_DROP -j DROP

0 commentaires:

Enregistrer un commentaire

Partager

Twitter Delicious Facebook Digg Stumbleupon Favorites More