script IpTables : explications
Bonjour
Je suis tombé sur ce script qui me semble assez intéressant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| #!/bin/bash
# Simple iptables IP/subnet block script
# -------------------------------------------------------------------------
# Copyright (c) 2004 nixCraft project <http://www.cyberciti.biz/fb/>
# This script is licensed under GNU GPL version 2.0 or above
# -------------------------------------------------------------------------
# This script is part of nixCraft shell script collection (NSSC)
# Visit http://bash.cyberciti.biz/ for more information.
# ----------------------------------------------------------------------
IPT=/sbin/iptables
SPAMLIST="spamlist"
SPAMDROPMSG="SPAM LIST DROP"
BADIPS=$(egrep -v -E "^#|^$" /root/iptables/blocked.ips)
# create a new iptables list
$IPT -N $SPAMLIST
for ipblock in $BADIPS
do
$IPT -A $SPAMLIST -s $ipblock -j LOG --log-prefix "$SPAMDROPMSG"
$IPT -A $SPAMLIST -s $ipblock -j DROP
done
$IPT -I INPUT -j $SPAMLIST
$IPT -I OUTPUT -j $SPAMLIST
$IPT -I FORWARD -j $SPAMLIST |
J'essaie de comprendre. Voici où j'en suis :
1) On crée une liste de règles dans une chaîne
2) On exécute la liste de règle en disant si il faut l'affecter sur l'INPUT, l'OUTPUT ou le FORWARD.
Mes problèmes ::
1) $IPT -I OUTPUT -j $SPAMLIST : ceci me bloque la sortie (OUTPUT) quand la source (-s) fait partie des Ip à bloquer . J'aurais bien remplacer le -s par un -p ! Non ?
C'est comme si je faisais :
Code:
iptables -I INPUT -s 192.168.2.15 -j DROP
Je comprendrais mieux un
Code:
# iptables -I OUTPUT -d 192.168.2.15 -j DROP
Mes tests vont dans mon sens.
2) Pour tester à fond ce script, j'ai du supprimer la liste. Avec le man, je suis arriver à trouver la méthode :
Code:
1 2 3
| # iptables -F spamlist
[root@localhost][/home/root]
# iptables -X spamlist |
En espérant avoir un éclaircissement sur le point 1)
Bonne nuit !