Wie konfiguriert man IPTables, damit esnurSSH zulassen und keinen anderen Datenverkehr zulassenoder aus?
Kann jemand irgendwelche Sicherheitsvorkehrungen empfehlen?
Ich habe einen Server, den ichglaubenwurde erfolgreich von GoDaddy migriert und ichglaubenwird nicht mehr verwendet.
Aber ich möchte sichergehen, einfach weil … man weiß ja nie. :)
Beachten Sie, dass dies ein virtueller dedizierter Server von GoDaddy ist. Das bedeutet: kein Backup und praktisch kein Support.
Antwort1
Sie müssen lediglich die Standardrichtlinie auf DROP für die INPUT- und OUTPUT-Ketten festlegen.
Um SSH zuzulassen, benötigen Sie die folgenden Befehle:
$ sudo iptables -P INPUT DROP
$ sudo iptables -P OUTPUT DROP
$ sudo iptables -A INPUT -i lo -j ACCEPT
$ sudo iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
$ sudo iptables -A OUTPUT -o lo -j ACCEPT
$ sudo iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
Die letzten beiden Befehle erlauben Loopback-Verkehr, da dies für die ordnungsgemäße Funktion einiger Anwendungen erforderlich ist. Sie können den SSH-Zugriff von bestimmten IP-Adressen mithilfe der -s source_ip
Option einschränken.
Wenn Sie die Befehle in der oben gezeigten Reihenfolge ausführen, bleibt Ihre aktuelle SSH-Sitzung hängen. Dies liegt daran, dass iptables-Befehle sofort wirksam werden. Sie müssen sie in einem Shell-Skript ausführen, um zu vermeiden, dass Sie bei der Remote-Ausführung die Möglichkeit verlieren, eine Verbindung zu Ihrem Computer herzustellen.
Antwort2
Etwas wie das:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -j REJECT # or iptables -P INPUT DROP
iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -j REJECT # or iptables -P OUTPUT DROP