ich habe gerade einige iptables-Regeln zusammengefasst. Da ich mich nicht vom vServer aussperren möchte, würde ich es toll finden, wenn Ihr evtl. einen kurzen Blick draufwerft.
Eckdaten:
Ich möchte folgenden eingehenden Verkehr erlauben:
- SSH (habe aber den SSH-Port in der /etc/ssh/sshd_config auf 44077 geändert)
- HTTP und HTTPS
- rsync
- Email (smtp)
Ausgehende Verbindungen:
- DNS
Ist das folgende Skript in Ordnung?
Code: Alles auswählen
# Alle Listen mit bereits erstellten Regeln löschen:
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X
iptables -Z
iptables -t nat -Z
iptables -t mangle -Z
# Alles per Default-Policy verbieten:
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
# Über Looback alles erlauben:
iptables -I INPUT -i lo -j ACCEPT
iptables -I OUTPUT -o lo -j ACCEPT
# Alle eingehenden SSH-Verbindungen erlauben:
iptables -A INPUT -i eth0 -p tcp --dport 44077 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 44077 -m state --state ESTABLISHED -j ACCEPT
# Eingehende HTTP- und HTTPS-Verbindungen erlauben:
iptables -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT
# rsync für Backups erlauben:
iptables -A INPUT -i eth0 -p tcp --dport 873 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 873 -m state --state ESTABLISHED -j ACCEPT
# smtp (email) erlauben:
iptables -A INPUT -i eth0 -p tcp --dport 25 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 25 -m state --state ESTABLISHED -j ACCEPT
# Ausgehende DNS-Verbindungen:
iptables -A OUTPUT -p udp -o eth0 --dport 53 -j ACCEPT
iptables -A INPUT -p udp -i eth0 --sport 53 -j ACCEPT
# Schutz vor Syn-Flood:
iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
# Port-Scans verbieten:
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
# Schutz vor Ping-of-Death:
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
# Schutz vor DDOS:
iptables -A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT
# Letztendlich wird alles weitere, was
# bisher nicht explizit vorher erlaubt
# wurde, abgelehnt:
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
exit 0 ;