Komendy iptables - Instytutu Informatyki UJ

Transkrypt

Komendy iptables - Instytutu Informatyki UJ
IPtables - firewall
Kraków, 11 Kwietnia 2012 r.
mgr Piotr Rytko
Wydział Matematyki i Informatyki UJ
Komendy iptables
• -A, --append (iptables -A INPUT ...),
• -D, --delete (iptables -D INPUT regula ; iptables -D INPUT no),
• -R, --replace (iptables -R INPUT no nowaRegula),
• -I, --insert (iptables -I INPUT no regula),
• -L, --list
• -F, --flush
• -Z, --zero
• -N, --new-chain (iptables -N chainName),
• -X, --delete-chain (iptables -X chainName),
• -P, --policy (iptables -P INPUT DROP),
• -E, --rename-chain (iptables -E chainName newChainName).
Opcje
• -v, --verbose (--list, --append, --insert, --delete, --replace),
• -x, --exact (--list),
• -n, --numeric (--list),
• --line-numbers (--list),
• -c, --set-counters (--insert, --append, --replace),
• --modprobe (all).
Dopasowania
• -p, --protocol (iptables -A INPUT -p tcp),
• -s, --src, --source (iptables -A INPUT -s 192.168.1.1),
• 192.168.0.0/24 (lub 192.168.0.0/255.255.255.0) dopasuje wszystkie adresy IP w
sieci z zakresu 192.168.0.0 do 192.168.0.255,
• znak ! robi dopełnienie do naszej reguły
• -d, --dst, --destination (iptables -A INPUT -d 192.168.1.1),
• -i, --in-interface (iptables -A INPUT -i eth0),
• eth+ dopasuje wszystkie interfejsy eth
• -o, --out-interface (iptables -A FORWARD -o eth0),
• -f, --fragment (iptables -A INPUT -f).
TCP, UDP, ICMP matches
TCP/UDP
• --sport, --source-port (iptables -A INPUT -p tcp --sport 22),
• --dport, --destination-port (iptables -A INPUT -p tcp --dport 22).
TCP
• --tcp-flags (iptables -p tcp --tcp-flags SYN,FIN,ACK SYN),
• --syn (iptables -p tcp --syn),
• --tcp-option (iptables -p tcp --tcp-option 16).
ICMP
• --icmp-type (iptables -A INPUT -p icmp --icmp-type 8).
Kilka przykładów
• iptables -A INPUT -i lo -j ACCEPT — akceptuje wszystkie połączenia z
localhosta (jeśli ustawimy policy na DROP, to jest to koniecznością jeśli chcemy
korzystać z lokalnego serwera lub istnieje inny powód na wykorzystanie loopback’a),
• iptables -A INPUT -p tcp --dport 22 -s !192.168.0.4 -j DROP —
odrzuca połączenia na porcie 22 (ssh) od wszystkich poza komputerem o adresie
192.168.0.4,
• iptables -A INPUT -p tcp --dport 6881:6890 -j ACCEPT —
• iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT — akceptuje połączenia
z adresów w całej sieci 192.168.0.x,
• iptables -A INPUT -s 192.168.0.0/255.255.255.0 -j ACCEPT — to
samo co wyżej, ale z użyciem całej maski.
Inne Voodoo
Aby zapisać ustawienia iptables tak aby nie trzeba było ich konfigurować ponownie po
każdym restarcie systemu, wystarczy wykonać komendę:
# /sbin/service iptables save
iptables -A INPUT -s 192.168.0.4 -m mac --mac-source
00:50:8D:FD:E6:32 -j ACCEPT
Ustawia filtr na adresie 192.168.0.4 dla maszyny z makiem 00:50:8D:FD:E6:32. Metoda
działa ładnie w sieciach lokalnych, w rozległej sieci internet nie.
Jednakże stosuje się to jedynie przy ograniczeniu dostępu do sieci przez osoby trzecie
próbujące się podszyć się pod dany adres IP.
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
— Zezwala na nowe połączenia pakiety z istniejącego lub związanego połączenia,
Dla wpisów można także stosować komentarze w postaci kolejnej opcji:
iptables -A INPUT -m comment --comment "Komentarz do regóły"
Zadania
• Ustawić reguły w iptables tak aby pakiety ICMP przychodzące z sieci lokalnej
192.168.1.0 (maszyna z iptables też należy do tej sieci) były akceptowane, a z poza
tej sieci były odrzucane,
• Jedynie komputery od 192.168.0.193 do 192.168.0.254 mogły korzystać z połączenia
ssh (port 22),
• Połączenia na porty od 81 do 123 nie będą akceptowane,
• Wszystkie pakiety podlegające fragmentacji będą odrzucane,
• Połączenia przekazywane dalej przez maszynę do adresu IP 192.168.0.10 będą
blokowane a pozostałe będą akceptowane w całości,
• połączenia wychodzące do maszyny 192.168.0.12 będą dozwolone tylko na porcie 80,
• wszystkie połączenia wychodzące na porcie 19 będą blokowane.
Dziękuję za uwagę.