Hi Ihr,
da ich ja jetzt einen KVM Server habe und diesen über iptables absichern muss/soll/kann wollte ich euch kurz meine iptables-Config zur Überprüfung zeigen da das Thema noch relativ neu für mich ist. Belesen habe ich mich schon reichlich und der Generator unter IPTables - Tobias Bauer erstellt ja schon etwas ganz passables, aber ich dachte mir dass es etwas gestaucht werden könnte.
Was meint ihr? Beim ICMP bin ich mir noch unsicher und auch, ob die Verbindungen bei Fehlschlag ge"DROP"ed oder REJECTed werden sollten:
Code
# alle Regeln löschen
$iptables -t nat -F
$iptables -t filter -F
$iptables -X
# neue Regeln erzeugen
$iptables -N garbage
$iptables -I garbage -p TCP -j LOG --log-prefix="TCP Drop: " --log-level 7
$iptables -I garbage -p UDP -j LOG --log-prefix="UDP Drop: " --log-level 7
$iptables -I garbage -p ICMP -j LOG --log-prefix="ICMP Drop: " --log-level 7
# Default Policy
$iptables -P INPUT DROP
$iptables -P OUTPUT ACCEPT
$iptables -P FORWARD DROP
# über Loopback alles erlauben
$iptables -I INPUT -i lo -j ACCEPT
$iptables -I OUTPUT -o lo -j ACCEPT
# SSH, SMTP, WWW, POP3, IMAP, SSL, SVN
$iptables -I INPUT -i eth0 -p TCP -m multiport --dports 49152,25,80,110,143,443,8443 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$iptables -I OUTPUT -o eth0 -p TCP -m multiport --sports 49152,25,80,110,143,443,8443 -m state --state ESTABLISHED,RELATED -j ACCEPT
# NTP
$iptables -I INPUT -i eth0 -p UDP --dport 123 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$iptables -I OUTPUT -o eth0 -p UDP --sport 123 --dport 123 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# Bittorrent Sync
$iptables -I INPUT -i eth0 -p UDP --dport 8500 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$iptables -I OUTPUT -o eth0 -p UDP --sport 8500 -m state --state ESTABLISHED,RELATED -j ACCEPT
$iptables -I INPUT -i eth0 -p TCP --dport 8501 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$iptables -I OUTPUT -o eth0 -p TCP --sport 8501 -m state --state ESTABLISHED,RELATED -j ACCEPT
$iptables -I OUTPUT -o eth0 -p UDP --sport 1024:65535 --dport 53 -d 46.38.225.230 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# ICMP
$iptables -I INPUT -i eth0 -p ICMP --icmp-type echo-reply -m state --state ESTABLISHED,RELATED -j ACCEPT
$iptables -I OUTPUT -o eth0 -p ICMP --icmp-type echo-request -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$iptables -I INPUT -i eth0 -p ICMP --icmp-type echo-request -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$iptables -I OUTPUT -o eth0 -p ICMP --icmp-type echo-request -m state --state ESTABLISHED,RELATED -j ACCEPT
#####################################################
# Erweiterte Sicherheitsfunktionen
# SynFlood
$iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
# PortScan
$iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
# Ping-of-Death
$iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
#####################################################
# bestehende Verbindungen akzeptieren
$iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#####################################################
# Garbage übergeben wenn nicht erlaubt
$iptables -A INPUT -m state --state NEW,INVALID -j garbage
#####################################################
# alles verbieten was bisher erlaubt war
$iptables -A INPUT -j garbage
$iptables -A OUTPUT -j garbage
$iptables -A FORWARD -j garbage
Alles anzeigen