Tuning reguł iptables dla masymalnego bezpieczeństwa.

Postanowiłem robić notatki dotyczące maksymalnego tuningu reguł iptables. Moim celem jest osiągnięcie zmaksymalizowanego bezpieczeństwa. Wpis który teraz czytasz, będzie z czasem się zmieniał, a ja będę tutaj dodawał przetestowane reguły. Jak zwykle, być może kogoś zainspiruje moja zabawa z bezpieczeństwem.

-P INPUT DROP
-P FORWARD DROP
-P OUTPUT DROP
-A INPUT -m state --state INVALID -j DROP
-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m limit --limit 1/sec -j SET --add-set blacklist src
-A INPUT -m set --match-set blacklist src -m limit --limit 2/min -j LOG --log-prefix "BLACKLISTA SYNFLOOD: " --log-tcp-options --log-ip-options
-A INPUT -p tcp -m multiport --dports 23,1433,2323,3306,3389,5060,8080 -j SET --add-set blacklist src
-A INPUT -p udp -m multiport --dports 137,138,139,161,5060 -j SET --add-set blacklist src
-A INPUT -m set --match-set blacklist src -m limit --limit 2/min -j LOG --log-prefix "BLACKLISTA INPUT: " --log-tcp-options --log-ip-options
-A INPUT -m set --match-set blacklist src -j DROP
-A INPUT -p tcp -m multiport --dports 21,22,110 -j TARPIT
-A INPUT -p tcp -m multiport --dports 80,443,53 -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

-A OUTPUT -m state --state INVALID -j DROP
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A OUTPUT -p tcp -m multiport --dports 80,443,53 -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -p udp -m udp --dport 53 -m state --state NEW -j ACCEPT
-A OUTPUT -p udp -m udp --sport 67:68 --dport 67:68 -j ACCEPT
-A OUTPUT -p udp -m udp --sport 123 --dport 123 -j ACCEPT
-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

Ta konfiguracja będzie poprawiana:
Zlikwidowane zostanie całkowicie otwarte połączenie OUTPUT,
Ograniczone zostaną możliwości nawiązania połączeń,
Zwiększona zostanie granulacja poprzez wyszczególnienie adresów IP i mac adresów,
Iptables będzie zabezpieczał przed podstawowymi atakami.

Podobne wpisy