Re: iptables in /etc/init.d
Ciao ti incollo qua sotto un file che avevo trovato quando un altro
mio amico aveva lo stesso problema sotto debian:
------------ copia incolla ---------------------
#!/bin/sh
set -e
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
default=/etc/default/iptables
if test -f $default; then
. $default
fi
have_a_cow_man () {
for i in $@; do
if ! command -v "$i" >/dev/null 2>&1; then
echo "Aborting iptables initd: no $i executable."
exit 0
fi
done
}
iptables="/sbin/${iptables_command-iptables}"
iptables_save="${iptables}-save"
iptables_restore="${iptables}-restore"
have_a_cow_man "$iptables_save" "$iptables_restore"
libdir=/var/lib/iptables
autosave="${libdir}/autosave"
initd="$0"
initd_clear () {
rm -f "$autosave"
echo -n "Clearing iptables ruleset: default ACCEPT policy"
$iptables_save | sed "/-/d;/^#/d;s/DROP/ACCEPT/" | $iptables_restore
echo "."
}
initd_halt () {
rm -f $autosave
echo -n "Clearing iptables ruleset: default DROP policy"
$iptables_save | sed "/-/d;/^#/d;s/ACCEPT/DROP/" | $iptables_restore
echo "."
}
initd_load () {
ruleset="$libdir/$@"
if ! test -f "$ruleset"; then
echo "Aborting iptables load: unknown ruleset, \"$@\"."
if ! test "${ruleset#${libdir}/}" = active -o inactive; then
usage
fi
exit 0
fi
if test "${ruleset#${libdir}/}" = inactive; then
initd_autosave
fi
rm -f "$autosave"
echo -n "Loading iptables ruleset: load \"$@\""
$iptables_restore < "$ruleset"
echo "."
}
initd_counters () {
if test "${enable_save_counters:-false}" = true; then
echo -n " with counters"
$iptables_save -c > "$ruleset"
else
$iptables_save | sed '/^:/s@\[[0-9]\{1,\}:[0-9]\{1,\}\]@[0:0]@g' \
> "$ruleset"
fi
}
initd_save () {
rm -f $autosave
ruleset="${libdir}/$@"
echo -n "Savinging iptables ruleset: save \"$@\""
initd_counters
echo "."
}
initd_autosave () {
if test -f $autosave -a ${enable_autosave-false} = true; then
ruleset="${libdir}/active"
echo -n "Autosaving iptables ruleset: save \"active\""
initd_counters
echo "."
fi
}
usage () {
current="$(ls -m /var/lib/iptables \
| sed 's/ \{0,1\}autosave,\{0,1\} \{0,1\}//')"
cat << END
$initd options:
start|restart|reload|force-reload
load the "active" ruleset
save <ruleset>
save the current ruleset
load <ruleset>
load a ruleset
stop
load the "inactive" ruleset
clear
remove all rules and user-defined chains, set default policy to ACCEPT
halt
remove all rules and user-defined chains, set default policy to DROP
Saved rulesets:
$current
Please read: $default
END
}
case "$1" in
start|restart|reload|force-reload)
initd_load active
if test ${enable_autosave-false} = true; then
touch $autosave
fi
;;
stop)
initd_load inactive
;;
clear)
initd_clear
;;
halt)
initd_halt
;;
save)
shift
initd_save "$@"
;;
load)
shift
initd_load "$@"
;;
save_active) #legacy option
initd_save active
;;
save_inactive) #legacy option
initd_save inactive
;;
*)
if test "$@"; then
echo "Aborting iptables initd: unknown command(s): \"$@\"."
fi
usage
;;
esac
exit 0
------------------- fine copia incolla ------------------------
Ti consiglio cmq di dare un okkiata a
http://www.thing.dyndns.org/debian/iptables.htm
oppure a
http://www.malibyte.net/iptables/scripts/fwscripts.html
e darti un okkiata alla pagina di man update-rc.d che serve appunto x
aggiungere (e definire a quali livelli) uno script tra quelli da
avviare nei vari livelli... e se ti avanza tempo datti un okkio al
manuale debian da cui ho tirato fuori la seguente domanda e risposta:
---- quotato da manuale debian ----
--------- http://www.debian.org/doc/FAQ/ch-customizing.it.html ---------------
10.6 Sembra che Debian non usi rc.local per personalizzare il processo
di avvio; che facilitazioni vengono fornite?
Si supponga che un sistema necessiti di eseguire lo script foo
all'avvio o all'ingresso di un particolare runlevel (System V). Allora
l'amministratore di sistema dovrebbe:
Mettere lo script foo nella directory /etc/init.d/.
Eseguire il comando Debian update-rc.d con gli argomenti appropriati,
per impostare i link tra le directory (specificate da riga di comando)
rc?.d e /etc/init.d/foo. Qui, '?' è un numero da 0 a 6 e corrisponde
ad ognuno dei runlevel System V.
Riavviare il sistema.
Il comando update-rc.d imposterà i link tra i file nelle directory
rc?.d e lo script in /etc/init.d/. Ogni link inizierà con una 'S' o
una 'K', seguita da un numero, seguito dal nome dello script. Gli
script in /etc/rcN.d/ che iniziano con 'S' vengono eseguiti quando si
entra nel runlevel N. Gli script che iniziano con 'K' sono eseguiti
quando si lascia il runlevel N.
Si può, per esempio, fare in modo che lo script foo venga eseguito
all'avvio, mettendolo in /etc/init.d/ ed installando i link con
update-rc.d foo defaults 19. L'argomento 'defaults' fa riferimento ai
runlevel predefiniti, che sono dal 2 al 5. L'argomento '19' assicura
che foo sia chiamato prima di qualunque script contenente il numero 20
o superiore.
---- fine manuale debian
http://www.debian.org/doc/FAQ/ch-customizing.it.html ------
Ciao
N0bodY88
Spippolatori Member - Metro Olografix Member
Solo due cose sono infinite, l'universo e la stupidita' umana, e non
sono sicuro della prima. (Albert Einstein)
On Fri, 08 Oct 2004 15:14:12 +0200, Marco Bellini <seathrun@tiscali.it> wrote:
> scusate la banalità della domanda, ma non trovo risposte.
> uso debian, sarge, e mi sono installato iptables per mettere su un
> piccolo firewall. Solo che dopo l'installazione non mi compare in
> /etc/init.d nessuno script iptables. Con ipmasq, ad esempio, questo
> accade.
> Solo che così non posso linkare in /etc/rc2.d e non so neppure come
> avviare iptables...
> ho sempre trovato il init.d lo script, mica me lo dovrò fare a mano???
> tutti i tutorial danno per scontato che ci sia e che da qui si parta per
> farsi un firewall, ma a me manca il primo pezzo!
>
> grazie per aiuti e suggerimenti!
>
> marco
>
> --
> To UNSUBSCRIBE, email to debian-italian-REQUEST@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
>
>
Reply to: