Ich habe versucht, ein grundlegendes Server-Skript für iptables zusammenzustellen, das für die meisten Sites funktioniert, auf denen nur ein grundlegender Webserver mit HTTP (S) und SSH (Ports 80, 443 und 22) ausgeführt wird. Schließlich benötigen die meisten VPS nur diese Regeln für Startports und können Mail- oder Game-Ports später nach Bedarf hinzufügen.
Bisher habe ich den folgenden Regelsatz und ich habe mich gefragt, ob jemand ein besseres Skript oder Verbesserungen kennt, die hinzugefügt werden könnten.
*filter
# Allows all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0
-A INPUT -i lo -j ACCEPT
-A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT
# Accepts all established inbound connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allows all outbound traffic
# You can modify this to only allow certain traffic
-A OUTPUT -j ACCEPT
# Allows HTTP and HTTPS connections from anywhere (the normal ports for websites)
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT
# Allows SSH connections (only 4 attempts by an IP every 3 minutes, drop the rest)
-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --set --name DEFAULT --rsource
-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --update --seconds 180 --hitcount 4 --name DEFAULT --rsource -j DROP
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT
# Allow ping
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
# log iptables denied calls
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
# Reject all other inbound - default deny unless explicitly allowed policy
-A INPUT -j REJECT
-A FORWARD -j REJECT
COMMIT
iptables ist einer der wichtigsten Teile beim Sichern Ihrer Box (siehe auch fail2ban), und dennoch haben viele Leute wie ich Probleme, alles zu verstehen, was dazu beiträgt, eine sichere Basis-Firewall für unsere Server zu erstellen.
Was ist der sicherste Weg, um nur die grundlegenden Ports zu öffnen, die für einen Webserver benötigt werden?
Update: cyberciti.biz hat ein weiteres iptables-Skript , das ziemlich gut aussieht.
Anstatt Denyhosts oder fail2ban zu verwenden, können Sie auch iptables selbst verwenden, um wiederholte Versuche mit SSH zu blockieren .
modprobe
es nicht installiert ist (oder ein anderer Fehler auftritt, bevor Sie Port 22 öffnen), sperren Sie sich selbst aus dem Server aus.