Retourner aux forums || Retourner au forum Linux.debian
Linux.debian : garder ma config. iptable
Posté par Philou Kapouik () le 06 juin 2005Je suis entrain de monter un serveur sous sarge et j'ai configuré grâce à des howto un magnifique iptable. Mon soucis est que en cas de redémarrage de la machine il perd alors toute sa configuration ce que je trouve fort génant et la je ne vois pas ou je dois aller/chercher pour que la configuration reste (et google ne m'en dit pas plus). Si quelqu'un pouvait me renseigner j'en serai très heureux.
Merci.
Software is like sex: it's better when it's free
script ou iptables-save
Il y a au moins 2 façons de faires :
- La première, c'est d'utiliser iptables-save => man iptables-save.
Je connais pas, mais le magnifique tuto de christian caleca => http://christian.caleca.free.fr/netfilter/iptables.htm(...) utilise cette méthode.
- La deuxième, c'est de faire un script iptables.sh par exemple, de le mettre dans /etc/init.d/, de le rendre executable et de créer les liens dans /etc/rcX.d/.
Je préfère la deuxième, y a rien de particulier a savoir, c'est un bête script shell ... juste commence ton script avec #!/bin/bash et enchaine tes commandes iptables.
-
[^]Re: script ou iptables-save
Posté par Philou Kapouik () le 06/06/2005 à 18:58. (lien). Évalué à 2.Pourrais tu me dire quel lien tu crees car je ne sais pas trop quoi mettre la car je ne vois le lancement de l interface reseau qu au runlevel 0 ce qui me parait bisarre.
--
Software is like sex: it's better when it's free-
[^]Re: script ou iptables-save
Posté par Cereal Killer (Jabber id, ) le 06/06/2005 à 19:33. (lien). Évalué à 1.man inittab pour commencer, et va jeter un oeil sur /etc/inittab aussi ... le runlevel 0 sert à arreter ta machine, donc je pense pas que tes interfaces resaux se lance ici :)
Le runlevel par défaut sous debian est 2. C'est configurable via /etc/Inittab.
Ton interface réseau est lancé par un lien dans /etc/rc2.d/ qui pointe sur /etc/init.d/networking.
Le liens a créer dans ton cas est celui de /etc/init.d/tonscript_iptables vers /etc/rc2.d/
donc
# ln -s /etc/init.d/tonscript_iptables /etc/rc2.d/S20tonscript_iptables
devrait faire l'affaire.
Ma façon de faire à le mérite de marcher "partout" ... celle de Gerald est plus debian-style et plus propre ... à toi de choisir ce qui te plait le plus.-
[^]Re: script ou iptables-save
Posté par Philou Kapouik () le 06/06/2005 à 19:47. (lien). Évalué à 2.merci de ta reponse mais c est bien ce que je pensai pour mes rcX.d ils sont bien incomprensible
stormbringer:/etc/rc0.d# ls
K11cron K20makedev K89atd K91apache-ssl S35networking
K20dhcp K20ssh K89hotplug-net S20sendsigs S36ifupdown
K20exim4 K25hwclock.sh K89klogd S30urandom S40umountfs
K20inetd K79nfs-common K90sysklogd S31umountnfs.sh S90halt
K20lpd K86ppp K91apache S32portmap
stormbringer:/etc/rc0.d# cd /etc/rc2.d/
stormbringer:/etc/rc2.d# ls
S10sysklogd S20dhcp S20makedev S89cron S99stop-bootlogd
S11klogd S20exim4 S20ssh S91apache
S14ppp S20inetd S21nfs-common S91apache-ssl
S18portmap S20lpd S89atd S99rmnologin
bon je vais voir du cote des inittab moi--
Software is like sex: it's better when it's free
-
-
re
A l'époque de la Debian woody, les règles de firewalling était chargées/déchargées via le script de démarrage /etc/init.d/iptables
Avec la Sarge, la politique a changé, maintenant il faut activer le firewall lors du montage des interfaces réseaux.
Exemple:
iface eth0 inet static
pre-up iptables-restore < /etc/network/iptables-rules
address 192.168.1.1
netmask 255.255.255.0
gateway 192.168.1.10
La commande "iptables-restore < /etc/network/iptables-rules" sera executée à chaque "ifup eth0"
Si tu préfères comme moi la vieille méthode du /etc/init.d, voici un fichier iptables qui fera l'affaire:
#!/bin/sh
#
ruleset_dir=/var/lib/iptables
case "$1" in
start)
echo -n "Loading iptables active ruleset: "
/sbin/iptables-restore < $ruleset_dir/active
echo "done."
;;
stop)
echo -n "Loading iptables inactive ruleset: "
/sbin/iptables-restore < $ruleset_dir/inactive
echo "done."
;;
force-reload|restart)
$0 stop
sleep 1
$0 start
;;
save)
echo -n "Saving iptables ruleset: "
cp $ruleset_dir/active $ruleset_dir/active-$(date +%Y%m%d_%H%M)
/sbin/iptables-save > $ruleset_dir/active
echo "done."
;;
*)
echo "Usage: /etc/init.d/iptables {start|stop|restart|force-reload}"
exit 1
esac
exit 0
Ensuite, tu crées les liens symboliques pr que ton script soit executé au démarrage de la machine:
update-rc.d iptables defaults 30
Le dernier chiffre définit l'ordre de lancement du script. Les interfaces réseaux étant montées en 40, il est plus sure d'activer le firewall avant celle ci, d'ou le choix du 30.
Pour le script donné plus haut, tes règles doivent impérativement se trouver dans /var/lib/iptables/active et inactive (active loadé au start et inactive au stop).
-
[^]Re: re
Posté par Philou Kapouik () le 06/06/2005 à 18:06. (lien). Évalué à 2.merci de ta reponse mais quelque chose me gene : j ai voulu faire comme la premiere metode que tu decrit et ca n a pas marche. j ai alors fait un iptables-restore et ca n as toujours pas marche.
aussi dans ta deuxieme proposition, n etant pas un pro du bash pourrais tu m expliquer en gros ce qu il fait (ou il va chercher les regles d'iptables notamment) et a quel runlevel dois je faire pointer le lien car j ai beau examiner les repertoire /etc/rcX.d/ je ne vois pas ou ca doit aller.
merci de me repondre.
ps: j'aime comprendre ce que je fais alors desole si je devient embetant dans mes requettes mais en tout cas deja merci pour ton premier message qui est deja bien expliquer contrairement a certaine reponse que je vois des fois sur les forums--
Software is like sex: it's better when it's free-
[^]Re: re
Posté par Pro21 () le 06/06/2005 à 20:36. (lien). Évalué à 1.ba perso j m suis fais un ptit script iptables (rules-fw) que g mis ds /etc/init.d/ et change les droits avec un chmod +x pour qu il soit execute. et ensuite un ptit coup de update-rc.d rules-fw + les options que tu veux sur ton script pour le nivo de demarrage et c est partis :p Enfin sur ma woody j fais comme ca et g jamais de soucis au redemarrage.
-
[^]Re: re
Posté par Cereal Killer (Jabber id, ) le 06/06/2005 à 22:26. (lien). Évalué à 1.Sa deuxième méthode est un script bash acceptant 5 arguments : start ; stop ; restart ; force-relaod et save qui n'est pas dans le Usage.
Save justement te permet de récupérer ta config iptables présente et de la sauver dans sa variable $ruleset_dir (=/var/lib/iptables).
Donc en gros, tu copies son script dans /etc/init.d/sonscript, tu le rend executable et tu fais un beau "/etc/init.d/sonscript save".
En gros, d'après ce que j'ai compris, à chaque fois que tu change ta config, tu fais un save et le reste du temps, tu te contente de commande start ; stop ; restart ; etc ...
Oublie pas de faire un liens dans /etc/rc2.d/ pour le lancer a chaque démarrage. (update-rc.d ou ln)-
[^]Re: re
Posté par Philou Kapouik () le 06/06/2005 à 23:04. (lien). Évalué à 2.merci pour toute ces explication
--
Software is like sex: it's better when it's free
-
-
Revenir en haut de page || Retourner aux forums || Retourner au forum Linux.debian



Cette discussion est archivée, il n'est plus possible de laisser des commentaires.
Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.