Comment bannir une plage d'IP avec iptables

Bonsoir,

Je possède un serveur VPS tournant sous Debian et je rencontre quelques problèmes avec iptables.

J’arrive facilement à banir une ip, mais pas une plage d’IP.

En effet, j’aimerais bannir les ip suivantes:

la première plage de 220.181.108.1 à 220.181.108.255
la seconde plage de 123.125.71.1 à 123.125.71.255

J’ai essayé les commandes:

iptables -A INPUT -m iprange --src-range 123.125.71.0-123.125.71.255 -j DROP iptables -A INPUT -m iprange --src-range 220.181.108.0-220.181.108.255 -j DROP

iptables -A INPUT -s 123.125.71.0/24 -j DROP iptables -A INPUT -s 220.181.108.0/24 -j DROP

Mais aucune de celle-ci ne semblent fonctionner, logwatch m’envoie tous les jours des rapports comme quoi ces ip parcours mon serveur sans cesse…

Iptables -L me donne ceci

DROP all -- 0.0.0.0/0 0.0.0.0/0 source IP range 123.125.71.0-123.125.71.255 DROP all -- 0.0.0.0/0 0.0.0.0/0 source IP range 220.181.108.0-220.181.108.255

Est-ce que vous pourriez m’aider, m’indiquer où je me suis tromper?

Merci

Les commandes me semblent correctes. Comme toujours, leur efficacité dépend de leur placement dans la chaîne. Y a-t-il d’autres règles avant ou as-tu fourni la sortie complète ? Si une règle avec une seule adresse source est efficace toutes autres choses égales par ailleurs (placement dans la chaîne, options) et pas une règle avec un préfixe ou iprange, je suis très surpris.

Merci

Voici la sortie complètes de iptables -l

[code]Chain INPUT (policy DROP)
target prot opt source destination
DROP all – 37.57.200.174 0.0.0.0/0
DROP all – 159.224.160.172 0.0.0.0/0
DROP all – 31.184.238.101 0.0.0.0/0
DROP all – 188.92.76.158 0.0.0.0/0
DROP all – 82.140.213.56 0.0.0.0/0
DROP all – 37.57.231.133 0.0.0.0/0
DROP all – 192.187.103.42 0.0.0.0/0
DROP all – 188.165.15.162 0.0.0.0/0
DROP all – 91.124.168.198 0.0.0.0/0
DROP all – 74.91.23.53 0.0.0.0/0
DROP all – 159.224.160.164 0.0.0.0/0
DROP all – 37.57.231.161 0.0.0.0/0
DROP all – 63.141.239.189 0.0.0.0/0
DROP all – 104.255.66.211 0.0.0.0/0
DROP all – 208.115.124.146 0.0.0.0/0
DROP all – 74.91.23.53 0.0.0.0/0
DROP all – 63.141.251.165 0.0.0.0/0
DROP all – 142.54.184.181 0.0.0.0/0
DROP all – 192.187.103.51 0.0.0.0/0
DROP all – 72.46.134.172 0.0.0.0/0
DROP all – 141.212.122.146 0.0.0.0/0
DROP all – 61.228.92.175 0.0.0.0/0
DROP all – 94.23.46.192 0.0.0.0/0
DROP all – 84.28.233.158 0.0.0.0/0
DROP all – 155.94.138.203 0.0.0.0/0
DROP all – 136.243.16.7 0.0.0.0/0
ACCEPT all – 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT all – 0.0.0.0/0 0.0.0.0/0
ACCEPT icmp – 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp – 0.0.0.0/0 0.0.0.0/0 tcp dpt:***
ACCEPT tcp – 0.0.0.0/0 0.0.0.0/0 tcp dpt:***
ACCEPT udp – 0.0.0.0/0 0.0.0.0/0 udp dpt:***
ACCEPT tcp – 0.0.0.0/0 0.0.0.0/0 tcp dpt:***
ACCEPT tcp – 0.0.0.0/0 0.0.0.0/0 tcp dpt:***
ACCEPT tcp – 0.0.0.0/0 0.0.0.0/0 tcp dpt: ***
ACCEPT tcp – 0.0.0.0/0 0.0.0.0/0 tcp dpt:***
ACCEPT tcp – 0.0.0.0/0 0.0.0.0/0 tcp dpt:***
ACCEPT tcp – 0.0.0.0/0 0.0.0.0/0 tcp dpt:***
ACCEPT tcp – 0.0.0.0/0 0.0.0.0/0 tcp dpt:***
ACCEPT tcp – 0.0.0.0/0 0.0.0.0/0 tcp dpt:***
DROP all – 0.0.0.0/0 0.0.0.0/0 source IP range 123.125.71.0-123.125.71.255
DROP all – 0.0.0.0/0 0.0.0.0/0 source IP range 220.181.108.0-220.181.108.255
DROP all – 123.125.71.0/24 0.0.0.0/0
DROP all – 220.181.108.0/24 0.0.0.0/0

Chain FORWARD (policy DROP)
target prot opt source destination

Chain OUTPUT (policy DROP)
target prot opt source destination
ACCEPT all – 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT all – 0.0.0.0/0 0.0.0.0/0
ACCEPT icmp – 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp – 0.0.0.0/0 0.0.0.0/0 tcp dpt:***
ACCEPT tcp – 0.0.0.0/0 0.0.0.0/0 tcp dpt:***
ACCEPT udp – 0.0.0.0/0 0.0.0.0/0 udp dpt:***
ACCEPT udp – 0.0.0.0/0 0.0.0.0/0 udp dpt:***
ACCEPT tcp – 0.0.0.0/0 0.0.0.0/0 tcp dpt:***
ACCEPT tcp – 0.0.0.0/0 0.0.0.0/0 tcp dpt:***
ACCEPT tcp – 0.0.0.0/0 0.0.0.0/0 tcp dpt:***
ACCEPT tcp – 0.0.0.0/0 0.0.0.0/0 tcp dpt:***
ACCEPT tcp – 0.0.0.0/0 0.0.0.0/0 tcp dpt:***
ACCEPT tcp – 0.0.0.0/0 0.0.0.0/0 tcp dpt:***
ACCEPT tcp – 0.0.0.0/0 0.0.0.0/0 tcp dpt:***0 state NEW,ESTABLISHED[/code]

J’ajoute aussi, toutes les commandes pour banir des ips spécifiques, dans l’ordre qu’elles sont exécutées:

[quote]iptables -A INPUT -m iprange --src-range 123.125.71.0-123.125.71.255 -j DROP
iptables -A INPUT -m iprange --src-range 220.181.108.0-220.181.108.255 -j DROP
iptables -A INPUT -s 123.125.71.0/24 -j DROP
iptables -A INPUT -s 220.181.108.0/24 -j DROP
iptables -I INPUT -s 155.94.138.203 -j DROP
iptables -I INPUT -s 84.28.233.158 -j DROP
iptables -I INPUT -s 94.23.46.192 -j DROP
iptables -I INPUT -s 61.228.92.175 -j DROP
iptables -I INPUT -s 141.212.122.146 -j DROP
iptables -I INPUT -s 72.46.134.172 -j DROP
iptables -I INPUT -s 192.187.103.51 -j DROP
iptables -I INPUT -s 142.54.184.181 -j DROP
iptables -I INPUT -s 63.141.251.165 -j DROP
iptables -I INPUT -s 74.91.23.53 -j DROP
iptables -I INPUT -s 208.115.124.146 -j DROP
iptables -I INPUT -s 104.255.66.211 -j DROP
iptables -I INPUT -s 63.141.239.189 -j DROP
iptables -I INPUT -s 37.57.231.161 -j DROP
iptables -I INPUT -s 159.224.160.164 -j DROP
iptables -I INPUT -s 74.91.23.53 -j DROP
iptables -I INPUT -s 91.124.168.198 -j DROP
iptables -I INPUT -s 188.165.15.162 -j DROP
iptables -I INPUT -s 192.187.103.42 -j DROP
iptables -I INPUT -s 37.57.231.133 -j DROP
iptables -I INPUT -s 82.140.213.56 -j DROP
iptables -I INPUT -s 188.92.76.158 -j DROP
iptables -I INPUT -s 31.184.238.101 -j DROP
iptables -I INPUT -s 159.224.160.172 -j DROP
iptables -I INPUT -s 37.57.200.174 -j DROP
[/quote]

Je devrais peut être mettre -I partout ou -A partout?

Les informations affichées par [mono]iptables -L[/mono] sont incomplètes en plus d’un format moyennement lisible, la prochaine fois utilise plutôt [mono]iptables-save[/mono].

En tout cas on peut voir immédiatement que les règles pour des adresses individuelles sont au début de la chaîne, avant les règles ACCEPT, alors que les règles pour les plages et préfixes sont en fin de chaîne, après les règles ACCEPT et donc inefficaces. La différence est due à l’usage de -I (insérer, par défaut en début de chaîne) dans un cas et -A (ajouter, en fin de chaîne) dans l’autre. Il ne faut pas mettre -A ou -I partout, il faut utiliser l’un et l’autre à bon escient pour obtenir le résultat souhaité.

C’était bien une histoire d’ordre, c’est étrange que l’ordre soit primordial mais ça a résolut mon soucis.

Un grand merci! Bonne soirée

Il n’y a rien d’étrange. Les règles sont exécutées dans l’ordre de la chaîne, rien de plus normal. Comment pensais-tu que ça se passait ?