Syntaxe iptables.

Domov iptables - utilita příkazový řádek , je standardní rozhraní správa provozu firewallu (firewall) síťový filtr pro jádra Linuxové verze 2.4 a 2.6. K použití nástroje iptables jsou vyžadována oprávnění superuživatel (kořen) Někdy slovo iptables znamená samotné propojení firewall

síťový filtr.

1. Co je firewall a proč je potřeba? Firewall - komplex hardwaru popř software , který řídí a filtruje ty, kteří jím procházejí síťové pakety na různé úrovně


Model OSI v souladu se stanovenými pravidly.

Hlavním úkolem firewallu je chránit počítačové sítě nebo jednotlivé uzly před neoprávněným přístupem. Firewally se také často nazývají filtry, protože jejich hlavním úkolem je nepropouštět (filtrovat) pakety, které nesplňují kritéria definovaná v konfiguraci.

2. Jak iptables funguje Když paket dorazí do našeho firewallu, nejprve jde do síťové zařízení , je zachycen odpovídajícím ovladačem a poté přenesen do jádra. Paket pak prochází množstvím tabulek a je pak přenášen buď lokální aplikace

, nebo je převedena na jiný stroj.

  1. Iptables používá tři typy tabulek: Mandl
  2. - tento řetězec se obvykle používá k provádění změn v hlavičce paketu, například ke změně bitů TOS atd. Nat - tento řetězec se používá pro vysílání síťové adresy
  3. (Překlad cílové sítě). Překlad zdrojové síťové adresy se provádí později, v jiném řetězci. Jakýkoli druh filtrování v tomto řetězci lze provést pouze ve výjimečných případech. Filtr

- zde je filtrován provoz. Pamatujte, že všechny příchozí pakety, které jsou nám adresovány, procházejí tímto řetězcem, bez ohledu na to, ze kterého rozhraní přišly.

  1. Podle toho nás zajímá třetí tabulka filtrů. Tento stůl má tři vestavěné řetězy:
  2. INPUT - pro příchozí pakety.
  3. VPŘED - pro ty, kteří procházejí tímto strojem do jiného.

VÝSTUP - pro odchozí.

Paket procházející těmito řetězci může být na základě pravidla předán (ACCEPT) nebo zahozen (DROP).

Program Iptables umožňuje upravovat pravidla prostřednictvím terminálu zadáním příkazů.

Každé pravidlo je řetězec obsahující kritéria, která určují, zda paket odpovídá danému pravidlu, a akci, která musí být provedena, pokud je kritérium splněno. Obecně platí, že pravidla jsou napsána asi takto:

iptables [-t název-tabulky ] příkaz [vzor] [ -j akce ]

Volba -t určuje tabulka. Pokud je tato možnost vynechána, výchozím nastavením je použití tabulky filtrů. Pokud máte v úmyslu použít jinou tabulku, musíte to výslovně uvést.

Dále by hned za názvem tabulky měl být příkaz. Pokud není specifikátor tabulky, musí být příkaz vždy na prvním místě.
Tým definuje akci iptables, například: vložit pravidlo nebo přidat pravidlo na konec řetězce nebo odstranit pravidlo atd.

Seznam příkazů:

  • -A název řetězce pravidlo (na konec řetězce přidejte pravidlo; přepínač --set-counters umožňuje nastavit čítače paketů a bajtů)
  • -Já název řetězce číslo pravidlo (vložte pravidlo do řetězce před pravidlo s zadané číslo, číslování od 1; přepínač --set-counters umožňuje nastavit čítače paketů a bajtů)
  • -R název řetězce číslo pravidlo (nahradit;
    přepínač --set-counters umožňuje nastavit čítače paketů a bajtů)
  • -D název řetězce číslo (smazat pravidlo se zadaným číslem, číslování od 1)
  • -D název řetězce pravidlo (odstranit pravidlo podle shody textu)
  • -C název řetězce plastový sáček (test průchodu paketů;
    odchozí adresa, cílová adresa, protokol, rozhraní, porty jsou specifikovány odpovídajícími klíči)
  • -L [název řetězce ] (zobrazit seznam pravidel; další klíče:
    • -proti(výstup další informace zejména počítadla)
    • --přesný(zobrazit počítadla bez zaokrouhlení na KB, MB atd.)
    • --číselný(zobrazit adresy a čísla portů jako čísla)
    • --čísla-řádků(zobrazit čísla pravidel)
  • -F název řetězce (odstranit všechna pravidla z řetězce)
  • -Z název řetězce (vynulovat počítadla)
  • -N název řetězce (vytvořit řetěz)
  • -X název řetězce (smazat prázdné vlákno, které nemá žádné odkazy)
  • -P název řetězce akce (změnit výchozí akci: ACCEPT,
    DROP, QUEUE, RETURN)
  • -E old-chain-name název nového řetězce (přejmenujte řetězec)

Kapitola ochutnat nastavuje ověřovací kritéria, podle kterých se určuje, zda paket podléhá tomuto pravidlu nebo ne. Zde můžete zadat různá kritéria - IP adresu zdroje paketu nebo sítě, síťové rozhraní. Cílová IP adresa, port, protokol atd. Další parametry pro filtrování naleznete v nápovědě k utilitě iptables (man iptables)

A nakonec akce určuje, jaká akce by měla být provedena, pokud jsou splněna kritéria v pravidle. Zde můžete donutit jádro přenést paket do jiného řetězce pravidel, „zahodit“ paket, vydat chybovou zprávu zdroji atd.

Seznam některých akcí:

  • ACCEPT - přeskočit paket; skenování tabulky končí
  • DROP - odhodit tiše; skenování končí nejen pro aktuální řetězec, ale i pro další tabulky
  • ODMÍTNUTÍ - vyhodit, upozornění odesílatele ( --odmítnout-s typ oznámení )

3. Pořadí síťového paketu určeného pro místní proces/aplikaci:

Pro místní aplikaci

Krok Tabulka Řetěz Poznámka
1 Kabel (tj.
2 Vstup
3 mandl PREROUTING Obvykle se používá k provádění změn v hlavičce paketu, jako je nastavení bitů TOS atd.
4 nat PREROUTING Překlad adres (Destination Network Address Translation). Filtrování paketů je zde povoleno pouze ve výjimečných případech.
5 Rozhodování o směrování.
6 mandl VSTUP Paket skončí v řetězci INPUT mangle tabulky. Tím se provede změny v hlavičce paketu před jeho předáním do místní aplikace.
7 filtr VSTUP Zde je filtrován příchozí provoz. Pamatujte, že všechny příchozí pakety, které jsou nám adresovány, procházejí tímto řetězcem, bez ohledu na to, ze kterého rozhraní přišly.
8 Místní proces/aplikace (tj. serverový program nebo klientský program)

Je důležité si pamatovat, že tentokrát pakety procházejí řetězcem INPUT, nikoli FORWARD.

Pořadí pohybu paketů vytvořených místními procesy.

Z místních procesů

Krok Tabulka Řetěz Poznámka
1 Lokální proces (tj. program serveru nebo klientský program).
2 Rozhodování o směrování. Zde se rozhoduje, kam paket půjde dál – na jakou adresu, přes jaké síťové rozhraní atp.
3 mandl VÝSTUP Zde se provádějí změny v hlavičce paketu. Provádění filtrování na tomto řetězci může mít negativní důsledky.
4 nat VÝSTUP Tento řetězec se používá pro překlad síťových adres (NAT) v paketech pocházejících z procesů místní brány firewall.
5 (Překlad cílové sítě). Překlad zdrojové síťové adresy se provádí později, v jiném řetězci. Jakýkoli druh filtrování v tomto řetězci lze provést pouze ve výjimečných případech. VÝSTUP Zde je filtrován odchozí provoz.
6 mandl POSTROUTING Řetězec POSTROUTING tabulky mangle se primárně používá pro pravidla, která potřebují provést změny v hlavičce paketu před tím, než opustí firewall, ale poté, co bylo učiněno rozhodnutí o směrování. Všechny pakety, jak tranzitní, tak vytvořené procesy místní brány firewall, spadají do tohoto řetězce.
7 nat POSTROUTING Zde se provádí překlad zdrojové síťové adresy. V tomto řetězci byste neměli provádět filtrování paketů, abyste předešli nežádoucím vedlejším účinkům. I zde však můžete zastavit pakety použitím výchozí zásady DROP.
8 Síťové rozhraní (např. eth0)
9 Kabel (tj. Internet)

Pořadí pohybu tranzitních zásilek

Krok Tabulka Řetěz Poznámka
1 Kabel (tj. Internet)
2 Síťové rozhraní (např. eth0)
3 mandl PREROUTING Obvykle se tento řetězec používá k provádění změn v hlavičce paketu, jako je změna bitů TOS atd.
4 nat PREROUTING Tento řetězec se používá pro překlad adres cílové sítě. Překlad zdrojové síťové adresy se provádí později, v jiném řetězci. Jakýkoli druh filtrování v tomto řetězci lze provést pouze ve výjimečných případech
5 Rozhodování o dalším směrování, tzn. v tomto okamžiku je rozhodnuto, kam paket půjde - do lokální aplikace nebo do jiného síťového uzlu.
6 mandl VPŘED Paket pak vstupuje do řetězce FORWARD mangle tabulky, který by měl být používán pouze ve výjimečných případech, kdy je nutné provést nějaké změny v hlavičce paketu mezi dvěma rozhodovacími body směrování.
7 (Překlad cílové sítě). Překlad zdrojové síťové adresy se provádí později, v jiném řetězci. Jakýkoli druh filtrování v tomto řetězci lze provést pouze ve výjimečných případech. VPŘED Pouze ty pakety, které jdou na jiného hostitele, spadají do řetězce FORWARD Zde by se mělo provádět veškeré filtrování tranzitního provozu. Nezapomeňte, že provoz prochází tímto řetězcem v obou směrech; nezapomeňte to vzít v úvahu při psaní pravidel filtrování.
8 mandl POSTROUTING Tento řetězec je určen k provádění změn v hlavičce paketu poté, co bylo učiněno poslední rozhodnutí o směrování.
9 nat POSTROUTING Tento řetězec je primárně určen pro překlad zdrojové síťové adresy. Nepoužívejte jej k filtrování, pokud to není nezbytně nutné. Provádí se zde i maškarní.
10 Výstupní síťové rozhraní (například eth1).
11 Kabel (ať je to LAN).

Jsou tři různé možnosti předávání paketů.

1. Zvenčí na místní službu (server) tohoto počítače (INPUT).

2. Od místní služba(server) tohoto počítače mimo (OUTPUT).

3. Procházení, brána, kolem tohoto síťového rozhraní tohoto počítače (Vpřed).

4. Některé příklady konfigurace:

ukázkový skript:

#set proměnných k označení vnějšího a vnitřního síťového rozhraní

LOCAL_IF="eth0"
INET_IF="eth0:g"

#=======================
# Odstraňte všechna pravidla z řetězce.
#=======================
iptables -F
iptables -X

#=======================
# Nastavte výchozí zásady.
#=======================

iptables -P VSTUPNÍ DROP

iptables -P OUTPUT DROP

iptables -P VPŘED PŘIJMOUT

#=======================
# Vytvořte pravidla pro všechna rozhraní.
#=======================

# http - otevřete port 80
iptables -A INPUT -i VŠECHNY -p tcp -m tcp --dport 80 -j PŘIJÍMAT
iptables -A VSTUP -i VŠECHNY -p icmp -j PŘIJÍMAT

#=======================
# Vytvořte pravidla pro vnitřní rozhraní.
#=======================

# ssh - otevřít 22

iptables -A INPUT -p tcp -i $LOCAL_IF -m tcp --dport 22 -j PŘIJÍMAT

Zbývá pouze spustit skript

příklady jednotlivých řetězců:

Povolujeme vše na interních rozhraních (lo, eth0, eth1 - interní rozhraní)
iptables -A INPUT -i eth1 -j PŘIJÍMAT
iptables -A INPUT -i eth0 -j PŘIJÍMAT
iptables -A VSTUP -i lo -j PŘIJÍMAT

Povolit přístup k určenému portu z Internetu
iptables -A INPUT -p tcp -m tcp -d externí_ip --dport 80 -j PŘIJÍMAT

Otevření protokolu
iptables -A INPUT -p gre -j PŘIJÍMAT

5. Odkazy na dokumentaci pro konfiguraci iptables

http://www.posix.ru/network/iptables/ – článek Dmitrije Kulakova „Konfigurace brány firewall Iptables“

http://www.opennet.ru/docs/RUS/iptables/ – článek Oscara Andersona přeložil Andrey Kiselev „IPtables Guide“

http://system-administrators.info/?p=396 - článek "netfilter a iptables v Linuxu: principy fungování, konfigurace"

http://www.iptables.ru/ - krok za krokem konfigurace iptables. technickou podporu


Zanechte svůj komentář!

Vše je velmi jednoduché, opět vysvětlující na fóru pro nováčky Linuxový svět, ano, pokud tomu dobře rozumím, na internetu nemůžete najít článek, který by vysvětloval nejen nastavení iptables, ale i některé základy sítě.
Takže předkládám vaší pozornosti malá exkurze o nastavení firewallu v Linuxu. Pojďme se jen ponořit do nastavení netfilter/iptables, nepochybně se dotkneme i dalších aplikovaných problémů, protože nám chybí ucelené odpovědi na naše otázky... A vše se zde pokusím co nejpřehledněji podat.

Jak to vypadá

Zvážíme typické schéma pro kanceláře a byty, ano, byty! Málokdo má doma pod stolem svůj malý server, ale většina internetu doma je distribuována přes router a z velké části jsou to i firmware s Linuxem.
Toto je typické uspořádání malé kanceláře. Když je 1 počítač (server) připojen k internetu a ostatní jsou připojeny k internetu přes tento server.

Pojďme, pomalu...

A co tedy máme:
  • server se 2 síťovými kartami a na něm nainstalovaným Debian Lenny
  • výchozí v Debian Lenny firewall - netfilter/iptables
  • lokální síť N počítačů, všechny připojené přes switch, včetně serveru
co je NAT
Nejprve musíme pochopit, že budeme nastavovat nejběžnější NAT (Network Address Translation). Pro žíznivé na závěr zmíním i proxy server využívající jako příklad chobotnici. Jak jsem již řekl, žvýkáme téměř vše.
Co je NAT? Ve skutečnosti je vše jednoduché, všechny počítače mají fyzickou (MAC) a síťovou (IP) adresu. Nás dovnitř momentálně Zajímají mě IP adresy. IP adresa ve stejné síti musí být jedinečná! A se současným standardem IPv4 může být unikátních pouze 4 294 967 296 (2 32), což není vůbec mnoho a jsou téměř pryč. ale nebojte se, IPv6 se brzy rozšíří a jsou tam tuny adres!
Tady si ale můžete všimnout, že počítače jsou výrazně navícčísla, která IPv4 povoluje nebo říkají, že přítel doma má stejnou adresu jako vy! A zde vstupuje do hry NAT – umožňuje vám připojení počítačové sítě při použití jedné IP adresy mezi sebou se akce firewallu nazývá SNAT (Source NAT neboli substituce zdrojové adresy). Tito. v 99 % případů má celá vaše kancelář přístup k internetu pod 1 IP adresou, zatímco uvnitř kanceláře má každý svou. O třídách IP adres si můžete přečíst na internetu.

Nyní, když víme, co je NAT a k čemu je potřeba, můžeme přejít přímo k nastavení serveru.

tranzitní doprava
Všechny příkazy jsou prováděny jako root (superuser). V Debianu je standardně zakázán tzv. tranzitní provoz, tzn. Ve výchozím nastavení je provoz poskytován pouze jako jeden stroj. Jak už asi tušíte, bez tranzitní dopravy není NAT. Chcete-li to povolit, stačí změnit 1 číslici - $ echo 1 > /proc/sys/net/ipv4/ip_forward, Ale toto nastavení po restartu se zhroutí, takže je lepší opravit konfiguraci - $ nano /etc/sysctl.conf dále hledáme čáru #net.ipv4.ip_forward=1 a odstraňte hash (symbol komentáře) na začátku řádku a zkontrolujte, zda je hodnota 1! Nyní můžete přejít přímo ke konfiguraci iptables.
nastavení iptables
Na internetu je mnoho článků o tom, jak psát pravidla do iptables a co s jejich pomocí můžete dělat. Zjistil jsem, že je to nejúplnější a nejpříjemnější čtení.
A tak se do toho dáme. Nejprve vyčistíme tabulky od zbytečných pravidel pro případ, že by tam bylo něco zbytečného...
$ iptables -F
$ iptables -t nat -F
$ iptables -t mangle -F

Přebytek byl vyčištěn. Je velmi důležité pochopit a zapamatovat si, že pravidla v iptables jsou aplikována hierarchicky, tzn. výše uvedené pravidlo bude splněno dříve. Všechny řetězce mají standardně politiku ACCEPT – povolují vše. která nespadá pod pravidla tohoto řetězce.
Dohodněme se, že rozhraní k místní síti je eth0 a rozhraní k internetu je eth1, místní síť má adresy 192.168.0.0/24 a poskytovatel nám dal statickou adresu 10.188.106.33 (i když ne „bílou“ - můžete také mluvit o typech IP adres, které můžete vyhledat na internetu). A tak píšeme:
$ iptables -A FORWARD -i eth0 -o eth1 -s 192.168.0.0/24 -j PŘIJMOUT
$ iptables -A VPŘED -i eth1 -o eth0 -d 192.168.0.0/24 -j PŘIJÍMAT
$ iptables -P VPŘED

Povolili jsme tedy tranzitní pakety procházet firewallem pro náš rozsah IP adres a vše ostatní zakazujeme.
Nyní samotný NAT:
$ iptables -A POSTROUTING -s 192.168.0.0/24 -o eth1 -j SNAT --to-source 10.188.106.33
To stačí k tomu, aby NAT fungoval.
maličkosti...
Na klientech uvedeme IP z vybraného rozsahu a jako bránu uvedeme IP adresu našeho serveru (obvykle je přidělena jako první z podsítě - nechám na vašem uvážení). Vše nastavení sítě Na serveru můžete provést toto:
$ nano /etc/network/interfaces specifikuje nastavení vašich síťových rozhraní.
přístup do hlubin sítě přes bránu nebo DNAT
A pak jste si uvědomili, že máte online Windows Server ke kterému jste měli vždy snadný přístup přes RDP, a pak se objevila tato otravná brána Debianu! Vše je velmi jednoduché - stačí přidat pravidlo DNAT do našich iptables.
Jaký druh zvířete je DNAT? DNAT (Náhrada cílové adresy NAT nebo adresy příjemce) - síťové karty pracovat v takovém režimu, že přijímají pouze pakety adresované konkrétně jim, ale můžete jít na náš server, pokud ip, pod kterou přistupuje k internetu, sedí na tuctu dalších strojů ve vaší kanceláři? Jak se k němu žádost dostane? Ve skutečnosti všechny požadavky tohoto druhu narážejí na naši bránu. A nám stačí nastavit pravidla pro práci s takovými balíčky.
$ iptables -A PREROUTING -i eth1 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.0.2
Toto jednoduché pravidlo přesměruje všechny pakety přicházející na bránu z Internetu na TCP port 3389 (to je to, co používá protokol RDP) k vašemu vnitřní Windows Server. A, voila, všechno pro vás funguje.
tak co vaše oblíbená chobotnice
A i když vše nyní funguje, všichni mají internet a vše funguje, někteří stále potřebují proxy server. Nebudu mluvit o nastavení chobotnice, ukážu pravidlo, které ji udělá „transparentní“. V Squid stačí napsat kouzelné slůvko transparent na správné místo a začne správně zpracovávat požadavky, které na něj padly.
píšeme $ iptables -A PŘEDMĚROVÁNÍ -d! 192.168.0.0/24 -i eth0 -p tcp -m multiport --dports 80 443 -j PŘESMĚROVÁNÍ --na-porty 3128.
A co nám to dává? Nyní všechny žádosti o webové stránky z vašich pracovních stanic přes http((80) a https(443) protokoly budou přesměrovány na port, který chobotnice poslouchá. Získáte filtrování obsahu, informace o tom, kdo kde byl a co dělal na internetu, uživatel, aniž byste cokoli tušili ,funguje jako předtím...
trochu bezpečí
Svou bránu byste měli alespoň minimálně chránit, proto přidejte několik dalších pravidel
$ iptables -A INPUT -i lo -j PŘIJÍMAT
$ iptables -A INPUT -i eth0 -s 192.168.0.0/24 -j PŘIJÍMAT
$ iptables -A INPUT -i eth1 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
$ iptables -P POKRAČOVÁNÍ VSTUPU

Byla tedy zakázána jakákoliv komunikace přímo s bránou, kromě již navázaných spojení, tzn. ty, které jste iniciovali vy a jednoduše na ně dostáváte odpovědi. Nebojte se, naše DNAT prostě nedosahuje těchto pravidel...
proč tak málo?
Článek není gumový a stejně nemůžete vyprávět o všem... přinesl jsem minimální soubor akcí a konceptů, abyste mohli začít ovládat takový kolos, jako je brána na Linuxu. Zde můžete mluvit velmi, velmi dlouho a diskutovat o mnoha aspektech a schopnostech netfilteru.

Celkový

Jak vidíme, vše je opravdu jednoduché! Hlavní je pochopit princip fungování sítě a nebát se nastavovat a číst velké manuály.
Doufám, že se mi podařilo dát dohromady dostatek informací, se kterými začneš přátelství softwarových routerů založené na Linuxu.

Tagy: iptables, netfilter, NAT

IPTables je nástroj, který se používá ke správě firewallu v Linuxu. Je to silné a šikovný nástroj pro a nechtěná spojení. Celý proces je obsažen v pravidlech iptables, která lze upravovat a prohlížet. Více podrobné informace uvedeno v článku.

Historie stvoření

Na IPTables na Linuxu používaly firewall IPFW, vypůjčený od BSD. Poté, s verzí 2.4 linuxového jádra, začal přicházet s firewallem Netfilter a nástrojem IPTables pro jeho správu. V metodice její práce byly všechny aspekty zachovány a funkčně mírně rozšířeny.

Struktura a design IPT tabulek

Po vstupu do firewallu paket prochází několika kontrolami. Může být kontrolní součet nebo jakákoli jiná analýza na úrovni jádra. Pak je čas projít řetězcem PREROUTING. Dále se kontroluje, podle čeho dojde k přesměrování na další řetězec. Pokud paket nemá adresu, jako například v TCP, je odeslán do řetězce FORWARD. V případech, kdy existuje konkrétní adresa, následuje řetězec INPUT a poté k těm démonům nebo službám, pro které je určen. Odezva od nich musí také projít několika řetězci, například OUTPUT. Posledním článkem v tomto procesu je řetězec POSTROUTING.

Nyní něco málo o řetězech. Každá z nich obsahuje několik tabulek. Jejich jména se mohou opakovat, ale dílo to nijak neovlivňuje, protože nejsou vzájemně propojeny.

Tabulky zase obsahují několik pravidel. Pravidlo je v podstatě určitá podmínka, kterou musí kontrolovaný balík splňovat. V závislosti na výsledku se na obalu provede určitá akce.

Při průchodu všemi fázemi sítě tak paket postupně navštěvuje všechny řetězce a v každém se kontroluje, zda splňuje podmínku určitého pravidla. Pokud není tabulka vytvořena uživatelem, pak se provede výchozí akce, v podstatě ACCEPT, která vám umožní pokračovat v pohybu vpřed, nebo DROP, která paket zastaví.

Přednastavené řetězy jsou v následujících kategoriích:

  • PREROUTING. Prvotní zpracování všech příchozích balíků.
  • VSTUP. To zahrnuje pakety, které jsou odesílány přímo do místního počítače.
  • VPŘED. Používá se pro „přepravní pakety“, které následují podle směrovací tabulky.
  • VÝSTUP. Používá se pro odchozí pakety.
  • POSTROUTING. Poslední fáze průchodu odchozího paketu všemi řetězci.

Kromě vestavěných řetězců mohou uživatelé vytvářet nebo mazat své vlastní.

Zobrazení a správa pravidel IPTables

Jak již bylo zmíněno dříve, všechny řetězce obsahují určité podmínky pro balíčky. Nástroj IPTables se používá k prohlížení a správě pravidel IPTables. Každé jednotlivé pravidlo je řádek se sadou podmínek pro pakety a také akce s nimi v závislosti na výsledku.

Formát příkazu vypadá takto: iptables [-t název zpracovávané tabulky] příkaz s názvem [kritéria] [prováděná akce].

Cokoli v něm obsažené lze vynechat. Pokud se jedná o parametr určující tabulku, použije se filtr. Chcete-li použít konkrétní název, musíte přidat přepínač -t. Volaný příkaz umožňuje volat požadovaná akce, například přidat pravidlo IPTables nebo jej odebrat. „Kritéria“ označují parametry, podle kterých bude výběr probíhat. A v „akci“ je akce, kterou je potřeba provést, pokud je podmínka splněna.

Příkazy pro vytváření a prohlížení pravidel IPTables

  • Připojit (-A). Při použití příkazu je určen řetězec a tabulka, do které chcete přidat. nutné pravidlo. Hodnota týmu je, že to dělá na konci seznamu.
  • Smazat (-D). Jak název napovídá, smaže pravidlo. Jako parametry můžete zadat jak celé jméno, tak i čísla k nim přiřazená.
  • Přejmenovat-řetězec (-E). Změní název řetězce. Příkaz specifikuje starý název a poté nový název.
  • Propláchnutí (-F). Vymazání absolutně všech pravidel určité tabulky.
  • Vložit (-I). Tento příkaz vloží požadované pravidlo na místo označené číslem.
  • Seznam(-L). Zobrazit pravidla iptables. Pokud není zadána žádná tabulka, použije se výchozí filtr.
  • Zásady (-P). Použije se výchozí politika pro zadaný řetězec.
  • Vyměňte (-R). Změní pravidlo pod zadaným číslem na požadované.
  • Delete-chain (-X). Tento příkaz odstraní všechny vytvořené řetězce. Zůstanou pouze ty předinstalované.
  • Nula (-Z). Vynuluje čítače přenesených dat v zadaném řetězci.

Něco málo o parametrech výběru paketů

Lze je rozdělit do tří typů:

  • Obecná kritéria. Mohou být specifikovány pro jakákoli pravidla. Nevyžadují připojení speciálních rozšíření a modulů a také nezávisí na tom, jaký protokol bude použit.
  • Ne obecná kritéria. Jsou dostupné při použití obecných kritérií.
  • Explicitní. Chcete-li použít tento typ, musíte se připojit speciální pluginy pro síťový filtr. Kromě toho musíte v příkazu použít přepínač -m.

Stojí za to mluvit trochu o často se vyskytujících parametrech používaných při analýze paketů:

  • Protokol (-p). Označuje protokol.
  • Zdroj(-y). Tento parametr určuje IP adresu zdroje, ze kterého paket přišel. Lze jej specifikovat několika způsoby. Konkrétní hostitel, adresa nebo celá podsíť.
  • Místo určení (-d). Cílová adresa balíku. Stejně jako předchozí lze popsat několika způsoby.
  • V rozhraní (-i). Určuje příchozí rozhraní balíčku. Používá se hlavně pro NAT nebo na systémech s více rozhraními.
  • Out-rozhraní (-o). Odchozí rozhraní.

Několik příkladů

Chcete-li zobrazit pravidla nat IPTables? musíte použít příkaz - „iptables -L -t nat“. Zjistěte obecný stav brány firewall - „iptables -L -n -v“. Kromě toho vám tento příkaz umožňuje zobrazit pravidla IPTables dostupná v celém systému. Vložte pravidlo na určité místo v tabulce, například mezi první a druhý řádek - „iptables -I INPUT 2 -s 202.54.1.2 -j DROP“. Pak se podívejte, zda bylo přidáno - “iptables -L INPUT -n --line-numbers”.

Blokovat konkrétní adresu, například 12.12.12.12 - „iptables -A INPUT -s 12.12.12.12 -j DROP“.

Pomoc s iptables - „man iptables“. Pokud potřebujete informace o konkrétní tým- “iptables -j DROP -h”.

Na závěr

Příkazy IPTables používejte opatrně, protože nesprávné nastavení(nevědomky) může vést k selhání sítě nebo úplnému selhání. Proto se vyplatí před konfigurací podrobně prostudovat manuály a pokyny. V šikovných rukou lze IPTables proměnit ve spolehlivého ochránce síťových připojení. Správci systému aktivně používat nástroj k vytváření spojení izolovaná od neoprávněného přístupu.

Iptables je primárně zodpovědný za filtrování paketů. Ruční nastavení Iptables je docela dost není snadný úkol. Nečekejte, že na to přijdete „ve spěchu“. Naštěstí existuje mnoho nástrojů, které vám mohou pomoci, pokud jste ještě nepřišli na iptables, ale naléhavě potřebujete zabezpečit systém: fwbuilder, firestarter, guarddog, arno firewall - v podstatě se jedná o GUI pro iptables. Neexistuje jednoznačná odpověď, co je lepší. Volba je na vás. Dnešní článek je však věnován konkrétně iptables a je rozdělen do dvou částí: teorie a praxe. Ti nejnetrpělivější mohou rovnou absolvovat praktickou část, i když tento přístup nelze doporučit.

Pozor! Všechny akce s iptables jsou prováděny jménem privilegovaného uživatele!

Teorie

Formát záznamu iptables iptables [-t tabulka] [příkaz] [akce] Příklad: iptables -t filter -A INPUT ACCEPT

Akce

  • ACCEPT - Přijměte balíček
  • DROP - Zahození paketu
  • DNAT - Převést cílovou adresu
  • SNAT - Změna odchozí IP adresy v hlavičce paketu
  • LOG - Logování paketů a událostí
  • MARK - Nastavení značky na balík
  • MASQUERADE - Změna odchozí IP adresy v hlavičce paketu (rozdíl od SNAT - práce s dynamickými IP adresami)
  • QUEUE – Zařadit do fronty paket ke zpracování
  • PŘESMĚROVAT – Přesměruje paket/tok na jiný port
  • REJECT - Zahoďte paket + upozorněte na to vzdálený systém. že její balíček byl odmítnut
  • RETURN - Zastaví paket v pohybu po aktuálním řetězci a vrátí jej do volajícího řetězce

Týmy

  • -A - Přidat pravidlo do řetězce
  • -D - Odstraňte pravidlo z řetězu
  • -R - Nahradit jedno pravidlo jiným
  • -I - Vložit nové pravidlo
  • -L - Seznam existujících pravidel
  • -F - Resetovat pravidla
  • -Z - Resetuje čítače v daném řetězci
  • -N - Vytvořte nový řetězec s daným názvem
  • -X - Smazat řetězec
  • -P - Nastaví výchozí politiku pro vybraný řetězec
  • -E - Přejmenovat uživatelský řetězec

Kritéria (obecná)

  • -p - Zadejte typ protokolu
  • -s - IP adresa zdroje paketu
  • -d - IP adresa příjemce paketu
  • -j - Určete akci pro pravidlo
  • -i - Rozhraní, ze kterého byl paket přijat
  • -o - Zadejte název výstupního rozhraní
  • -f - Rozšíří pravidlo na všechny fragmenty paketu

Kritéria TCP:

  • –tcp-flags – Definuje masku a příznaky paketu

Kritéria UDP:

  • –sport - Port, ze kterého byl paket odeslán
  • –dport - Port, na který je paket adresován

Více podrobností v man iptables

Praxe

Zobrazit aktuální konfiguraci

$ sudo iptables -L Řetěz VSTUP (zásady ACCEPT) cíl prot opt ​​​​zdroj cíl Řetězec VPŘED (zásady ACCEPT) cíl prot opt ​​​​zdroj cíl Řetězec VÝSTUP (zásady ACCEPT) cíl prot opt ​​​​zdroj cíl

Pokud vidíte něco takového, znamená to, že váš firewall ještě není nakonfigurován a umožňuje vše. Pojďme situaci napravit.

Nastavení výchozí zásady

  • iptables -P INPUT DROP - blokování příchozích paketů
  • iptables -P OUTPUT ACCEPT - povolí odchozí pakety
  • iptables -P FORWARD DROP - zpracování paketů, které dorazily na server z jiného počítače a čekají na další předání. V příkladu je blokován. V tomto případě budete muset přidat pravidla pro důvěryhodné počítače.

Protože jsou příchozí INPUT pakety blokovány, napíšeme následující pravidlo:

$ sudo iptables -A INPUT -m stát --stát SOUVISEJÍCÍ,USTALOVĚNÝ -j PŘIJÍMAT

To umožní přijímat pakety z dříve vytvořeného připojení a přijímat nové pakety generované tímto připojením.

Nebo uveďte typ protokolu:

$ sudo iptables -A INPUT -p Stav TCP -m --stav ESTABLISHED,RELATED -j ACCEPT $ sudo iptables -A INPUT -p UDP -m state --state ESTABLISHED,RELATED -j ACCEPT

Nyní místní rozhraní:

$ sudo iptables -A INPUT -i lo -j PŘIJÍMAT

  • NEW - data zahajující nové připojení.
  • ESTABLISHED - paket přicházející z již vytvořeného spojení.
  • SOUVISEJÍCÍ- nový balíček dat, ale vzniklých starým navázaným spojením
  • NEPLATNÉ - takže je to jasné

$ sudo iptables-save > /etc/iptables.up.rules

Povolte tato pravidla:

$sudo iptables-restore< /etc/iptables.up.rules

A vidíte rozdíl:

$sudo iptables -L

Spusťte iptables při startu systému:

V adresáři /etc/init.d vytvořte soubor s názvem iptables

$ sudo touch /etc/init.d/iptables

Píšeme do něj následující:

#!/bin/sh /sbin/iptables-restore< /etc/iptables.up.rules

Vytvoření spustitelného souboru iptables:

$ sudo chmod +x /etc/init.d/iptables

Přidejte jej do automatického spouštění

$ sudo update-rc.d -n výchozí hodnoty iptables

Po připojení k síti spusťte iptables:

$ sudo echo "#! /sbin/iptables-restore" > /etc/network/if-up.d/iptables.up.rules $ sudo iptables-save >> /etc/network/if-up.d/iptables. up.rules $ sudo chmod +x /etc/network/if-up.d/iptables.up.rules

Poznámka: kdykoli můžete zkontrolovat, zda jsou vaše pravidla načtena, jednoduše zadáním iptables-save jako root

U archlinuxu se ukládání pravidel iptables provádí příkazem:

$ sudo rc.d uložit iptables

Zdravím všechny! V pokračování zveřejňuji tento praktický článek o síť Linuxový filtr . V článku budu uvažovat typické příklady implementace pravidel iptables v Linuxu a také zvažte způsoby uložení vytvořené konfigurace iptables.

Nastavení netfilter/iptables pro pracovní stanici

Začněme základním úkolem - implementace linuxového firewallu na desktopu. Ve většině případů není na desktopových distribucích Linuxu naléhavě potřeba používat firewall, protože takové distribuce neprovozují žádné služby, které naslouchají síťové porty, ale z důvodu prevence by nebylo nadbytečné organizovat ochranu. Protože jádro také není imunní vůči dírám. Takže máme Linux s eth0, bez ohledu na DHCP nebo staticky...

Chcete-li nakonfigurovat firewall Snažím se dodržovat následující zásady: zakázat vše a pak to, co je třeba povolit. To je to, co budeme dělat v tomto případě. Pokud máte čerstvě nainstalovaný systém a nezkoušeli jste jej nakonfigurovat přepěťová ochrana, pak budou pravidla vypadat nějak takto:

Netfilter:~# iptables -L Řetěz VSTUP (přijetí zásad) cílová ochrana opt ​​zdroj cíl Řetězec VPŘED (přijetí zásad) cílová ochrana zdroj cílový řetězec VÝSTUP (přijetí zásad) cílová optická ochrana zdroj cíl

To znamená, že výchozí politika pro filtrační tabulky ve všech řetězcích - PŘIJMOUT a neexistují žádná jiná pravidla, která by cokoli zakazovala. Takže nejprve zakázat VŠECHNO, včetně balíčků(ani se o to nepokoušejte na dálku, okamžitě ztratíte přístup):

Netfilter:~# iptables -P INPUT DROP netfilter:~# iptables -P OUTPUT DROP netfilter:~# iptables -P FORWARD DROP

Pomocí těchto příkazů nainstalujeme POKLES výchozí. To znamená, že každý paket, který nemá výslovně povoleno pravidlo, je automaticky zahozen. Protože jsme zatím nenastavili jediné pravidlo, budou odmítnuty všechny pakety, které dorazí na váš počítač, a také ty, které se pokusíte odeslat do sítě. Jako ukázku můžete zkusit pingnout váš počítač přes rozhraní zpětné smyčky:

Netfilter:~# ping -c2 127.0.0.1 PING 127.0.0.1 (127.0.0.1) 56 (84) bajtů dat. ping: sendmsg: Operace není povolena ping: sendmsg: Operace není povolena --- statistika pingu localhost --- 2 přenesené pakety, 0 přijatých, 100% ztráta paketů, čas 1004 ms

Ve skutečnosti se jedná o zcela nefunkční síť a to není moc dobré, protože... někteří démoni používají pro vzájemnou komunikaci rozhraní zpětné smyčky, které po provedení akcí již nefunguje. To může narušit provoz podobné služby. Proto je to v první řadě nutné povolme přenos paketů přes rozhraní příchozí smyčky a odchozí rozhraní zpětné smyčky v tabulkách INPUT(aby bylo možné přijímat odeslané balíčky) a VÝSTUP(pro možnost posílat balíčky) podle toho. Takže určitě udělejte:

Netfilter:~# iptables -A INPUT -i lo -j ACCEPT netfilter:~# iptables -A OUTPUT -o lo -j ACCEPT

Poté bude ping na localhost fungovat:

Netfilter:~# ping -c1 127.0.0.1 PING 127.0.0.1 (127.0.0.1) 56 (84) bajtů dat. 64 bajtů od 127.0.0.1 (127.0.0.1): icmp_seq=1 ttl=64 čas=0,116 ms --- 127.0.0.1 statistika ping --- 1 odeslaný paket, 1 přijatý, 0 % ztráta paketu, čas 116 ms rtt min/ průměr/max/mdev = 0,116/0,116/0,116/0,116 ms

Pokud nejste příliš fanatičtí ohledně nastavení brány firewall, můžete povolit, aby protokol ICMP fungoval:

Netfilter:~# iptables -A INPUT -p icmp -j PŘIJÍMAT netfilter:~# iptables -A OUTPUT -p icmp -j ACCEPT

Bylo by bezpečnější zadat následující podobný příkaz iptables:

Netfilter:~# iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT netfilter:~# iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT netfilter:~# iptables -A OUTPUT -p icmp -j PŘIJÍMAT

Tento příkaz umožní, aby typy paketů ICMP byly echo request a echo response, což zlepší zabezpečení.

Vědět, že náš počítač není infikován (opravdu ano?) a naváže pouze zabezpečená odchozí spojení. A také to vědět bezpečná spojení- jedná se o sloučeniny z tzv. efemérní rozsah portů, který je specifikován jádrem v souboru /proc/sys/net/ipv4/ip_local_port_range, Může povolit odchozí spojení z těchto zabezpečených portů:

Netfilter:~# cat /proc/sys/net/ipv4/ip_local_port_range 32768 61000 netfilter:~# iptables -A OUTPUT -p TCP --sport 32768:61000 -j ACCEPT netfilter:~# iptables -A OUTPUT -p UDP sport 32768:61000 -j PŘIJMOUT

Pokud nejste paranoidní ohledně omezování odchozích paketů, můžete se omezit na jeden příkaz iptables umožňující všechna odchozí připojení op na všechny protokoly a porty:

Netfilter:~# iptables -A OUTPUT -j ACCEPT netfilter:~# # nebo jednoduše nastavte výchozí zásadu ACCEPT pro řetězec OUTPUT netfilter:~# iptables -P OUTPUT ACCEPT

Dále, vědět, že v netfilter síťová připojení má 4 stavy ( NOVÝ,ZALOŽENOSOUVISEJÍCÍ aNEPLATNÝ) a nová odchozí spojení s místní počítač(se stavem NEW) jsme povolili v posledních dvou příkazech iptables, což již je navázaná spojení a další mají stavy ZALOŽENO aSOUVISEJÍCÍ podle toho a také s vědomím toho místní systém projít , můžeme povolit pouze těm paketům TCP a UDP, které byly vyžádány místními aplikacemi, aby se dostaly do našeho počítače:

Netfilter:~# iptables -A INPUT -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT netfilter:~# iptables -A INPUT -p UDP -m state --state ESTABLISHED,RELATED -j ACCEPT

To je vlastně všechno! Pokud nějaký software stále funguje na ploše síťová služba, pak je třeba přidat vhodná pravidla pro příchozí připojení a pro odchozí připojení. Například, pro provoz ssh serveru který přijímá a odesílá požadavky na TCP portu 22, musíte přidat následující pravidla iptables:

Netfilter:~# iptables -A INPUT -i eth0 -p TCP --dport 22 -j PŘIJÍMAT netfilter:~# iptables -A OUTPUT -o eth0 -p TCP --sport 22 -j PŘIJÍMAT

Tito. pro jakoukoli službu je třeba přidat jedno pravidlo do řetězců INPUT a OUTPUT, které umožňuje příjem a odesílání paketů pomocí tohoto portu pro konkrétní síťové rozhraní (pokud neurčíte rozhraní, bude povoleno přijímat/odesílat pakety na libovolném rozhraní).

Konfigurace netfilter/iptables pro umožnění připojení více klientů k jednomu připojení.

Pojďme se nyní podívat na naše Linux jako brána pro lokální síť do externí Internetová síť . Předpokládejme to rozhraní eth0 je připojeno k internetu a má IP 198.166.0.200 a rozhraní eth1 je připojeno k místní síti a má IP 10.0.0.1. Ve výchozím nastavení v Linuxové jádro přeposílání paketů prostřednictvím řetězce FORWARD(balíčky, které nejsou určeny pro místní systém) je zakázáno. Chcete-li povolit tuto funkci, musíte v souboru nastavit hodnotu 1 :

Netfilter:~# echo 1 > /proc/sys/net/ipv4/ip_forward

Na přeposílání paketů uložen po restartu, musí být v souboru /etc/sysctl.conf odkomentujte (nebo jen přidejte) řádek net.ipv4.ip_forward=1.

Máme tedy externí adresu (198.166.0.200), v lokální síti existuje řada hypotetických klientů, kteří mají a odesílají požadavky na externí síť. Pokud tito klienti odesílají požadavky do externí sítě přes bránu „tak jak jsou“, bez konverze, pak na ně vzdálený server nebude schopen odpovědět, protože zpáteční adresa bude příjemce z "místní sítě". Aby toto schéma správně fungovalo, je nutné nahradit adresu odesílatele externí adresou Brána pro Linux. Toho je dosaženo prostřednictvím (masquerading) v , v .

Netfilter:~# iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT netfilter:~# iptables -A FORWARD -m conntrack --ctstate NEW -i eth1 -s 10.0.0.1/24 -j ACCEPT netfilter: ~# iptables -P FORWARD DROP netfilter:~# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Takže v pořadí shora dolů řešíme již navázaná spojení v řetěz VPŘED, filtrační tabulka, pak umožníme navazování nových spojení v řetěz VPŘED, filtrační tabulka, který přišel z rozhraní eth1 a ze sítě 10.0.0.1/24. Všechny ostatní pakety, které procházejí VPŘED řetěz- odhodit. Dále provedeme maskování (záměna adresy odesílatele paketů v hlavičkách) všech paketů pocházejících z rozhraní eth0.

Poznámka. Existuje určitá obecné doporučení: použijte pravidlo -j MASQUERADE pro rozhraní s dynamicky získanou IP (například přes DHCP od poskytovatele). Se statickou IP může být -j MASQUERADE nahrazeno podobným -j SNAT -to-source IP_interface_eth0. Navíc si SNAT dokáže „vzpomenout“ na navázaná spojení v případě krátkodobé nedostupnosti rozhraní. Srovnání MASQUERADE a SNAT v tabulce:

Kromě zadaných pravidel můžete také přidat pravidla pro filtrování paketů určených pro místního hostitele – jak je popsáno v. To znamená, že přidejte pravidla pro zákaz a povolení pro příchozí a odchozí připojení:

Netfilter:~# iptables -P INPUT DROP netfilter:~# iptables -P OUTPUT DROP netfilter:~# iptables -A INPUT -i lo -j ACCEPT netfilter:~# iptables -A OUTPUT -o lo -j ACCEPT netfilter:~# iptables -A INPUT -p icmp --icmp-type 0 -j PŘIJÍMEJTE netfilter:~# iptables -A INPUT -p icmp --icmp-type 8 -j PŘIJÍMEJTE netfilter:~# iptables -A VÝSTUP -p icmp -j ACCEPT netfilter:~# cat /proc/sys/net/ipv4/ip_local_port_range 32768 61000 netfilter:~# iptables -A OUTPUT -p TCP --sport 32768:61000 -j ACCEPT netfilter:~# iptables -A OUTPUT -p UDP sport 32768:61000 -j ACCEPT netfilter:~# iptables -A INPUT -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT netfilter:~# iptables -A INPUT -p UDP -m state --state ESTABLISHED,RELATED -j PŘIJÍMAT

V důsledku toho, pokud se jeden z hostitelů místní sítě, například 10.0.0.2, pokusí kontaktovat jednoho z hostitelů Internetu, například 93.158.134.3 (ya.ru), pomocí , jejich zdrojová adresa bude nahrazena externí adresa brány v řetězci POSTROUTING tabulka nat, tedy odchozí IP 10.0.0.2 bude nahrazena 198.166.0.200. Z pohledu vzdáleného hostitele (ya.ru) to bude vypadat, jako by s ním přímo komunikovala samotná brána. Když vzdálený hostitel zahájí přenos dat odezvy, bude je adresovat konkrétně bráně, tedy 198.166.0.200. Na bráně se však cílová adresa těchto paketů změní na 10.0.0.2, poté budou pakety odeslány skutečnému příjemci v místní síti. Pro takové inverzní konverzežádný dodatečná pravidla není třeba specifikovat - udělá to samé operace MASQUERADE, který si pamatuje, který hostitel v místní síti odeslal požadavek a který hostitel potřebuje vrátit přijatou odpověď.

Poznámka: nejlépe mlčky přijato, před všemi příkazy iptables jasné řetězce, ke kterým budou přidána pravidla:

Netfilter:~# iptables -F CHAIN_NAME

Poskytování přístupu ke službám na bráně

Předpokládejme, že na naší bráně běží určitá služba, která by měla reagovat na požadavky přicházející z internetu. Řekněme, že to funguje na nějakém TCP portu nn. Chcete-li poskytnout přístup k této službě, musíte ji upravit filtrační tabulka v řetězci INPUT (aby bylo možné přijímat síťové pakety adresované místní službě) a tabulky filtrů v řetězci OUTPUT (aby bylo možné reagovat na příchozí požadavky).

Máme tedy, která maskuje (nahrazuje adresu odesílatele externí) pakety do externí sítě. A umožňuje přijímat všechna navázaná spojení. Poskytování přístupu ke službě bude probíhat pomocí následujících povolovacích pravidel:

Netfilter:~# iptables -A INPUT -p TCP --dport nn -j PŘIJÍMAT netfilter:~# iptables -A OUTPUT -p TCP --sport nn -j ACCEPT

Tato pravidla povolují příchozí TCP spojení na port nn a odchozí TCP spojení z portu nn. Kromě toho můžete přidat další omezující parametry, například povolit příchozí připojení pouze z externí rozhraní eth0 (klíč -i eth0) atd.

Poskytování přístupu ke službám v místní síti

Předpokládejme, že v naší lokální síti je nějaký hostitel s IP X.Y.Z.1, který musí reagovat na síťové požadavky z externí sítě na TCP portu xxx. Aby při kontaktu vzdáleného klienta došlo ke správné odpovědi služby z lokální sítě na externí IP na portu xxx, je nutné předat požadavky přicházející na externí IP port xxx na odpovídající hostitel v místní síti. Toho je dosaženo úpravou adresy příjemce v paketu přicházejícím na zadaný port. Tato akce se nazývá DNAT a je aplikována v řetězci PREROUTING v tabulce nat. A také umožnit průchod těchto paketů v řetězci FORWARD ve filtrační tabulce.

Opět se vydejme cestou. Máme tedy, která maskuje (nahrazuje adresu odesílatele externí) pakety do externí sítě. A umožňuje přijímat všechna navázaná spojení. Poskytování přístupu ke službě bude probíhat pomocí následujících povolovacích pravidel:

Netfilter:~# iptables -t nat -A PŘEDMĚROVÁNÍ -p tcp -d 198.166.0.200 --dport xxx -j DNAT --to-destination X.Y.Z.1 netfilter:~# iptables -A FORWARD -i eth0 -p tcp.d X.Y. 1 --dport xxx -j PŘIJMOUT

Ukládání zadaných pravidel při restartu

Všechna pravidla zadaná v konzole budou resetována na původní stav(přečteno - smazáno). Aby se uložit všechny zadané příkazy iptables, existuje několik způsobů. Jedním z nich je například nastavení všech pravidel brány firewall v inicializačním souboru. Ale tato metoda Existuje významná nevýhoda: celé časové období od spuštění síťového subsystému do spuštění poslední služba a dále od skriptu rc.local ze SystemV nebude operační systém chráněn. Představte si situaci, například když se nějaká služba (například NFS) spustí jako poslední a při jejím spuštění a před spuštěním skriptu rc.local dojde k nějakému selhání. Proto se rc.local nikdy nespustí a náš systém se změní v jednu velkou díru.

Proto většina nejlepší nápad vůle inicializovat pravidla netfilter/iptables při načítání. Debian na to má skvělý nástroj – adresář /etc/network/if-up.d/, do kterého můžete umístit skripty, které se spustí při spuštění sítě. Jsou tam i týmy iptables-save A iptables-restore, které uloží, vytvoří výpis pravidel netfilter z jádra a podle toho obnoví pravidla z jádra.

Tak, Algoritmus ukládání iptables je přibližně následující:

  • Firewall nakonfigurujeme tak, aby vyhovoval vašim potřebám
  • pomocí příkazu vytvořte výpis vytvořených pravidel iptables-save > /etc/iptables.rules
  • vytvořit importovat skript výpis vytvořený při spuštění sítě (v adresáři /etc/network/if-up.d/) a nezapomeňte jej nastavit jako spustitelný:
# cat /etc/network/if-up.d/firewall #!/bin/bash /sbin/iptables-restore< /etc/iptables.rules exit 0 # chmod +x /etc/network/if-up.d/firewall

Byl přijat výpis pravidel příkaz iptables-save Má textový formát a je tedy vhodný pro úpravy. Výstupní syntaxe příkazu iptables-save je následující:

# Generováno iptables-save v1.4.5 dne So 24. prosince 22:35:13 2011 *filter:INPUT ACCEPT :FORWARD ACCEPT ....... # comment -A INPUT -i lo -j ACCEPT -A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT ........... -A FORWARD -j REJECT COMMIT # Dokončeno So 24. prosince 22:35:13 2011 # Generováno iptables-save v1 .4.5 v So 24. prosince 22:35:13 2011 *surový ...... COMMIT

Řádky začínající na # - komentáře, řádky na * - toto je název tabulek mezi názvem tabulky a slovem SPÁCHAT obsahuje parametry předané příkazu iptables. Parametr COMMIT- označuje vyplnění parametrů pro výše uvedenou tabulku. Řádky začínající dvojtečkou definují řetězce, které obsahují tuto tabulku ve formátu:

:řetězová politika [pakety:bajty]

Kde řetěz- název řetězce, politika- výchozí zásada řetězce pro tuto tabulku a poté čítače paketů a bajtů v době provedení příkazu.

Na RedHat funkce úložiště příkazů iptables spuštěn při spuštění sítě a zastavení spustí soubor /etc/sysconfig/iptables. A správa tohoto souboru spočívá na démonu iptables.

Jako další možnost uložení pravidel můžete zvážit použití parametru nahoru v souboru /etc/network/interfaces s argumentem ve formě souboru obsahujícího příkazy iptables, které nastavují potřebná pravidla.

Sečteno a podtrženo

Pro dnešek to bude stačit. Složitější implementace firewallu určitě zveřejním v dalších článcích.

S pozdravem, McSim!




Nahoru