Portál AbcLinuxu, 9. května 2025 23:46
/etc/init.d/restore-iptables.sh
:
#! /bin/sh sudo /sbin/iptables-restore < /etc/working.iptables exit 0a nastavil mu
chmod a+x
Nakonec jsem ještě zadal:
update-rd.c /etc/init.d/restore-iptables.sh defaults
ln -s /etc/init.d/restore-iptables.sh /etc/rc3.d/S99restore-iptables.sh
Přesto skript při startu systému neproběhne, protože iptables-restore vyžaduje spuštění jako su. Ale nevím, jak toho docílit.
Zkusil jsem dopsat příkaz iptables-restore
do rc.local
, ale taky bez úspěchu.
Jak by se to mělo správně udělat?
Díky, J.R.
Řešení dotazu:
save
, uloží se aktuální stav, a při startu se obnoví.
Jinak iptables
nevyžaduje spuštění jako su, ale spuštění pod rootem. A init skripty se spouští pod rootem. sudo
v tom skriptu je zbytečné a to exit 0
je tam pro matení nepřítele (lepší bude, když skript skončí s návratovým kódem posledního příkazu). Ale lepší je použít distribuční řešení, když použijete své vlastní, budete se s tím distribučním prát.
/etc/network/if-up.d/firewall
.
Tohle ale nijak nepomohlo. Asi to bude ještě někde jinde...
iptables-persistent
.
/sbin/iptables-restore < /etc/working.iptables
do /etc/rc.local taky nefunguje, přestože rc.local se provádí.
iptables-restore
to mám vyzkoušené. Nebude spíš problém v tom, že to špatně používáte? Kdybyste místo "nefunguje to" napsal, co přesně děláte a jaký to má výsledek, bylo by mnohem snazší vám poradit.
touch /tmp/rc-local-se-spustil
/sbin/iptables-restore < /etc/working.iptables
touch /tmp/rc-local-se-spustil-podruhe
Po restartu serveru se v /tmp
vytvořily oba soubory, ale iptables -L
vypisuje stále původní nastavení, nikoliv to, které mám ve /etc/working.iptables
.
Ačkoliv pokud ručně zadám:
sudo /sbin/iptables-restore < /etc/working.iptables
,
tak se příkaz provede a firewall dělá to, co chci. Ale jen do restartu pak je zde zase původní nastavení. Myslím proto, že po vykonání /etc/rc.local
se provede ještě něco, co moje nastavení zase vrátí k tomu původnímu.
iptables -L >/tmp/iptables_po_restore_v_rc_locala treba i pred restore:
iptables -L >/tmp/iptables_pred_restore_v_rc_local
sudo grep iptables -r /etc/*
/etc/default/drbl-nat.up.rules
.
Zkusím tedy upravit tento soubor tak, jak potřebuju a po restartu uvidím.
/etc/default/drbl-nat.up.rules
měl opravdu na svědomí přepisování mých pravidel.
Nevím přesně, proč toto v tomhle konkrétním serveru je, server jsem převzal hotový.
Upravil jsem tedy soubor drbl-nat.up.rules
tak, jak jsem potřeboval a po restartu se firewall chová podle mých představ.
Díky všem za cenné rady, zas jsem se leccos přiučil. JR
auto eth0
iface eth0 inet dhcp
pre-up iptables-restore < /etc/iptables.rules
post-down iptables-restore < /etc/iptables.downrules
"/sbin/iptables-restore < /etc/working.iptables" do /etc/rc.local nepomoze?
D.
touch /tmp/rc_local_bezelo
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.