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ę.