Afficher les adresses IP (triées numériquement et numérotées) bloquées par iptables

L'enchainement des commandes suivantes permet d'afficher à l'écran toutes les adresses ip bloquées par iptables, triées numériquement et  numérotées :

$ iptables -L -n | grep 'DROP' | awk '{print $4}' | sort -n | uniq | nl
     1  37.59.20.164
     2  61.38.252.112
     3  85.118.62.43
     4  91.236.74.176
     5  91.236.74.249
     6  93.182.139.42
     7  93.182.147.141
     8  93.182.174.159
     9  93.182.175.25
    10  117.21.225.66
    11  173.242.126.130
    12  199.15.234.138
    13  199.15.234.143
    14  199.15.234.145
    15  199.15.234.146
    16  199.15.234.147
    17  199.15.234.213
    18  208.177.72.206
$

Explications :

La commande suivante permet d'afficher les règles iptables (option -L) avec les ip au format numérique (option -n) :

$ iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
DROP       all  --  173.242.126.130      0.0.0.0/0
DROP       all  --  199.15.234.146       0.0.0.0/0
DROP       all  --  93.182.139.42        0.0.0.0/0
DROP       all  --  93.182.175.25        0.0.0.0/0
DROP       all  --  93.182.174.159       0.0.0.0/0
DROP       all  --  93.182.147.141       0.0.0.0/0
DROP       all  --  208.177.72.206       0.0.0.0/0
DROP       all  --  199.15.234.138       0.0.0.0/0
DROP       all  --  91.236.74.176        0.0.0.0/0
DROP       all  --  85.118.62.43         0.0.0.0/0
DROP       all  --  91.236.74.249        0.0.0.0/0
DROP       all  --  37.59.20.164         0.0.0.0/0
DROP       all  --  117.21.225.66        0.0.0.0/0
DROP       all  --  199.15.234.143       0.0.0.0/0
DROP       all  --  199.15.234.145       0.0.0.0/0
DROP       all  --  199.15.234.147       0.0.0.0/0
DROP       all  --  61.38.252.112        0.0.0.0/0
DROP       all  --  199.15.234.213       0.0.0.0/0
 
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
 
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Suivi de la commande suivante, seules les chaines DROP sont affichées :

$ iptables -L -n | grep 'DROP'
DROP       all  --  173.242.126.130      0.0.0.0/0
DROP       all  --  199.15.234.146       0.0.0.0/0
DROP       all  --  93.182.139.42        0.0.0.0/0
DROP       all  --  93.182.175.25        0.0.0.0/0
DROP       all  --  93.182.174.159       0.0.0.0/0
DROP       all  --  93.182.147.141       0.0.0.0/0
DROP       all  --  208.177.72.206       0.0.0.0/0
DROP       all  --  199.15.234.138       0.0.0.0/0
DROP       all  --  91.236.74.176        0.0.0.0/0
DROP       all  --  85.118.62.43         0.0.0.0/0
DROP       all  --  91.236.74.249        0.0.0.0/0
DROP       all  --  37.59.20.164         0.0.0.0/0
DROP       all  --  117.21.225.66        0.0.0.0/0
DROP       all  --  199.15.234.143       0.0.0.0/0
DROP       all  --  199.15.234.145       0.0.0.0/0
DROP       all  --  199.15.234.147       0.0.0.0/0
DROP       all  --  61.38.252.112        0.0.0.0/0
DROP       all  --  199.15.234.213       0.0.0.0/0

Suivi de la commande suivante, seule la 4ème colonne (celle contenant les ip) est affichées :

$ iptables -L -n | grep 'DROP' | awk '{print $4}'
173.242.126.130
199.15.234.146
93.182.139.42
93.182.175.25
93.182.174.159
93.182.147.141
208.177.72.206
199.15.234.138
91.236.74.176
85.118.62.43
91.236.74.249
37.59.20.164
117.21.225.66
199.15.234.143
199.15.234.145
199.15.234.147
61.38.252.112
199.15.234.213

Suivi de la commande suivante (sort), les ip sont triées numériquement (option -n) et les doublons sont exclus avec la commande uniq:

$ iptables -L -n | grep 'DROP' | awk '{print $4}' | sort -n | uniq
37.59.20.164
61.38.252.112
85.118.62.43
91.236.74.176
91.236.74.249
93.182.139.42
93.182.147.141
93.182.174.159
93.182.175.25
117.21.225.66
173.242.126.130
199.15.234.138
199.15.234.143
199.15.234.145
199.15.234.146
199.15.234.147
199.15.234.213
208.177.72.206

Enfin, la commande suivante numérote toutes les lignes affichées :

$ iptables -L -n | grep 'DROP' | awk '{print $4}' | sort -n | uniq | nl
     1  37.59.20.164
     2  61.38.252.112
     3  85.118.62.43
     4  91.236.74.176
     5  91.236.74.249
     6  93.182.139.42
     7  93.182.147.141
     8  93.182.174.159
     9  93.182.175.25
    10  117.21.225.66
    11  173.242.126.130
    12  199.15.234.138
    13  199.15.234.143
    14  199.15.234.145
    15  199.15.234.146
    16  199.15.234.147
    17  199.15.234.213
    18  208.177.72.206

Au total, ce sont donc 5 commandes qui sont utilisées pour afficher le résultat souhaité.

Si la liste est trop longue pour être affichée en une seule fois, une petite commande supplémentaire fera très bien l'affaire :

$ iptables -L -n | grep 'DROP' | awk '{print $4}' | sort -n | uniq | nl | less

Commentaires

Un petit uniq après le sort évitera les doublons

Effectivement, c'est pas plus mal.

Merci pour l'info.

Salut,
je souhaiterais, savoir si y a pas un alternative a se palucher à la main les IPs,
y a t'il un service qui permet de connaitre les ips active et les block automatiquement ??
merci !
fanf

Bonjour,

Il y a effectivement un programme qui scanne les logs (apache, postfix etc etc) à la recherche de tentatives d'intrusions et qui bloque automatiquement les IPs via iptables.

Ce programme, c'est fail2ban.

Si j'ai bien compris ce que vous vouliez.

Ajouter un commentaire

Filtered HTML

  • Les adresses de pages web et de messagerie électronique sont transformées en liens automatiquement.
  • Tags HTML autorisés : <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Les lignes et les paragraphes vont à la ligne automatiquement.

Plain text

  • Aucune balise HTML autorisée.
  • Les adresses de pages web et de messagerie électronique sont transformées en liens automatiquement.
  • Les lignes et les paragraphes vont à la ligne automatiquement.
CAPTCHA
Cette question permet de s'assurer que vous êtes un utilisateur humain et non un logiciel automatisé de pollupostage.
CAPTCHA visuel
Entrez les caractères (sans espace) affichés dans l'image.