Portál AbcLinuxu, 5. května 2025 13:15

Dotaz: správa velkého množství iptables pravidel

13.11.2016 13:31 fish | skóre: 22
správa velkého množství iptables pravidel
Přečteno: 378×
Odpovědět | Admin
Zdravím,

jakým způsobem byste spravovali velké množství pravidel v iptables? Nejde o pravidla, na která jde aplikovat ipset, ale o rozvětvenou konfiguraci routeru. Rozhraní je momentálně 60+, pravidel okolo 1000. Výchozí pravidlo DROP a následně se pro každou službu explicitně povoluje komunikace jen pro konkrétní kombinaci if+src+dst+proto+port, plus odpovídající match v opačném směru. Ponechme stranou, proč to tak je.

iptables volám skriptem a samozřejmě to v takovém množství už poměrně trvá (řádově vteřiny), což vede k narušení provozu. Nechci používat iptables-save / restore, protože ve skriptu můžu pohodlně udržovat komentáře, měnit interface / subnety pomocí proměnných, generovat opakující se bloky podle seznamu IP (to by zrovna přes ipset asi nahradit šlo) a můžu si obecně organizovat jeho obsah tak, abych se v tom na první pohled vyznal.

Ovšem iptables-restore má nespornou výhodu v tom, že všechny pravidla předá netfilteru jako blok, takže jejich načtení je téměř okamžité.

Zkoušel jsem pátrat a UFW zřejmě umí z vlastní konfigurace generovat buď podobný sled volání iptables nebo přímo formát pro iptables-restore, takže jeho načtení by mělo být rychlé, při zachování možnosti definovat pravidla v lépe čitelném souboru. Jen nevím, nakolik je UFW ověřený a poradí si s komplikovanějšími pravidly (používání set-mark a podobně).

Máte s něčím praktickou zkušenost? UFW, firewalld nebo něco dalšího na co jsem zatím nenarazil?

díky

Řešení dotazu:


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

Odpovědi

13.11.2016 13:42 NN
Rozbalit Rozbalit vše Re: správa velkého množství iptables pravidel
Odpovědět | | Sbalit | Link | Blokovat | Admin
Neslo by vyuzit stare dobre pojmenovane chainy? Nemusel by jsi "prejizdet" cele iptables, ale konkretni bloky..
13.11.2016 15:23 fish | skóre: 22
Rozbalit Rozbalit vše Re: správa velkého množství iptables pravidel
Tak to částečně mám. Nejčastěji upravovanou část mám jako chain v odděleném skriptu, takže ho můžu volat sólo. Ale přišlo mi to jako provizorium, na to abych tak rozkouskoval celý ten hlavní skript. Takže nejdřív zkouším najít elegantnější řešení.

Popravdě jsem zvažoval něco si na to napsat, co projde strukturu adresářů s dílčími skripty, založí chainy podle jejich názvů atd. Po prvním spuštění už by se daly ty bloky volat podle potřeby. Ale přijde mi zbytečný se do toho pouštět, pokud už by něco obdobnýho existovalo.
Josef Kufner avatar 13.11.2016 15:43 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: správa velkého množství iptables pravidel
Odpovědět | | Sbalit | Link | Blokovat | Admin
Napadají mne tři možné přístupy.
  1. Omezit počet pravidel. Asi k tomu máš nějaký důvod, ale asi by stálo za zamyšlení, zda není lepší cesta. Možná by obecnější pravidla mohla významně zredukovat počet pravidel při zachování srovnatelné bezpečnosti.
  2. Můžeš skriptem generovat soubor ve formátu pro iptables-restore. Pak využiješ výhod skriptu i výhod rychlého zpracování všech pravidel najednou.
  3. Můžeš skriptem pomalu vytvořit dočasný nepoužívaný chain. Pak jen upravit pravidlo, které ho volá a starý chain vyhodit. Úprava pravidel bude stále pomalá, ale nebude to vadit provozu.
Hello world ! Segmentation fault (core dumped)
13.11.2016 16:10 petzah | skóre: 1
Rozbalit Rozbalit vše Re: správa velkého množství iptables pravidel
Odpovědět | | Sbalit | Link | Blokovat | Admin
nftables to rescue (nftables wiki

nftables scripting
13.11.2016 17:29 fish | skóre: 22
Rozbalit Rozbalit vše Re: správa velkého množství iptables pravidel
To vypadá dobře (a zároveň to dokazuje, že nejsem sám, kdo narazil na problém s možností skriptování pravidel). Bohužel v Debianu zatím jen jako backport. Aktuálně bych se potřeboval zaměřit na řešení pro stable a old-stable. Každopádně někde vyzkouším, díky.

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.