Ich fange gerade mit Iptables an und bin auf etwas gestoßen, das ich nicht wirklich verstehe.
Zu Ihrer Information, ich habe die Anweisungen von Ubuntu Wikis IptablesHowTo befolgt .
Die Nat- und Mangle-Tabellen sind leer, ich arbeite gerade nur mit der Filtertabelle.
Das Problem
Wenn ich die folgenden iptables-Regeln hinzufüge:
iptables -A INPUT -p tcp --dport ssh -j ACCEPT
iptables -A INPUT -j DROP
... dann habe ich immer noch Zugriff auf meinen Computer über ssh, aber die Ausführung aller iptables-Befehle dauert ungefähr ein oder zwei Minuten. Es ist kein DNS-Problem, -nändert es nicht.
Die Lösung
Wenn ich die Tabelle spüle und stattdessen diese drei Regeln hinzufüge, funktioniert alles einwandfrei:
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport ssh -j ACCEPT
iptables -A INPUT -j DROP
Kann mir jemand erklären, warum die erste Regel so große Auswirkungen auf iptables hat? Ich verstehe, dass etablierte Sitzungen Datenverkehr empfangen können, aber warum brauche ich ihn, wenn ssh geöffnet ist?
sudo strace …(von einer Root-Shell) aus, um zu sehen, worauf es blockiert.
sudoDNS-Suchvorgänge durchgeführt. Wenn diese blockiert sind, ist der Befehl langsam. Sind all Ihren andereniptablesBefehlen ein Präfix vorangestelltsudo?