Blog

Lister les règles iptables

Écrit le 02 07 2012 par Kévin MET _

Voici comment lister les règles présentes dans iptables :

# iptables -L -n -v
  • -L permet de lister les règles
  • -v permet davoir plus d'informations comme le nom des interfaces, les options des règles ou encore le compteur de bits.
  • -n permet permet de lister les règles sans faire de requêtes DNS. Toutes les adresse ip sont donc affichées directement.

Exemple d'un iptables vide :


Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Exemple d'un iptables avec quelques règles :


Chain INPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           state INVALID
  394 43586 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
   93 17292 ACCEPT     all  --  br0    *       0.0.0.0/0            0.0.0.0/0
    1   142 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     all  --  br0    br0     0.0.0.0/0            0.0.0.0/0
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           state INVALID
    0     0 TCPMSS     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp flags:0x06/0x02 TCPMSS clamp to PMTU
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
    0     0 wanin      all  --  vlan2  *       0.0.0.0/0            0.0.0.0/0
    0     0 wanout     all  --  *      vlan2   0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     all  --  br0    *       0.0.0.0/0            0.0.0.0/0
Chain OUTPUT (policy ACCEPT 425 packets, 113K bytes)
 pkts bytes target     prot opt in     out     source               destination
Chain wanin (1 references)
 pkts bytes target     prot opt in     out     source               destination
Chain wanout (1 references)
 pkts bytes target     prot opt in     out     source               destination

Vous pouvez également lister les règles avec les numéros de lignes en utilisant l'option --line-numbers :

# iptables -n -L -v --line-numbers

Exemple :


Chain INPUT (policy ACCEPT 1977K packets, 377M bytes)
num   pkts bytes target     prot opt in     out     source               destination
1    53985 3753K fail2ban-ssh  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           multiport dports 22
Chain FORWARD (policy ACCEPT 7489 packets, 468K bytes)
num   pkts bytes target     prot opt in     out     source               destination
1        0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED PHYSDEV match --physdev-out vif1.0
2        0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           PHYSDEV match --physdev-in vif1.0 udp spt:68 dpt:67
3        0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED PHYSDEV match --physdev-out vif1.0
4        0     0 ACCEPT     all  --  *      *       46.105.33.31         0.0.0.0/0           PHYSDEV match --physdev-in vif1.0
Chain OUTPUT (policy ACCEPT 1978K packets, 1055M bytes)
num   pkts bytes target     prot opt in     out     source               destination
Chain fail2ban-ssh (1 references)
num   pkts bytes target     prot opt in     out     source               destination
1    53934 3749K RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0

Vous pouvez utiliser ces numéros de lignes pour effacer ou insérer une règle à un endroit précis.

Il existe également un autre moyen d'afficher les règles qui selon moi est le meilleur car il est le plus lisible et le plus pratique :

# iptables-save

Exemple :


# Generated by iptables-save v1.4.8 on Wed Aug 15 17:43:22 2012
*filter
:INPUT ACCEPT [2052331:380327799]
:FORWARD ACCEPT [7536:470707]
:OUTPUT ACCEPT [2112692:1265017002]
:fail2ban-ssh - [0:0]
-A INPUT -p tcp -m multiport --dports 22 -j fail2ban-ssh
-A FORWARD -m state --state RELATED,ESTABLISHED -m physdev --physdev-out vif1.0 -j ACCEPT
-A FORWARD -p udp -m physdev --physdev-in vif1.0 -m udp --sport 68 --dport 67 -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -m physdev --physdev-out vif1.0 -j ACCEPT
-A FORWARD -s 46.105.33.31/32 -m physdev --physdev-in vif1.0 -j ACCEPT
-A fail2ban-ssh -j RETURN
COMMIT
# Completed on Wed Aug 15 17:43:22 2012

Ceci vous permet de savoir quelles sont les commandes à rentrer pour mettre en place les même règles ou pour supprimer une ou plusieurs règles. Vous pouvez utiliser cette commande pour générer rapidement un fichier de règles iptables et vous pouvez également appliquer la sortie de cette commande en paramètre de la commande iptables-apply qui est elle aussi très pratique.

♥ Partage sur tes réseaux sociaux ♥
Kévin MET
Kévin MET

Auteur de ce blog et gérant de la société MNT-TECH, je publie sur ce blog lorsque le temps me le permet et lorsqu'un sujet qui me parait intéressant n'a pas encore été abordé en français. Toutes les informations techniques présentes sur cette page peuvent être réutilisées moyennant le fait de citer la source.