Ako sa to dalo riesit...
Cvicenie 10
Priklad 10.1
Z prednasky vieme, ze existuju tabulky filter,
mangle a nat. Retazce v nich vieme vypiat
napriklad pomocou:
iptables -t filter -L
(hint: mozno sa bude hodit prikaz iptables -F, ktory zmaze
vsetky pravidla z danej tabulky vo firewalle, pripadne iptables
-D na zmazanie urciteho pravidla)
Priklad 10.2
iptables -A INPUT -s 10.0.0.47 -j DROP
-t filter nie je treba zadavat, je to default.
Priklad 10.3
Podobne ako v predchadzajucom pripade, len kontrolujeme cielovy port:
iptables -A INPUT -p tcp --dport 23 -j DROP
Vsimnite si -p tcp. Bez tejto moznosti by iptables nevedeli
kontrolovat porty -- nie vsetky protokoly z rodiny IP podporuju cisla
portov.
Priklad 10.4
Zadanie nenapadne naznacuje, ze rozsah pocitacov je vcelku pekne cislo,
ktore akurat sadne do siete 10.0.0.0/28 (adresa 10.0.0.0 je adresou siete,
takze ju mozeme ignorovat). Vzorak prvej casti je teda:
iptables -A INPUT -s 10.0.0.0/28 -j DROP
Ak chceme nasmu pocitacu zabranit, aby posielal data tymto strojom,
potrebujeme a) pouzit spravny retazec (tentoraz OUTPUT) b) tentoraz budeme
kontrolovat cielovu adresu (zdrojova je predsa vzdy nasa):
iptables -A OUTPUT -d 10.0.0.0/24 -j DROP
Na blokovanie rozsahu portov mozeme pouzit rozsirenu syntax pre --dport,
vysledok potom vyzera zhruba takto:
iptables -A OUTPUT -d 10.0.0.0/24 -p tcp --dport 20:25 -j DROP
Priklad 10.6
Doteraz sme vsetky pakety iba zahadzovali prec, ale klienti sa nedozvedeli,
ze sa nieco taketo stalo. Ak chceme byt slusni, mozeme pouzit target
REJECT.
Pre TCP je to relativne jednoduche -- staci pouzit napriklad
--syn, ktory
zisti poziadavky na zacatie novych spojeni. Ak chceme matchovat aj UDP,
situacia sa skomplikuje (UDP nepozna spojenia), ale nic nie je stratene a
mozeme pouzit -m state --state NEW
iptables -A INPUT -m state --state NEW -j REJECT --reject-with
icmp-port-unreachable