PDA

View Full Version : eseguire iptables all'avvio.


riaw
12-09-2005, 13:30
sono riuscito a configurare iptables come dico io, il problema è fargli mantenere la configurazione al riavvio........
ho creato un file vuoto, /etc/sysconfig/iptables
poi ho fatto il dump, con
iptables-save > /etc/sysconfig/iptables
per ripristinare le impostazioni di iptables basta dare
iptables-restore /etc/sysconfig/iptables
il problema è riuscire a farlo eseguire all'avvio..........
ho creato quindi uno script, /etc/init.d/iptables
che contiene
#!/bin/bash
iptables-restore /etc/sysconfig/iptables
ma come faccio a farlo partire all'avvio ?
su debian mi sarebbe bastato dare un
update-rc.d /etc/init.d/iptables defaults
ma in suse non so proprio come fare, visto che il comando update-rc.d proprio non c'è......
ho provato ad andare nella directory /etc/rc.d/rc3/
e dare un
ln -s /etc/init.d/iptables S20iptables
ma niente, al successivo riavvio le impostazioni tornano quelle di default........

suggerimenti?

kingv
12-09-2005, 14:38
chkconfig nome_servizio on

riaw
12-09-2005, 17:24
io non devo far partire nessun servizio.......

io devo dirgli di eseguire in automatico
iptables-restore /etc/sysconfig/iptables

dove etc/sysconfig/iptables è un file di configurazione.........

ho provato a dare
chkconfig iptables-restore /etc/sysconfig/iptables on

ma mi restituisce errore...........

kingv
12-09-2005, 20:42
hai ragione, scusa, creati uno script eseguibile in /etc/init.d che chiama iptables-restore per caricare i salvataggi precedenti.

in questo script devono essere presenti 2 righe (commentate) come queste:

# chkconfig: 2345 50 50
# description: iptables script

e poi per farlo partire all'avvio:
chkconfig nome_script on

guarda la pagina di man per tutte le opzioni.

Devil!
12-09-2005, 20:58
ops, ho sbagliato :D

riaw
13-09-2005, 06:56
hai ragione, scusa, creati uno script eseguibile in /etc/init.d che chiama iptables-restore per caricare i salvataggi precedenti.

in questo script devono essere presenti 2 righe (commentate) come queste:

# chkconfig: 2345 50 50
# description: iptables script

e poi per farlo partire all'avvio:
chkconfig nome_script on

guarda la pagina di man per tutte le opzioni.


e come si fa uno script eseguibile ?

se nello script metto dentro solo queste due righe:

#!/bin/bash
iptables-restore /etc/sysconfig/iptables

nn va bene ?

riaw
13-09-2005, 07:06
perfetto!

ora funziona!


grazie mille kingv!!!!!


ma spiegami una cosa:
cosa significa quel

2345 50 50
all'inizio dello script ?

kingv
13-09-2005, 10:39
perfetto!
2345 50 50
all'inizio dello script ?



chkconfig per funzionare ha bisogno che i file siano "istrumentati", ovvero che contengano dei tag sottoforma di commenti che non modificano l'esecuzione ma che gli permettano di leggere delle informazioni necessarie.

in particolare nella riga che ti ho scritto i tre numeri indicano di far partire di default il servizio nei runlevel 2,3,4 e 5 e le priorità di stop/start (ovvero quel numero che viene messo dopo la S e la K nei link simbolici in /etc/rc.X/ )

:)

riaw
13-09-2005, 14:24
ma quindi il servizio parte a ogni runlevel ?
non basta farlo partire a runlevel 3 ?

kingv
13-09-2005, 16:32
ma quindi il servizio parte a ogni runlevel ?
non basta farlo partire a runlevel 3 ?

io lo lascerei partire in ogni runlevel "utente", ovvero quelli tra il 2 e il 5 e lo farei stoppare in 0, 1 e 6.
il rischio è che il giorno che vuoi avere un login grafico (ovvero setti il 5 come runlevel di default) ti dimentichi di far partire servizi che invece vorresti ativi all'avvio.

puoi interrrogare le impostazioni per un servizio con:
chkconfig --list nome_servizio

riaw
13-09-2005, 17:37
io lo lascerei partire in ogni runlevel "utente", ovvero quelli tra il 2 e il 5 e lo farei stoppare in 0, 1 e 6.
il rischio è che il giorno che vuoi avere un login grafico (ovvero setti il 5 come runlevel di default) ti dimentichi di far partire servizi che invece vorresti ativi all'avvio.

puoi interrrogare le impostazioni per un servizio con:
chkconfig --list nome_servizio

ma ipotesi che io do come comando, all'inizio dello script
#chkconfi 3 50 50
invece che 2345
e imposto il sistema per avere come default il runlevel 5, cioè quello grafico, lo script non viene eseguito lo stesso in quanto essendo a runlevel 3 viene eseguito PRIMA di avere il login grafico?

kingv
13-09-2005, 22:34
occhio che se il runlevel di default è il 5, al'avvio non vengono eseguiti gli script di init dei runlevel precedenti, ma solo di quelli del 5.

il fatto che tu indichi nel commento dei runlevel di default vuol dire solo che quando esegui:

chkconfig --add nome_servizio

verranno creati i link secondo quello che hai indicato tra i commenti, ma nulla ti vieta poi di modificarli con

chkconfig --level n nome_servizio on|off

a tuo piacimento

riaw
14-09-2005, 05:44
occhio che se il runlevel di default è il 5, al'avvio non vengono eseguiti gli script di init dei runlevel precedenti, ma solo di quelli del 5.

il fatto che tu indichi nel commento dei runlevel di default vuol dire solo che quando esegui:

chkconfig --add nome_servizio

verranno creati i link secondo quello che hai indicato tra i commenti, ma nulla ti vieta poi di modificarli con

chkconfig --level n nome_servizio on|off

a tuo piacimento


sei stato chiarissimo :)

grazie mille!!! :)