Petit souci avec iptables..

Petit souci avec iptables.. - réseaux et sécurité - Linux et OS Alternatifs

Marsh Posté le 09-02-2004 à 19:01:54    

:hello: 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 ?
 
 :hello:


Message édité par freds45 le 09-02-2004 à 19:10:49

---------------
Filmstory : gardez trace des films que vous avez vu ! :D
Reply

Marsh Posté le 09-02-2004 à 19:01:54   

Reply

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

Reply

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
 
Bon le seul problème c'est  en cas de reboot


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 ?


---------------
Filmstory : gardez trace des films que vous avez vu ! :D
Reply

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.

Reply

Marsh Posté le 09-02-2004 à 19:20:36    

tu sais tout :)

Reply

Marsh Posté le 09-02-2004 à 19:27:17    

Je vais tester cette config tt de suite ;) !
Merci!


---------------
Filmstory : gardez trace des films que vous avez vu ! :D
Reply

Marsh Posté le 09-02-2004 à 20:13:59    

Bon, ca marche pas [:ddr555] (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 ?
 :hello:


---------------
Filmstory : gardez trace des films que vous avez vu ! :D
Reply

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
 
 :hello:

Reply

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é! ;)


---------------
Filmstory : gardez trace des films que vous avez vu ! :D
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed