Garder une crontab effective après un reboot hasardeux...+ IPTables -I

Garder une crontab effective après un reboot hasardeux...+ IPTables -I - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 28-12-2003 à 18:41:25    

Bonjour,
 
J'utilise 2 crontab pour alternativement mettre en DROP et ACCEPT des paquets provenant d'une IP en local avec iptables à 22 h et à 7 h.
 
Pour faire plus simple :
- A 22 h, j'installe le "drop", ça coupe Internet.
- A 7 h, je l'enlève, ça remet Internet pour cette IP.
 
Le problème est que si la machine plante et redémarre (ou si un petit malin va la redémarrer), la connexion Internet repart car la crontab pour couper le net ne sera lancée que le prochain soir et iptables a "oublié" la ligne.
 
J'ai essayé de mettre une crontab de 22 h à 7 h toutes les minutes MAIS le problème que je rencontre est qu'à chaque fois que je fais mon iptables -I, ça rajoute une ligne... Et il me faudrait autant de -D pour les enlever toute et remettre internet, ça ne va donc pas.
 
Bref, ce qui m'arrangerai c'est de ne pas "répéter" plusieurs lignes avec le iptables -I ou de pouvoir virer toutes les occurences identiques avec un iptables -D.
 
Merci ;)
 
Si je n'ai pas été assez clair, demandez moi des précisions.
 
Edit : Ortho.


Message édité par Master_Jul le 28-12-2003 à 18:46:21
Reply

Marsh Posté le 28-12-2003 à 18:41:25   

Reply

Marsh Posté le 28-12-2003 à 18:55:37    

sinon une autre manière :
 
une crontab le soir met un fichier "prout" dans /var/tmp par exemple.
une crontab le matin efface ce fichier
 
une crontab vérifie toutes les heures la présence du fichier, si il existe tu lance les règles avec le drop, sinon tu met celles sans le drop.
 
Comme ca si la machine redémarre, au pire une heure après les règles sont adéquates
 
 
et je dit une heure comme exemple :)

Reply

Marsh Posté le 28-12-2003 à 18:57:59    

sinon avec debian tu peut faire des ensembles de règles facilement, pour appliquer ce que je disais au-dessus ,exemple :
 
tu fait tes règles qui dropent l'ip locale, tu les enregistre sous le nom "matin"
 
/etc/init.d/iptables save matin
 
tu définit maintennant les règles pour le soir, et les enregistre sous "soir"
 
/etc/init.d/iptables save soir
 
Et voilà ! tu veut les règles du soir ? facile :
 
/etc/init.d/iptables load soir
 
le matin ?
 
/etc/init.d/iptables load matin


Message édité par void_ppc le 28-12-2003 à 19:02:30
Reply

Marsh Posté le 28-12-2003 à 19:08:19    

ou bien tu modifie ton script iptables avec le crontab qui vas le loader a chaque mofification . Comme ca si y a reboot , ton script seras relancé tel que l'auras modifier le crontab ... t'as compris ce que je voulais dire ?

Reply

Marsh Posté le 28-12-2003 à 19:11:44    

Je réfléchis, ça n'a pas l'air trop sorcier à faire, c'est une bonne idée. Mais j'étais en train de me demander si ma distrib (une smoothwall), n'écrasait pas le contenu de iptables à chaque démarrage, ça m'étonnerai mais bon.
 
Je comprend juste pas pourquoi iptables ne garde pas les règles qu'il y avait avec le reboot. Je précise que la pauvre machine est redémarré à la chie dedans (débranche, rebranche :fou:)

Reply

Marsh Posté le 28-12-2003 à 19:12:48    

ipnoz a écrit :

ou bien tu modifie ton script iptables avec le crontab qui vas le loader a chaque mofification . Comme ca si y a reboot , ton script seras relancé tel que l'auras modifier le crontab ... t'as compris ce que je voulais dire ?


 
euh non, j'ai pas compris :pt1cable:, ni comment le mettre en place

Reply

Marsh Posté le 28-12-2003 à 19:15:39    

t'as un script qui se trouve dans /etc/init.d/mon_script , c'est celui que lance au demarrage ta distro. , quand viends l'heure de droper une ip ou la rendre effective , tu demande a cron de rajouter la regle adequat et de relancer ce script . Si tu reboot , le script seras relancé avec la regle demandée

Reply

Marsh Posté le 28-12-2003 à 21:06:02    

je comprend pas trop ce qu'on doit mettre dans le script
 
edit : hum je met la regle dans le script ok


Message édité par Master_Jul le 28-12-2003 à 21:09:09
Reply

Marsh Posté le 28-12-2003 à 21:25:40    

je n'ai pas de /etc/init.d/ dans ma distrib, je peux le mettre autre part ?

Reply

Marsh Posté le 28-12-2003 à 21:50:47    

oui

Reply

Marsh Posté le 28-12-2003 à 21:50:47   

Reply

Marsh Posté le 28-12-2003 à 22:24:19    

où en fait, c'était ma question :d
 
edit : j'ai un /etc/rc.d/ qui a l'air ok, je test


Message édité par Master_Jul le 28-12-2003 à 22:27:05
Reply

Sujets relatifs:

Leave a Replay

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