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