1. iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.100 -t nat: Používáme tabulku NAT, protože přesměrování (DNAT) je NAT operace. -A PREROUTING: Pravidlo je aplikováno na příchozí provoz před směrováním. -p tcp --dport 80: Pravidlo se aplikuje na TCP pakety směřující na port 80 (HTTP). -j DNAT --to-destination 192.168.1.100: Změní cílovou IP adresu na 192.168.1.100. 2. iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE -t nat (tabulka NAT): NAT znamená Network Address Translation (překlad síťových adres). Tabulka NAT se používá pro úpravu IP adres nebo portů paketů při jejich průchodu síťovým zařízením. V tomto případě měníme zdrojovou IP adresu paketů při odchodu ze sítě. -A POSTROUTING (řetězec POSTROUTING): POSTROUTING znamená "po směrování" (routing). Toto pravidlo se aplikuje na pakety těsně před tím, než opustí zařízení přes dané síťové rozhraní (např. eth0). Jinými slovy: pravidlo se uplatní po rozhodnutí, kudy paket půjde ven. -o eth0 (odchozí rozhraní): Toto pravidlo platí pouze pro pakety, které odcházejí přes síťové rozhraní eth0. eth0 je typický název pro první síťovou kartu v systému. (Pokud máte více karet, mohou být pojmenovány např. eth1, wlan0, apod.) -j MASQUERADE (akce přepis zdrojové IP): MASQUERADE znamená, že zdrojová IP adresa odcházejících paketů bude nahrazena IP adresou síťového rozhraní eth0. To je užitečné například při připojení k internetu, kdy máte veřejnou IP adresu na rozhraní eth0 a zařízení ve vaší lokální síti používají soukromé IP adresy (např. 192.168.x.x). Díky MASQUERADE se zařízení v lokální síti "skryjí" za veřejnou IP adresu rozhraní eth0. 3. iptables -t nat -A PREROUTING -p tcp --dport 80 -m statistic --mode nth --every 2 --packet 0 -j DNAT --to-destination 192.168.1.101 -t nat (NAT tabulka): Pravidlo se zapisuje do tabulky NAT (Network Address Translation), která se používá pro změnu adres nebo portů u paketů. V našem případě měníme cílovou IP adresu příchozího HTTP provozu. -A PREROUTING (před směrováním): Pravidlo se aplikuje na příchozí pakety ještě předtím, než se rozhodne, kam se mají směrovat. Jinými slovy: ovlivňujeme pakety hned na začátku, když dorazí do systému. -p tcp --dport 80 (protokol TCP, port 80): Pravidlo se vztahuje na TCP provoz (protokol používaný např. pro HTTP). --dport 80 znamená, že se pravidlo vztahuje na pakety, které míří na port 80 (typicky webový provoz). -m statistic --mode nth --every 2 --packet 0 (statistika, každý druhý paket): -m statistic: Aktivujeme modul statistiky, který umí sledovat a rozhodovat podle určitých pravidel. --mode nth: Určuje, že budeme pracovat s každým n-tým paketem (zde každým druhým). --every 2: Říká, že chceme pracovat s každým druhým paketem. --packet 0: Toto určuje, že pravidlo se vztahuje na první paket ve dvojici (první, třetí, pátý atd.). -j DNAT --to-destination 192.168.1.101 (změna cílové IP adresy): -j DNAT: Používáme akci Destination NAT, která mění cílovou IP adresu paketu. --to-destination 192.168.1.101: Cílová IP adresa je přepsána na 192.168.1.101, takže paket bude doručen tomuto serveru. 4. iptables -t nat -A PREROUTING -p tcp --dport 80 -m statistic --mode nth --every 2 --packet 1 -j DNAT --to-destination 192.168.1.102 -t (Table) Určuje tabulku, se kterou pravidlo pracuje (např. filter, nat, mangle). -p (Protocol) Specifikuje protokol (např. tcp, udp, icmp). -m (Match) Aktivuje rozšiřující modul pro pokročilé filtrování (např. state, statistic, limit). -o (Output Interface) Definuje výstupní síťové rozhraní (např. eth0, wlan0). -j (Jump) Specifikuje akci, která se má provést s odpovídajícím paketem (např. ACCEPT, DROP). -a (Append) Přidává nové pravidlo do specifikovaného řetězce (INPUT, OUTPUT, FORWARD). 5. iptables -N MY_CHAIN Vytváří novou uživatelskou řetězec (chain) s názvem MY_CHAIN. iptables -A OUTPUT -o eth0 -j MY_CHAIN Přesměrovává všechny pakety odcházející přes eth0 do uživatelského řetězce MY_CHAIN. iptables -A MY_CHAIN -p tcp --dport 80 -j ACCEPT Povolení TCP paketů, které míří na port 80. iptables -A MY_CHAIN -j DROP Všechny ostatní pakety (které neodpovídají předchozím pravidlům) budou zahozena. iptables -A FORWARD -p tcp --dport 22 -s 10.0.0.0/24 -d 172.16.31.22 -j DROP Blokuje TCP provoz na portu 22 (SSH) pocházející z podsítě 10.0.0.0/24 směřující na IP adresu 172.16.31.22. iptables -A OUTPUT -o eth1 -j ACCEPT Povolení všech odchozích paketů na rozhraní eth1. iptables -A INPUT -p tcp -s 192.168.10.10 -d 172.16.0.1 --dport 443 -j ACCEPT Povolení TCP paketů směřujících na port 443 (HTTPS) od zdrojové IP adresy 192.168.10.10 na cílovou IP adresu 172.16.0.1.