Czyszczenie wszystkich reguł: # iptables -F # iptables -X # iptables -t nat -X # iptables -t nat -F Default'owa polityka DROP: # iptables -P INPUT DROP # iptables -P OUTPUT DROP # iptables -P FORWARD DROP Polityka puszczająca localhost: # localhost # iptables -A INPUT -i lo -j ACCEPT # iptables -A FORWARD -o lo -j ACCEPT # iptables -A OUTPUT -o lo -j ACCEPT Utrzymywanie nawiązania INPUT DROP: # utrzymuje nawiazane: # iptables -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED Wpuszczamy wszystko z konkretnej sieci: # iptables -A INPUT -s 83.83.83.83/29 -j ACCEPT Wpuszczamy wszystkich na ftp: # 21 ftp # iptables -A INPUT -p tcp --dport 21 -j ACCEPT # iptables -A INPUT -p udp --dport 21 -j ACCEPT Logujemy i wpuszczamy ssh z limitem na jedno pol. na sek.: # ssh # iptables -A INPUT -p tcp --dport 22 -j LOG --log-prefix "SSH_" # iptables -A INPUT -m limit --limit 1/second -p tcp --dport 22 -j ACCEPT Logujemy i umożliwiamy pingowanie: # icmp # iptables -A INPUT -p icmp --icmp-type echo-request -j LOG --log-prefix "icmp_" # iptables -A INPUT -s 192.168.1.1 -p icmp --icmp-type echo-request -j ACCEPT # iptables -A INPUT -p icmp --icmp-type echo-request -j DROP Logujemy i umożliwiamy pingowanie: # 80 # iptables -A INPUT -p tcp --dport 80 -j LOG --log-prefix "www-tcp_" # iptables -A INPUT -p tcp --dport 80 -j ACCEPT # iptables -A INPUT -p udp --dport 80 -j LOG --log-prefix "www-udp_" # iptables -A INPUT -p udp --dport 80 -j ACCEPT Logujemy i blokujemy skanowanie portów: 1. nmap -sS /skanowanie portów: # iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH SYN -j LOG --log-prefix "SKANOWANIE SYN_" # iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH SYN -j DROP 2. nmap -sA /filt pakietów: # iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH ACK -j LOG --log-prefix "SKANOWANIE FILTR_" # iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH ACK -j DROP 3. nmap -sF: # iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH FIN -j LOG --log-prefix "SKANOWANIE3_" # iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH FIN -j DROP 4. nmap -sX / Xmas Tree: # iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH FIN,URG,PSH -j LOG --log-prefix "SKANOWANIE xmas_" # iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH FIN,URG,PSH -j DROP Syn-flood protection: # iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT Furtive port scanner: # iptables -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT Ping of death: # iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT SYN flood protection: # echo "1" > /proc/sys/net/ipv4/tcp_syncookies Wyłączamy odpowiedźi na pingi: # echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all Ochrona przed atakami typu Smurf: # echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts: Włączamy ochronę przed komunikacją ICMP error: # echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses Włącza logowanie dźiwnych pakietów (spoofed. source routed. redirects): # echo "0" > /proc/sys/net/ipv4/conf/all/log_martians Nie akceptujemy datagramu IP z opcją "source route": # echo "0" > /proc/sys/net/ipv4/conf/all/accept_source_route Nie przyjmujemy pakietów ICMP redict, które mogą zmienić naszą tablicę routingu: # echo "0" /proc/sys/net/ipv4/conf/all/accept_redirects Wszystkie karty nie bedą przyjmowały pakietów z sieci innych niż te z tablicy routingu: # echo "0" /proc/sys/net/ipv4/conf/all/rp_filter