25+ Nejběžnější příkazy iptables s příklady

Pokud používáte Linux, máte spoustu možností, jak své zařízení ochránit. Dodává se s iptables, nástrojem brány firewall příkazového řádku, který nabízí flexibilitu a vynikající ochranu.

Protože se však jedná o nástroj příkazového řádku, vyžaduje mírnou křivku učení.

Takže pokud jste správce systému nebo se učíte Linux, jste na správném místě, když projdeme běžné příkazy iptables s příklady.

Co je to iptables?

iptables je softwarový firewall vestavěný do Linuxu. Umožňuje uživatelům Linuxu vytvářet nebo definovat zásady, které přímo i nepřímo ovlivňují internetový provoz.

To znamená, že můžete použít iptables k vytvoření pravidel blokujících nebo povolujících provoz přes port, zdrojovou IP adresu, síťová rozhraní a další.

Jakmile definujete pravidla, musí jimi projít veškerý provoz. Takže například pro každé nové připojení iptables zkontroluje všechna předdefinovaná pravidla, která odpovídají připojení. Pokud ano, použije pravidlo na připojení. Pokud však neexistují žádná přidružená platná pravidla, bude implementováno výchozí pravidlo.

Chcete-li použít iptables, musíte použít následující příkaz.

$ iptables -L -n -v 

Zde jsou parametry následující:

  • -L je pro výpis všech pravidel.
  • -n způsobí, že numerický výstup nabídne rychlejší výkon.
  • -v pro zobrazení výstupu v podrobném formátu.

Jakmile spustíte příkaz iptables bez jakéhokoli parametru, vrátí následující výstup:

iptables v1.8.7 (nf_tables): no command specified

Try `iptables -h' or 'iptables --help' for more information.

Pokud dojde k chybě, například příkaz „iptables“ nebyl nalezen, musíte jej nainstalovat.

Chcete-li nainstalovat iptables do vaší distribuce Linuxu, spusťte následující příkaz.

$ sudo apt-get install iptables

Vrátí následující, protože je již předinstalovaný v mé distribuci Linuxu.

#output
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
iptables is already the newest version (1.8.7-1ubuntu5).
iptables set to manually installed.
0 upgraded, 0 newly installed, 0 to remove, and 35 not upgraded.

Co je Firewall?

Firewally jsou nejzákladnější formou ochrany systémů, sítí a osobních počítačů. Může být hardwarové nebo softwarové a spoléhat na to, že pravidla fungují správně.

Většina firewallů je vysoce přizpůsobitelná a umožňuje vám vytvářet nebo upravovat pravidla. Například pakety z internetu používají porty k tomu, aby se dostaly do systému, skenování založené na portech vám může pomoci je odfiltrovat. Kromě toho můžete také povolit nebo blokovat služby podle zdrojové IP adresy nebo síťového rozhraní.

Pokud používáte Linux, získáte přístup k vestavěným iptables. Můžete však také použít samostatný linuxový firewall, který vám pomůže v procesu ochrany vašeho systému.

Proč ke konfiguraci brány firewall potřebujete iptables?

Ale proč byste měli iptables vůbec používat? Koneckonců, existují dobré alternativní nástroje brány firewall příkazového řádku, jako je ufw a firewalld. Můžete také používat samostatné linuxové firewally, které se snadno používají a nabízejí více funkcí.

Co tedy dělá iptables tak přitažlivými při konfiguraci firewallu? Mezi důvody, proč jej používat, patří:

  • Nabízí vynikající flexibilitu hned po vybalení. Pravidla můžete nastavit na úrovni paketů.
  • Je poměrně snadné jej používat, jakmile víte, jak to funguje.
  • Blokujte nežádoucí provoz jednoduchým způsobem.
  • Přesměrujte pakety na alternativní IP adresu.
  • Chraňte své systémy před útoky DoS (Denial of Service).

A mnohem víc!

Pochopení architektury iptables a jejího vztahu k Netfilteru

Abychom správně porozuměli iptables, musíme se dozvědět o jejich architektuře. Za prvé nám to dá jasnou představu o různých komponentách iptables. Poté, co o každém z nich víme, můžeme je použít k sepsání pravidel brány firewall.

A když mluvíme o iptables, přichází na řadu také Netfilter. „Netfilter“ si můžete představit jako velkého bratra iptables. Staví na iptables a nabízí lepší sadu funkcí pro správu vašeho firewallu. Nicméně používá iptables jako jeden z prostředků k dosažení vynikajících schopností firewallu.

Iptables je rozhraní příkazového řádku pro háčky na úrovni jádra Netfilter. Tyto háčky mohou interagovat se síťovým zásobníkem Linuxu, což ovlivňuje pakety na nejhlubší úrovni.

Jak tedy vypadá architektura iptables:

Tabulky

Architektura iptables začíná tabulkami. Tyto tabulky se starají o organizaci pravidel. A každá tabulka je klasifikována na základě typu rozhodnutí, které činí. Jednodušeji řečeno, tabulka zjednodušuje celkové zpracování balíků připojením specifického způsobu zpracování balíků.

Mezi různé tabulky nabízené iptables patří:

  • Tabulka filtrů: Určuje typ rozhodnutí pro filtrování paketů. Zjednodušeně řečeno, určuje, zda má balíček dorazit na místo určení, nebo ne.
  • Tabulka NAT: Určuje typ rozhodnutí pro překlad adresy. Zde je směrování paketů určeno na základě sítí NAT. Pokud například balíček nemůže získat přístup k NAT, přeskočí a pokusí se vyhledat síť bez NAT.
  • Mangle table: Spravuje speciální potřeby zpracování balíčku. Můžete jej například nakonfigurovat tak, aby změnil informace v záhlaví paketu, jako jsou hodnoty TTL.
  • Raw tabulka: Raw tabulka vám umožňuje pilně pracovat se stavovým aspektem brány iptables. Pomocí tabulky můžete směrovat pakety na základě jejich „stavu“, než linuxové jádro začne sledovat jeho stav. Primárně se používá k označení paketů bez ohledu na to, zda je systém pro sledování připojení zpracovává nebo ne. Pokud paket není sledován, je nastaven na cíl NOTRACK.

Řetězy

A pak máme „řetězy“ uvnitř „stolů“.

Tyto řetězce zvládají hloubkovou kontrolu paketů v různých fázích své cesty. Můžete je například zkontrolovat, když dosáhne portu nebo síťového rozhraní. Tímto způsobem lze učinit rozhodnutí předtím, než je balíček uvolněn do systému.

Stejně jako stoly získáte i různé řetězy. Tyto zahrnují:

  • Řetězec PREROUTING: Zde pravidla zpracovávají právě příchozí pakety na síťovém rozhraní.
  • Řetěz INPUT: Pravidla uvedená v řetězci INPUT zpracovávají chování příchozího připojení. Po dokončení jsou předány místnímu procesu.
  • OUTPUT řetězec: OUTPUT řetězec se zabývá pakety, které procesy produkují.
  • Řetěz FORWARD: Řetěz FORWARD spravuje pakety, které nejsou určeny pro místní systémy. Je to nosič pro další určené systémy, jako je router.
  • POSTROUTING řetěz: Nakonec máme řetězec POSTROUTING, který se zabývá pakety, které se chystají opustit síťové rozhraní.
  Jak opravit, že se zobrazení příběhu Instagramu nezobrazuje

V každé tabulce nejsou k dispozici všechny řetězy. Například řetězec FORWARD je k dispozici pouze v tabulce mangle, filtru a zabezpečení. Podobně je řetěz POSTROUTING dostupný na mangle a nat (SNAT). Ve všech tabulkách je k dispozici pouze řetězec OUTPUT.

cílová

Nyní máme „cíl“. Jakmile balíček dorazí, prochází řetězci, aby zjistil, který popis pravidla nejlépe vyhovuje. Pokud odpovídá popisu pravidla, provede na jeho základě přidruženou akci a poté ji přesune do cíle – zpečetí osud paketu.

V mnoha případech paket neodpovídá žádnému popisu nebo sadě pravidel. A tam přichází na řadu výchozí politika, cíl.

Cíle mohou být ACCEPT, DROP a REJECT. Jedná se o koncové cíle, které rozhodují o osudu paketu.

  • ACCEPT: Přijímá pakety.
  • DROP: Zahodí paket, takže odesílatel nemůže zjistit, zda je systém přítomen nebo ne.
  • REJECT: Odmítne paket.

Existují také neukončující cíle, které se používají hlavně k ukládání informací o paketu.

Nejběžnější příkazy iptables s příklady

Než skočíte a začnete provádět příkaz iptables, ujistěte se, že:

  • Ke spouštění příkazů máte přístup pro správce. Pokud příkaz selže kvůli administrátorským právům, spusťte jej znovu s příkazem sudo před ním.
  • Článek není návodem, jak nakonfigurovat iptables na Ubuntu.
  • Použijeme příkaz iptables, který pracuje s IPv4. Pokud máte v úmyslu pracovat s IPv6, budete muset místo toho použít ip6tables.

Kontrola stavu iptables

Chcete-li zkontrolovat aktuální stav iptables, musíte spustit následující příkaz.

$ iptables -L -n -v
#output

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)

 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)

 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)

 pkts bytes target     prot opt in     out     source               destination

Výše uvedený výstup obsahuje mnoho informací. Naráží však také na neaktivní firewall. Je to proto, že v současné době jsou všechny řetězce nastaveny na ACCEPT a nemají žádná pravidla.

Pro aktivaci brány firewall budete muset začít přidávat pravidla.

Přidání pravidel do řetězce

Když přidáte pravidlo, je vždy připojeno k řetězci. Proto musíte použít volbu -A (Připojit). Jeho syntaxe je následující:

$ sudo iptables - A

Když jej však spustíte, vrátí následující:

iptables v1.8.7 (nf_tables): option "-A" requires an argument

Try `iptables -h' or 'iptables --help' for more information.

Argumenty, které můžete použít k přidání pravidel, jsou:

  • – i: Zkratka pro rozhraní. Zde můžete zmínit rozhraní, pro které přidáváte pravidla. Může to být ppp0, eth0 a tak dále.
  • – p: Zkratka pro protokol. Zde zmiňujete pravidlo používat síťový protokol k filtrování baličů. Můžete například říci ICMP, TCP, UDP atd. Pokud chcete, aby pravidlo fungovalo napříč všemi protokoly, uveďte jako hodnotu argumentu „all“.
  • – s: Následuje argument zdroje, který uvádí zdroj provozu (jako IP adresa nebo název hostitele)
  • – dport: dport znamená cílový port, kde uvádíte číslo portu, na který je paket určen.
  • – j: Nakonec máme argument TARGET, kde můžete zmínit název TARGET, ACCEPT, DROP nebo RETURN

Je také nezbytné napsat příkaz v následujícím pořadí:

$ sudo iptables -A <chain-name> -i <interface-name> - p <protocool-name> - s <source> --dport <port no.> -j <target>

Ukládání změn do iptables

Jakmile přidáte pravidlo, můžete jej uložit pomocí příkazu iptables -save.

$ sudo iptables -save

Výstup je následující:

[email protected]:~$ sudo iptables-save

# Generated by iptables-save v1.8.7 on Sun May 14 13:37:34 2023

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT

-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT

-A INPUT -p tcp -m tcp --dport 392 -j REJECT --reject-with icmp-port-unreachable

-A OUTPUT -o lo -j ACCEPT

COMMIT

# Completed on Sun May 14 13:37:34 2023

Trvalá pravidla ručně

Ve výchozím nastavení iptables neukládá pravidla. Pokud tedy restartujete počítač, odstraní se všechna pravidla. Budete muset použít následující příkazy, abyste zajistili, že nebudete muset znovu konfigurovat iptables.

Pro pravidla IPv4 napište příkaz:

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

A pro pravidla IPv6 napište příkaz:

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

Trvalá pravidla automaticky

Aby pravidla zůstala zachována i po restartu, a to navíc automaticky, budete muset nainstalovat balíček iptables-presistent.

Chcete-li tak učinit, spusťte následující příkaz.

$ sudo apt-get install iptables-persistent

Otevře se následující okno. Stiskněte enter na .

Jak pracujeme s tabulkou IPv4, zobrazí se pouze pravidla IPv4. Pokud pracujete na IPv6, zobrazí se příslušné okno.

Poznámka: Balíček načte pouze vaše uložená pravidla iptables. Takže kdykoli změníte iptables, budete je muset uložit pomocí příkazu iptables -save.

Opětovné načtení pravidel po restartu

Jakmile jsou pravidla uložena, musíte je obnovit pomocí následujícího příkazu.

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

A

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

Povolení provozu na Localhost / Povolení Loopback

Chcete-li povolit provoz na Localhost, použijte následující příkaz:

$ sudo iptables -A INPUT -i lo -j ACCEPT

Zde lo znamená rozhraní zpětné smyčky pro veškerou komunikaci localhost.

Podobně můžeme umožnit paketům odcházet přes rozhraní zpětné smyčky.

$ sudo iptables -A OUTPUT -o lo -j ACCEPT

Chcete-li zkontrolovat, jak to změnilo pravidla, spusťte iptables -L -n -V

#output

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)

 pkts bytes target     prot opt in     out     source               destination

    0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)

 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)

 pkts bytes target     prot opt in     out     source               destination

Povolení provozu na konkrétních portech

Na konkrétních portech můžete povolit AKCEPTOVÁNÍ nebo ODMÍTNUTÍ provozu.

  Co znamená 5G pro Apple iPhone 12

Například porty SSL, HTTP a SSH jsou důležité pro normální fungování vašich aplikací. Pravidla můžete do paketu ACCEPT přidat pomocí čísel portů, abyste zajistili, že budou fungovat tak, jak mají.

Pro SSL spusťte následující příkaz.

$ sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

Pro HTTPS spusťte následující příkaz.

$ sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

Pro povolení veškerého HTTPS provozu na rozhraní eth0.

$ iptables -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT

$ iptables -A OUTPUT -o eth0 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT

Pro SSH spusťte následující příkaz.

$ sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

A chcete-li přijmout VŠECHNY příchozí provoz SSH na rozhraní eth0, spusťte následující:

$ iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT

$ iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

Dalším příkladem by bylo povolení provozu portu na konkrétním portu pro vaši vlastní aplikaci. Řekněme port 233.

Chcete-li otevřít připojení na tomto portu, spusťte.

$ sudo iptables -A INPUT -p tcp --dport 233 -j ACCEPT

Podobně můžete také zakázat připojení na konkrétním portu pomocí možnosti REJECT target.

Zablokujme všechna připojení na portu 392.

$ sudo iptables -A INPUT -p tcp --dport 392 -j REJECT

Pro kontrolu spusťte příkaz iptables -L -n -v.

#output

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)

 pkts bytes target     prot opt in     out     source               destination

    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:22

    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80

    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443

    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:233

    0     0 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:392 reject-with icmp-port-unreachable

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)

 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)

 pkts bytes target     prot opt in     out     source               destination

 0     0 ACCEPT     all  --  *      lo      0.0.0.0/0            0.0.0.0/0

Smazat existující pravidla

Chcete-li odstranit existující pravidla, budete muset spustit následující příkaz.

$ iptables -F

nebo

$ iptables --flush

Poznámka: Pokud jste svá pravidla neuložili, jsou navždy ztracena a nelze je obnovit pomocí iptables -restore

Odstraňte pravidla s čísly řádků

Chcete-li odstranit konkrétní pravidlo, budete muset získat seznam pravidel s čísly.

$ sudo iptables -L --line-numbers
#output

Chain INPUT (policy ACCEPT)

num  target     prot opt source               destination

1    ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh

2    ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http

3    ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:https

4    ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:233

5    REJECT     tcp  --  anywhere             anywhere             tcp dpt:392 reject-with icmp-port-unreachable

Pokud chcete odstranit pravidlo číslo 4 pro řetězec INPUT, spusťte následující příkaz.

$ sudo iptables -D INPUT 4

A pokud znovu spustíte příkaz iptables -n -v -L.

#output

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)

 pkts bytes target     prot opt in     out     source               destination

    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:22

    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80

    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443

    0     0 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:392 reject-with icmp-port-unreachable

Zobrazit pouze pravidla řetězce INPUT nebo OUTPUT

Chcete-li zobrazit pouze pravidla řetězce INPUT, spusťte následující příkaz.

$ sudo iptables -L INPUT -n -v --line-numbers
#ouput

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)

num   pkts bytes target     prot opt in     out     source               destination

1        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:22

2        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80

3        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443

4        0     0 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:392 reject-with icmp-port-unreachable

Podobně, pokud chcete vidět pouze pravidla OUTPUT řetězce, spusťte:

$ sudo iptables -L OUTPUT -n -v --line-numbers
#output

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)

num   pkts bytes target     prot opt in     out     source               destination

1        0     0 ACCEPT     all  --  *      lo      0.0.0.0/0            0.0.0.0/0

Spuštění/zastavení/restartování brány firewall

Pokud používáte RHEL/Fedora Linux nebo CentOS, můžete spustit/zastavit nebo restartovat firewall spuštěním příkazů.

$ service iptables stop

$ service iptables start

$ service iptables restart

Můžete také použít příkaz systemctl.

  Jak používat Python cURL?

Na Ubuntu to však nebude fungovat.

Vložit pravidla na konkrétní místo

Pokud chcete vložit pravidla na konkrétní pozici, musíte použít následující příkazy.

Nejprve zkontrolujte pravidla.

$ sudo iptables -L INPUT -n --line-numbers
#output

Chain INPUT (policy ACCEPT)

num  target     prot opt source               destination

1    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22

2    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80

3    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:443

4    REJECT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:392 reject-with icmp-port-unreachable

Pokud chcete vložit pravidla mezi 2 a 3, spusťte následující příkaz.

$ sudo iptables -I INPUT 3 -s 252.32.1.2 -j DROP

Nyní zkontrolujte aktualizovaná pravidla.

#output

Chain INPUT (policy ACCEPT)

num  target     prot opt source               destination

1    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22

2    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80

3    DROP       all  --  252.32.1.2           0.0.0.0/0

4    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:443

5    REJECT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:392 reject-with icmp-port-unreachable

Blokovat příchozí provoz, ale povolit odchozí provoz

Chcete-li zablokovat veškerý příchozí provoz, musíte zadat následující příkaz.

$ iptables -P INPUT DROP

$ iptables -P FORWARD DROP

$ iptables -P OUTPUT ACCEPT

$ iptables -A INPUT -m state --state NEW,ESTABLISHED -j ACCEPT

$ iptables -L -v -n

Tímto způsobem můžete pingnout nebo stahovat balíčky, ale blokovat jakýkoli neznámý příchozí provoz.

Blokovat konkrétní IP adresu

Chcete-li zablokovat konkrétní IP adresu, spusťte následující příkaz.

$ iptables -A INPUT -s 14.23.59.9 -J DROP

Můžete také definovat proměnnou pro uložení blokované IP adresy a poté spustit příkaz.

BLOCK_THE_IP = “a.b.c.d”

A pak spusťte:

$ iptables -A INPUT -s “BLOCK_THE_IP” -j DROP

Poznámka: Změňte „abcd“ na preferovanou IP adresu.

Povolení systému Ping zvenčí

Můžete přimět externí uživatele, aby ping na váš server, aby byla vaše síť zjistitelná.

$ sudo iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

$ sudo iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT

Povolení komunikace interní sítě s externí sítí

Spuštěním následujícího příkazu povolte interní síť (řekněme eth0) externí síti (řekněme eth1).

$ sudo iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT

Povolit odchozí DNS

Chcete-li povolit připojení DNS k vašemu serveru, spusťte následující příkaz.

$ iptables -A OUTPUT -p udp -o eth0 --dport 53 -j ACCEPT

$ iptables -A INPUT -p udp -i eth0 --sport 53 -j ACCEPT

Povolit Rsycn z konkrétní sítě

Pokud používáte příkaz Rsync a chcete jej povolit v konkrétní síti, spusťte následující příkaz.

iptables -A INPUT -i eth0 -p tcp -s 192.168.101.0/24 --dport 873 -m state --state NEW,ESTABLISHED -j ACCEPT

iptables -A OUTPUT -o eth0 -p tcp --sport 873 -m state --state ESTABLISHED -j ACCEPT

Blokovat port

Spuštěním následujícího příkazu zablokujete konkrétní port a všechny příchozí požadavky.

iptables -A INPUT -p tcp --dport 80 -j DROP

iptables -A INPUT -i eth1 -p tcp --dport 80 -j DROP

Blokovat odchozí provoz na konkrétní IP adresu

Provoz na libovolnou IP adresu můžete zablokovat spuštěním následujícího příkazu.

$ host -t a etechblog.cz.com

#výstup

etechblog.cz.com má adresu 172.66.40.93

Chcete-li zablokovat odchozí provoz na tuto konkrétní IP adresu, spusťte následující příkaz.

iptables -A OUTPUT -d 72.66.40.93 -j DROP

Podobně můžete blokovat také platformy sociálních médií, jako je Instagram, Twitter a Facebook.

Najděte IP adresu sociálních sítí spuštěním následujícího příkazu:

$ host -t a social-media-web-adrress.com

Například pro Instagram by to bylo:

$ host -t a www.instagram.com

Nyní budete muset najít CIDR pro IP adresu konkrétní platformy sociálních médií.

$ whois 185.89.219.11 | grep CIDR

Poznámka: Možná budete muset nainstalovat balíček whois spuštěním sudo apt-get install whois

Nyní zadejte hodnotu CIDR následujícím způsobem:

$ iptables - A OUTPUT -p tcp -d CIDR-value -j DROP

Poznámka: Nezapomeňte odpovídajícím způsobem změnit hodnotu CIDR.

Povolit nebo zablokovat požadavek ping ICMP

Chcete-li povolit nebo zablokovat požadavky ping ICMP, spusťte následující příkazy.

$ iptables -A INPUT -p icmp --icmp-type echo-request -j DROP

$ iptables -A INPUT -i eth1 -p icmp --icmp-type echo-request -j DROP

Otevřete konkrétní rozsah portů

Chcete-li otevřít řadu portů, spusťte následující příkaz.

$ iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 8933: 8500 -j ACCEPT

Seznam pravidel NAT

Chcete-li zobrazit seznam pravidel NAT, spusťte následující příkaz:

$ sudo iptables -t nat -L -n -v

Nebo

$ sudo iptables -t nat -v -L -n --line-number

Resetujte počítadla balíčků

Chcete-li zkontrolovat aktuální počítadlo iptables:

$ sudo iptables -L -n -v

Chcete-li vynulovat nebo vymazat čítače, proveďte následující:

$ sudo iptables -Z

$ sudo iptables -L -n -v

Chcete-li pouze vynulovat čítač řetězce INPUT, spusťte:

$ iptables -Z INPUT

Chcete-li resetovat konkrétní počítadlo pravidel, spusťte následující:

$ iptables -z INPUT RULE-NUMBER

Nezapomeňte změnit RULE-NUMBER na toto konkrétní pravidlo.

Závěrečná slova

iptables je výkonný nástroj příkazového řádku brány firewall. Můžete nakonfigurovat téměř vše, co souvisí se síťovými prostředky, pakety, rozhraními a konkrétními scénáři.

Také iptables nabízí spoustu možností. Podívejte se na jeho hlavní stránku pomocí příkazu man, abyste získali úplný obrázek.

$ man iptables
$ man ip6tables

Dále se podívejte na síťový firewall a na to, jak pomáhá zastavit útoky.