Portál AbcLinuxu, 19. dubna 2024 16:51


Dotaz: Obnova nastavení iptables po startu

20.4.2015 23:02 jan.rok | skóre: 21
Obnova nastavení iptables po startu
Přečteno: 689×
Odpovědět | Admin
Ahoj,

chtěl bych nastavit, aby se mi funkční konfigurace iptables načetla vždy po bootu Debianu.

Vytvořil jsem si skript /etc/init.d/restore-iptables.sh:
#! /bin/sh

sudo /sbin/iptables-restore < /etc/working.iptables

exit 0
a 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:


Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

20.4.2015 23:11 Filip Jirsák
Rozbalit Rozbalit vše Re: Obnova nastavení iptables po startu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Správně se to udělá tak, že použijete distribuční skripty, které přesně tohle (načtení uložené konfigurace) už dělají. Aspoň předpokládám, že to tak má i Debian. Bývá to tak, že když příslušný init skript zavoláte s parametrem např. 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.
20.4.2015 23:13 bzunda
Rozbalit Rozbalit vše Re: Obnova nastavení iptables po startu
rozpadlo se řádkování takže :

https://help.ubuntu.com/community/IptablesHowTo
20.4.2015 23:39 jan.rok | skóre: 21
Rozbalit Rozbalit vše Re: Obnova nastavení iptables po startu
To jsem tedy pochopil tak, že je potřeba modifikovat již hotový skript.

Zřejmě v /etc/network/if-up.d/firewall.

Tohle ale nijak nepomohlo. Asi to bude ještě někde jinde...
21.4.2015 07:12 Filip Jirsák
Rozbalit Rozbalit vše Re: Obnova nastavení iptables po startu
Nerozumím tomu, co znamená "nepomohlo to". Našel jsme, že ukládání pravidel v Debianu řeší např. balíček iptables-persistent.
21.4.2015 09:29 jan.rok | skóre: 21
Rozbalit Rozbalit vše Re: Obnova nastavení iptables po startu
"Nepomohlo" znamená, že se modifikace souboru firewall nijak neprojevila a pravidla se po restartu stále nenačítají.

Ale použil jsem iptables-persistent a jakmile to provoz dovolí, zkusím restart serveru.

Zatím děkuji a večer napíšu, jak to dopadlo.
21.4.2015 10:33 Filip Jirsák
Rozbalit Rozbalit vše Re: Obnova nastavení iptables po startu
Pro prvotní vyzkoušení nemusíte server restartovat, stačí restartovat tu službu. Uložte pravidla, přidejte nějaké testovací, zrestartujte tu službu a firewall by se měl vrátit k uloženému stavu.

Jinak restartovat server až to bude možné po takovéhle změně je dobrý nápad, on ten proces při startu je přeci jen dost specifický, a i když máte vyzkoušené, že každá jednotlivá služba naběhne správně, ještě to neznamená, že se to podaří i při restartu serveru. A je mnohem lepší to řešit teď, když víte, co jste dělal, než to řešit za půl roku, až se server restartuje po nějaké havárii.
21.4.2015 21:22 jan.rok | skóre: 21
Rozbalit Rozbalit vše Re: Obnova nastavení iptables po startu
Tak nevím: iptables-persistent nefunguje.

Vložení /sbin/iptables-restore < /etc/working.iptables do /etc/rc.local taky nefunguje, přestože rc.local se provádí.
22.4.2015 06:59 Filip Jirsák
Rozbalit Rozbalit vše Re: Obnova nastavení iptables po startu
Já bych tedy řekl, že obojí funguje. U 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.
22.4.2015 10:56 jan.rok | skóre: 21
Rozbalit Rozbalit vše Re: Obnova nastavení iptables po startu
Do /etc/rc.local jsem doplnil:

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.
22.4.2015 11:57 nobody
Rozbalit Rozbalit vše Re: Obnova nastavení iptables po startu
tak neco ti to pak prebije, abys mel 100% jistotu, pridej v rc.local po restore radek:
iptables -L >/tmp/iptables_po_restore_v_rc_local
a treba i pred restore:
iptables -L >/tmp/iptables_pred_restore_v_rc_local

to co za script/pravidlo to prebiji zkus dohledat v /etc:
sudo grep iptables -r /etc/*
22.4.2015 12:41 jan.rok | skóre: 21
Rozbalit Rozbalit vše Re: Obnova nastavení iptables po startu
Pokusy s restartem můžu udělat až večer.

Ale hledal jsem, co by mi mohlo přebíjet pravidla, a našel jsem /etc/default/drbl-nat.up.rules.

Zkusím tedy upravit tento soubor tak, jak potřebuju a po restartu uvidím.
22.4.2015 19:29 jan.rok | skóre: 21
Rozbalit Rozbalit vše Re: Obnova nastavení iptables po startu
Soubor /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
20.4.2015 23:12 bzunda
Rozbalit Rozbalit vše Re: Obnova nastavení iptables po startu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Vložit ekvivalent do konfigurace síťovky v deb/ubu je to /etc/network/interfaces

auto eth0 iface eth0 inet dhcp pre-up iptables-restore < /etc/iptables.rules post-down iptables-restore < /etc/iptables.downrules
20.4.2015 23:57 jan.rok | skóre: 21
Rozbalit Rozbalit vše Re: Obnova nastavení iptables po startu
Do /etc/network/interfaces se neovážím zasáhnout, je tam definována spousta VLANů. Zkusil jsem tedy podle článku na webu https://help.ubuntu.com/community/IptablesHowTo použít Solution #2, ale ani tohle mi nezafunguje.
21.4.2015 09:34 drunkezz | skóre: 34 | blog: kadeco
Rozbalit Rozbalit vše Re: Obnova nastavení iptables po startu
Odpovědět | | Sbalit | Link | Blokovat | Admin

"/sbin/iptables-restore < /etc/working.iptables" do /etc/rc.local  nepomoze?
D.

21.4.2015 09:41 jan.rok | skóre: 21
Rozbalit Rozbalit vše Re: Obnova nastavení iptables po startu
To jsem zkusil, ale nepomohlo to. Jakoby tam bylo ještě něco dalšího, co to zase přepíše. Teď s tím bohužel nemůžu laborovat, zkusím večer.
21.4.2015 10:55 Jirka | skóre: 25
Rozbalit Rozbalit vše Re: Obnova nastavení iptables po startu
Taky jsem to u svýho debianího servříku měl, že mi něco přepisovalo každejch pět minut konfiguraci a kvůli totálně osekanýmu jádru (vypnutý všecky debugy etc...) se nepodařilo zjistit, co to způsobuje. Tak se hodil script do crontabu, kterej to každejch pět minut pár ms po přepisu přepsal zase zpátky a tak to funguje už přes rok. :-)
Dokud to funguje, nešťourej se v tom!...
21.4.2015 11:36 bigBRAMBOR | skóre: 37
Rozbalit Rozbalit vše Re: Obnova nastavení iptables po startu
tomu říkám řešení!!!!
21.4.2015 11:56 NN
Rozbalit Rozbalit vše Re: Obnova nastavení iptables po startu
LOL
rADOn avatar 24.4.2015 16:38 rADOn | skóre: 44 | blog: bloK | Praha
Rozbalit Rozbalit vše Re: Obnova nastavení iptables po startu
Myslim ze odted az uslysim rceni "narovnávák na ohejbák" vybavi se mi tohle.
"2^24 comments ought to be enough for anyone" -- CmdrTaco
21.4.2015 12:45 nobody
Rozbalit Rozbalit vše Re: Obnova nastavení iptables po startu
to jestli ti funguje /etc/rc.local zjistis nejlepe tim ze tam das napr:
touch /tmp/rc_local_bezelo
(pred radek exit 0) a po startu zjistis pritomnost souboru

pripadne zkus postup dle debian wiki pro iptables
ulozit pozadovany stav a nacitat pri nahozeni site pomoci if-pre-up.d scriptu...
21.4.2015 10:44 Nobody
Rozbalit Rozbalit vše Re: Obnova nastavení iptables po startu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Bud ten rc.local neni executable, nebo ho nic nespousti.

Spravne systemove reseni je ale pouzit systemd-iptablesd.
21.4.2015 12:37 nobody
Rozbalit Rozbalit vše Re: Obnova nastavení iptables po startu
nejedna se o systemove ale o systemdove reseni, nezamenovat prosim...
navic nevis jestli uz ma debian timto zamoren...
21.4.2015 13:32 R
Rozbalit Rozbalit vše Re: Obnova nastavení iptables po startu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Odkedy som objavil balik arno-iptables-firewall, tak najmenej 90 % nastaveni iptables odpadlo. Povolene porty sa nastavia v konfiguracii. A tych 10 % specialnych veci sa prida rucne do custom-rules.
22.4.2015 19:44 j
Rozbalit Rozbalit vše Re: Obnova nastavení iptables po startu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tvle ... kdyz to ctu ... jen blazen si tohle distro muze dat na server ... zlaty gentoo ... /etc/init.d/ip(6)tables save

V realu to nedela nic jinyho, ne ze to zavola ip(6)tables-save a pri startu ip(6)tables-restore.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.