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