GNU/Linux >> Znalost Linux >  >> Linux

Jak na to:Linux General – IPTtables obecně

Úvod

IPTables je firewall, který je buď již nainstalován, nebo jej lze nainstalovat do kterékoli z našich linuxových distribucí pro naši cloudovou službu. IPTables se používá ke konfiguraci řetězců pravidel filtru paketů a vynucení vestavěných nebo uživatelem definovaných řetězců pravidel pro váš server. IPTables má hlavní součásti zahrnující Tabulky , Cíle a Možnosti .

Tabulky

Tabulky v IPTtables se používají k rozdělení paketů do jejich odpovídající kategorie. Řazení tabulky závisí na modulech, které váš systém nahrál, a na tom, kde se paket shoduje. Právě teď je k použití pět různých tabulek. Jsou to filtr , nat , mangle , raw a zabezpečení . Z velké části bude základní použití IPTtables zahrnovat pouze filtr stůl. Pokud děláte interní směrování nebo složitější networking, zaměříte se na používání i ostatních tabulek. Tato stránka bude přecházet pouze přes filtr typ pravidel.

filtr – Toto je základní tabulka, jak bylo zmíněno, a obvykle se jedná o výchozí tabulku. Tato tabulka se skládá z řetězců pravidel ACCEPT, FORWARD, OUTPUT.

nat – Tato tabulka se používá pro pakety, které budou vytvářet nová spojení. Jako směrování veřejné IP na privátní IP. Skládá se z řetězců pravidel PREROUTING, POSTROUTING a OUTPUT.

mangle – Tato tabulka se používá pro změnu způsobu zpracování paketů. Skládá se z řetězců pravidel INPUT, FORWARD, OUTPUT, PREROUTING a POSTROUTING.

syrové – Tato tabulka se používá pro konfiguraci výjimek ze sledování připojení s cílem NOTRACK. Skládá se z PREROUTING a OUTPUT.

zabezpečení – Tato tabulka je pro pravidla MAC (Mandatory Access Control). Skládá se z INPUT, FORWARD a OUTPUT

Cíle

Cíle jsou definovány jako hodnota pro řetězec pravidel, který vytváříte. Mohou obsahovat hodnoty ACCEPT , DROP , FRONTA nebo NÁVRAT . Tyto hodnoty říkají pravidlu, jak má pokračovat s paketem, který odpovídá pravidlu.

PŘIJMOUT – To je docela jednoduché a znamená to, že paket projde na váš server.

DROP – Také docela jednoduché v tom, že to znamená odmítnout paket procházet na váš server.

FRONTA – Tento cíl znamená předat paket do uživatelského prostoru, takže uživatel může definovat, co s ním má dělat.

NÁVRAT – Tento cíl zastaví zpracování aktuálního řetězce a řekne mu, aby pokračoval ve zpracování podle dalšího pravidla předchozího řetězce.

Možnosti

Pro použití IPTtables je k dispozici spousta možností. Uvedeme některé z nejběžnějších, které uvidíte.

-A, –append – Připojí vaše pravidlo k řetězci.

-L, –list [řetězec] – Zobrazí seznam všech pravidel v řetězci, který určíte. Pokud řetězec nedodáte, zobrazí seznam všech pravidel.

-F, –flush [chain] – Odstraní všechny řetězce a pravidla v daném řetězci. Pokud řetězec nezadáte, odstraní se všechna aktuálně spuštěná pravidla a řetězce.

-h – Poskytuje výstup všech možností, které můžete provést.

-p, –protocol protokol – Toto je protokol paketů. Mohou to být TCP, UDP, UDPlite, ICMP, ESP, AH, SCTP, všechny, číselné ekvivalenty těmto, nebo začínají znakem ! invertovat kontrolu protokolu.

-s, –source address[/mask][,…] – Zdrojová adresa. Může to být IP, rozsah IP přes masku sítě, název sítě nebo název hostitele.

-d, –destination address[/mask][,…] – Cílová adresa. Stejný formát jako –s.

-m, –match shoda – Rozšiřující modul, který testuje vlastnost.

–dport[s] [port# ][,…] – Port, který hledáte. –dports se používá k určení více než jednoho, které jsou odděleny čárkou. Při použití –dports nezapomeňte nastavit -m jako multiport. Chcete-li zadat rozsah portů, použijte :jako například 1000:1100, což by byly porty 1000-1100.

-j, –jump target – Toto je volba, která vám umožňuje určit cíl pro vaše pravidlo.

-i, –in-interface name – Určuje rozhraní, na kterém má být paket přijat.

-o, –out-interface name – Určuje rozhraní, které paket ponechá zapnuté.

-v, –verbose – Způsobí, že příkaz list zobrazí názvy rozhraní, možnosti pravidel a jakékoli masky. Také zobrazuje čítače paketů a bajtů.

Použití a příklady

Zde si ukážeme základní použití a příklady. Typické pravidlo IPTables bude mít tendenci dodržovat tyto formáty. Ujistěte se, že všechna vaše pravidla jsou provedena nad COMMIT, protože se používá k ukončení tabulky. Pravidla pro jiný stůl se budou řídit vlastním koncem COMMIT.

Pro povolení zavedeného provozu:

-A INPUT -m shoda –stav ESTABLISHED,RELATED -j ACCEPT

Při použití by to bylo:

-A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT

Pro povolení konkrétních portů.

-A INPUT -p protokol -m shoda –dport port -j PŘIJÍMAT

Při použití by příklad byl:

-A INPUT -p tcp -m tcp –dport 80 -j PŘIJÍMAT

Nebo

-A INPUT -p tcp -m multiport –dports 80 443 -j ACCEPT

To by umožnilo průchod webového provozu na portu 80 (ve druhém příkladu také na portu 443). To není vše, co můžete udělat. Můžete také přidat následující příklady jako v níže uvedených příkladech.

-A INPUT -s IPADDR -p tcp -m tcp –dport 22 -j PŘIJÍMAT

To umožňuje pouze IP adresu (IPADDR ), které zadáte na svém portu 22 (ssh.) Můžete použít jakoukoli formu IP adres, kterou umožňuje volba -s.

-A INPUT -p tcp -m tcp –dport 22 -j DROP

V návaznosti na výše uvedený příklad to zruší veškerý provoz TCP putující na váš port SSH. Je dobrým pravidlem mít všechna pravidla DROP vždy na samém konci seznamu pravidel ACCEPT v řetězci. Například:

-A VSTUP … -j PŘIJÍMAT

-A VSTUP … -j PŘIJÍMAT

-A VSTUP … -j PŘIJÍMAT

-A INPUT … -j DROP

-A VPŘED … -j PŘIJMOUT

-A VPŘED … -j PŘIJMOUT

-A VPŘED … -j PŘIJMOUT

-A VPŘED … -j DROP

-A VÝSTUP … -j PŘIJÍMAT

-A VÝSTUP … -j PŘIJÍMAT

-A VÝSTUP … -j PŘIJÍMAT

-A VÝSTUP … -j POKLES

Můžete také definovat cíle (jako ACCEPT nebo DROP) v horní části vašich IPTtables pro výchozí chování. Když se jedná o novou instalaci IPTables, vždy uvidíte výchozí chování (definované nahoře, kde jsou uvedeny INPUT, FORWARD a OUTPUT) jako ACCEPT. Dobrým pravidlem pro zabezpečení je změnit jej na DROP a vytvořit pravidla pouze pro porty nebo provoz, které chcete povolit. Změňte jej však pouze v případě, že jste si jisti, že jste udělali výjimky, které potřebujete.

Také v horní části tabulky můžete definovat své vlastní cíle. Řekněme, že máte v horní části IPT tabulek následující:

*filtr

:VSTUP DROP [0:0]

:PÁD VPŘED [0:0]

:POPAD VÝSTUPU [0:0]

PŘIPOJIT SE

Nyní, když jsme vše zablokovali, začněme s přidáváním vlastních cílů, jako je:

*filtr

:VSTUP DROP [0:0]

:PÁD VPŘED [0:0]

:POPAD VÝSTUPU [0:0]

:APP – [0:0]

:MyNewTarget – [0:0]

PŘIPOJIT SE

Nyní můžete vytvořit vlastní řetězec pravidel typu jako níže.

*filtr

:VSTUP DROP [0:0]

:PÁD VPŘED [0:0]

:POPAD VÝSTUPU [0:0]

:APP – [0:0]

:MyNewTarget – [0:0]

-A APP -p tcp -m multiport –dports 30:40,50:80 -j PŘIJÍMAT

-A INPUT -s IPADDR -j MůjNovýCíl

-A MyNewTarget -j APP

PŘIPOJIT SE

Nyní, co jsme udělali výše, je vytvoření nových cílů, APP a MyNewTarget a přiřadit jim možnosti a cíle. Poslední pravidlo (nad COMMIT) dělá, pokud připojení pochází z vaší zdrojové IP a pokouší se zasáhnout porty 30-40 nebo 50-80, povolte to! Vše je definováno v řetězci výše. Tato úroveň přizpůsobení není skutečně potřeba, pokud nepoužíváte více hostitelů nebo nepoužíváte porty, které se opakujete a chcete více zkratky nebo „zkratky“ pro psaní pravidel. Například jakékoli nové pravidlo, které potřebujete, pocházející z této zdrojové IP adresy, můžete nyní použít pouze MyNewTarget.

Celkově vzato, IPTables poskytuje mnoho přizpůsobení pravidel a umožňuje vám zacházet s tím, jak váš server zpracovává příchozí, odchozí a interní provoz. Některá pravidla mohou být matoucí a těžko dosažitelná, ale není pochyb o tom, jak užitečná jsou pro stabilitu serveru.


Linux
  1. Jak používat BusyBox na Linuxu

  2. Jak používám cron v Linuxu

  3. Jak zablokovat IP adresu na serveru Linux

  1. Jak zablokovat IP adresu na serveru Linux

  2. Linux – směrování přes Iptables?

  3. Linux IPTables:Jak přidat pravidla brány firewall (s příkladem Allow SSH)

  1. Jak nainstalovat Python na Linux

  2. Jak nainstalovat Javu na Linux

  3. Linux OS Service „iptables“