LINUX 3 ème
année
2019-2020
Structure iptables
Iptables est un logiciel libre grâce auquel l’admin système peut configurer les chaînes et
les règles du pare-feu en espace noyau.
Un pare-feu rejette les paquets du réseau selon des règles stockées dans la mémoire du
PC.
Linux iptables travaille avec des « chaînes ». Ces chaînes sont des regroupements de
règles qui régissent le trafic réseau en fonction de trois axes: les paquets; protocoles et ports.
Il faut connaître trois axes de flux d’une connexion internet pour comprendre le fonctionnement
d’un pare-feu.
-Paquet: un récipient de logiciel qui représente un flux de données.
-Protocole: langage et ensemble de règles que les périphériques réseau utilisent.
-Port: une désignation numérique qui représente un protocole particulier.
Structure iptables
Structure iptables
Après avoir lancer la commande iptables –t filter - -list pour lister les règles de la table filter;
-La première ligne « chain INPUT (policy ACCEPT) concerne les paquets entrants INPUT. On voit
que tout passe dans toutes les directions policy ACCEPT.
-Ensuite « target prot opt source destination » ce sont les filtres qui permettent de ranger le
retour de la commande de listage dans un tableau bien lisible.
Pour lire facilement ce qui est mis en place:
*« target »: c’est l’action à prendre, quand des règles seront mis en place, on trouvera dans cette
colonne plusieurs lignes dont chacune aura l’une de ces valeurs:
ACCEPT(autoriser)
DROP(interdire)
Structure iptables
*«prot »: pour protocole, TCP ou UDP…
*«source »: l’ IP source de l’ordinateur distant qui se connecte à vous (pour INPUT).
*«destination »: l’ IP de destination de l’ordinateur auquel on se connecte (pour OUTPUT).
Ensuite, « chain FORWARD (policy ACCEPT) » concerne les paquets qui passent d’une interface à
une autre d’un PC (FORWARD).
Et pour finir, « chain OUTPUT (policy ACCEPT) concerne les paquets sortants (OUTPUT).
Structure iptables
Utilisation de CONNTRACK: (Module utiliser en cas de connexion sur un port particulier).
NEW: Une nouvelle connexion et établie
ESTABLISHED: Une nouvelle connexion qui est déjà établie
RELATED: La nouvelle connexion est en relation avec une autre connexion déjà établie.
Structure iptables
Configuration FIREWALL-TOUT BLOQUE PAR DEFAUT:
Iptables –p INPUT DROP |
Iptables –p OUTPUT DROP |BLOCAGE TOTALE mais DROP devient ACCEPT pour
autoriser
Iptables –p FORWARD DROP |
Nous avons les locahost, ou aussi carte réseau externe ou interne comme des VRAI FIREWALL.
Ex: FORWERD entre carte réseau… externe interne.
Ouverture de shh (port22) depuis l‘extérieur:
iptables –A INPUT –i eth0 –p tcp - -dport 22 –j ACCEPT
iptables –A OUTPUT –o eth0 –p tcp - -sport 22 –j ACCEPT
iptables –A INPUT –i lo –j ACCEPT
iptables –A OUTPUT –o lo –j ACCEPT
Structure iptables
Pour le ping, c’est le protocole ICMP mais pas TCP.
----------------ping(icmp type8)---------------->
Source Destination
<--------------echo(icmp type0)-----------------
Pour donner autorisation au ping:
iptables –A INPUT –p icmp - -icmp-type 8 –m state - -state NEW,ESTABLISHED,RELATED –j
ACCEPT
iptables –A OUTPUT –p icmp - -icmp-type 0 –m state - -state ESTABLISHED,RELATED –j ACCEPT
Sauvegarde des règles firewall iptables:
iptables –save > [Link]
Restauration après reboot:
iptables –restore < [Link] (introduire dans [Link])
Structure iptables
Ex: Pour forwarder le port 9999 de la machine [Link] vers le port 80 de la machine
[Link].
@IP source:[Link] @IP destination: [Link]
Port: 9999 Port: 80
iptables –t nat –A PREROUTING –p tcp –dport 9999 –j DNAT - -to-destination
[Link]:80
iptables –t nat –A POSTROUTING –p tcp –d [Link] –dport 80 –j SNAT - -to-source
[Link]