Jak stworzyć standardowe reguły firewalla na iptables dla stacji roboczej ?

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 ACCEPT
iptables -P FORWARD DROP

Polityka puszczająca localhost:

iptables -A INPUT -i lo -j ACCEPT
iptables -A FORWARD -o lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

Utrzymywanie połączenia nawiązane dla INPUT DROP:

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:

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

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:

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:

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
  1. 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
  1. 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
  1. 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 odpowiedzi 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