24.6.2.8.1. Maškaráda

Maskování provozu celé sítě počitaču na neveřejných adresách za veřejnou adresu routeru.

Před nastavením samotné maškarády nastavíme default policy pro vstupní a výstupní pakety na ACCEPT a pro forwardované pakety na DROP. Rovněž vyprázdníme všechny tabulky.

# iptables -P INPUT ACCEPT
# iptables -F INPUT
# iptables -P OUTPUT ACCEPT
# iptables -F OUTPUT
# iptables -P FORWARD DROP
# iptables -F FORWARD
# iptables -t nat -F

Poté povolíme forward paketů z venku (INTERNET) dovnitř (LAN) pro již navázaná spojení a RELATED spojení. Povolíme také forward všech paketů zevnitř (LAN) ven (INTERNET). Jako poslední pravidlo do FORWARD řetězce přidáme "logovací" pravidlo jenž nám do deníku zaznamená všechny paket které byly odmítnuty.

# iptables -A FORWARD -i eth0 -i eth1 -m state --state ESTABLISHED,RELATED \
           -j ACCEPT
# iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
# iptables -A FORWARD -j LOG

A nakonec nám zůstane nastavení samotné maškarády.

# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Pokud nechcem povolit "průchod" maškarádou všem počítačům na lokální síti ale jen některým, omezíme pomocí přepínače -s adresy na které se maškeráda vztahuje. Předpokládejme že vnitřní lan je síť s parametry 192.168.1.0/24. Povolení maškarády jen pro počítač s ip 192.168.1.3 a pro počítače s adresami od 192.168.1.64 do 192.168.1.95 provedeme příkazy.

# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE -s 192.168.1.3
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE -s 192.168.1.64/27
# iptables -A INPUT -i eth0 -m state --state NEW,INVALID -j DROP
# iptables -A FORWARD -i eth0 -m state --state NEW,INVALID -j DROP

Více přísnější varianta maškarády s užítím SNAT. Adresa 1.2.3.4 v tomto příkladu je adresa vnějšího (INTERNET) rozhraní.

# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4