Aktualizováno dne 11. března 2011 - Scribus – vložení tabulky z Writeru

Linux v praxi

Různé drobnosti


Jednoduchý firewall pro desktop

netfilter, čili iptables

Tak jsem se konečně doma rozhoupal k tomu, abych namísto prostého TCP wrapperu začal používat iptables. Měl jsem dost dlouho problém pochopit, že je to opravdu jednodušší, než to vypadá (alespoň to, co stačí na zmíněném desktopu)

Uvedený firewall je opravdu jednoduchý, asi není dokonalý, ale věřím, že by svou úlohu měl plnit.

# takže jako výchozí nastavím zakázání všeho, 
# co se snaží ke mně a přeze mne dostat (výchozí hodnoty, aplikované na
# všechny pakety, které nesplní žádnou podmínku)
# Odchozí provoz nijak omezovat nebudu - sám sebe omezovat nemusím
iptables -P INPUT DROP
iptables -P FORWARD DROP

# povolím loopback
iptables -A INPUT -i lo -j ACCEPT 

# povolím příjem všeho, o co jsem si požádal 
iptables -A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT 

# povolím icmp pakety, ale jen přiměřeně, 
# kdyby se mne někdo snažil upingat k smrti
iptables -A INPUT -i eth0 -p icmp -m limit --limit 3/sec --limit-burst 5 -j ACCEPT 

# slušně odmítnu požadavek (např. FTP serveru) na auth
iptables -A INPUT -i eth0 -p tcp --dport auth -j REJECT

# povolím igmp multicast protokol
iptables -A INPUT -i eth0 -p igmp -j ACCEPT

# nakonec ještě povolím tcp i udp porty pro DC++ 
# (potřeba nastavit si svoje) 
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 23456 -j ACCEPT 
iptables -A INPUT -i eth0 -p udp -m udp --dport 23456 -j ACCEPT 

# případně, pokud jste z nějakého důvodu paranoidní
# můžete se omezit třeba jen na určitou síť (obvykle metropolitní), třeba takto:
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 23456 -s 111.222.0.0/19 -j ACCEPT 
iptables -A INPUT -i eth0 -p udp -m udp --dport 23456 -s 111.222.0.0/19 -j ACCEPT 
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 23456 -s 10.0.0.0/16 -j ACCEPT 
iptables -A INPUT -i eth0 -p udp -m udp --dport 23456 -s 10.0.0.0/16 -j ACCEPT 
# V nějaké podobné síti jsem já, jsou tam uživatelé s veřejnými adresami
# - to je ta síť, zde uvedená jako 111.222.0.0/19, a s privátními adresami
# přidělovanými v rozsahu sítě 10.0.0.0/16
# V jaké síti se nalézáte, vám prozradí např. příkaz whois
# (samozřejmě je potom potřeba vynechat ty řádky, které jsou o odstavec výše ;-))


V mnou používaném Arch Linuxu jsem si následně příkazem iptables-save > /etc/iptables/iptables.rules pravidla uložil do zmíněného souboru. O načtení při startu se pak postará daemon iptables, spouštěný pomocí /etc/rc.conf ještě před daemonem network. Tohle se samozřejmě v jednotlivých distrech liší.

Používáte browser CCBot/2.0 (http://commoncrawl.org/faq/)
„Láska vdaných žen je nejcennější na světě, manželé o tom ovšem nevědí.“ Oscar Wilde