Petit souci avec iptables.. - réseaux et sécurité - Linux et OS Alternatifs
Marsh Posté le 09-02-2004 à 19:04:43
le plus simple serait pas de faire 2 jeux de règles ? un jeu "jour", un jeu "nuit", dans la crontab tu met /etc/init.d/iptables load nuit à 23h par ex, et à 6h /etc/init.d/iptables load jour
Bon le seul problème c'est en cas de reboot
Marsh Posté le 09-02-2004 à 19:10:03
void_ppc a écrit : le plus simple serait pas de faire 2 jeux de règles ? un jeu "jour", un jeu "nuit", dans la crontab tu met /etc/init.d/iptables load nuit à 23h par ex, et à 6h /etc/init.d/iptables load jour |
Au départ j'étais parti sur 2 scripts, exécutés toutes les 1/2h, l'un pendant la nuit, l'autre la journée, en cas de reboot par exemple, ce serait bloqué dans la demi heure.
Ca se passe comment les jeux de regles dont tu parles ?
Marsh Posté le 09-02-2004 à 19:18:53
ben en fait tu enregistres la configuration actuelle d' iptables
donc tu lances les règles qui correspondent au jour par exemple tu les sauvegardes:
/etc/init.d/iptables save jour |
tu remplaces tes règles pour celle de la nuit
/etc/init.d/iptables save nuit |
et tu sauvegrades egalement.
ensuite pour appeler les règles
/etc/init.d/iptables load jour
pareil pour nuit.
Marsh Posté le 09-02-2004 à 19:27:17
Je vais tester cette config tt de suite !
Merci!
Marsh Posté le 09-02-2004 à 20:13:59
Bon, ca marche pas (encore...)
En fait, la distrib c'est une smoothwall 2.0, et /etc/init.d/iptables il connait pas
qqun peut poster le contenu du fichier /etc/init.d/iptables voir à quoi correspond le save, pour l'adapter ?
Marsh Posté le 09-02-2004 à 21:15:51
ha oui, ce script c' est sous debian,
il y a un fichier de conf normalement pour definir 2/3 variables
j' ai tout mis ds le meme fichier (j' ai indiqué)
http://extr4.free.fr/tmp/iptables
Marsh Posté le 09-02-2004 à 22:26:37
Nickel! Ca marche!
Ya plus qu'à mettre le tout dans un crontab et c'est gagné!
Marsh Posté le 09-02-2004 à 19:01:54
tous
J'ai une machine linux qui me sert de gate, connectée d'un coté (eth0) au réseau local et de l'autre (eth1) au net, via une freebox .
Je suis en train de faire un petit script avec iptables, qui sera exécuté par la crontab le soir à 23h, afin de bloquer l'acces au net à toutes les machines du réseau, sauf certaines.
Dans l'idée, on ajoute au début des chaînes INPUT et FORWARD des ACCEPT pour chaque machine autorisée, puis on ajoute apres mes accept un reject.
Afin de ne pas insérer n'importe quoi dans les chaines, je fais un test voir si la regle n'y est pas déjà :
#!/bin/sh
HOSTSOK=hosts.ok
#on permet tous les hotes presents dans le fichier hosts.ok
NBRE=0
cat $HOSTSOK|
while read ligne
do
if [ `iptables -L INPUT | grep $ligne|grep "ACCEPT"|wc -l` = 0 ]
then
iptables -I INPUT 1 -s $ligne -j ACCEPT
fi
if [ `iptables -L FORWARD | grep $ligne |grep "ACCEPT"|wc -l` = 0 ]
then
iptables -I forward 1 -s $ligne -j ACCEPT
fi
NBRE=$NBRE+1
echo $ligne autorise
done
#si le blocage n'est pas mis en place, on le remet
if [ `iptables -L INPUT|grep REJECT|grep "anywhere"|wc -l` = 0 ]
then
iptables -I INPUT $NBRE -j REJECT -i eth0
fi
if [ `iptables -L FORWARD |grep REJECT|grep "anywhere"|wc -l` = 0 ]
then
iptables -I forward $NBRE -j REJECT -i eth0
fi
Le souci vient de la deuxième partie En effet, je ne sais pas trop quoi mettre comme test dans le if, car il y a toujours une regle, en fin de liste qui matche, et donc... la mienne n'est pas insérée après les ACCEPT du départ...
Qqun voit une solution au pb ?
Message édité par freds45 le 09-02-2004 à 19:10:49
---------------
Filmstory : gardez trace des films que vous avez vu ! :D