SSH-Zugriff mit diesen iptables-Regeln blockiert

SSH-Zugriff mit diesen iptables-Regeln blockiert

Ich habe diese iptables-Regeln festgelegt und sie haben meinen SSH-Zugriff (und alles andere) blockiert:

*filter

# Allow loopback
-I INPUT 1 -i lo -j ACCEPT

# Allow DNS
-A OUTPUT -p udp --dport 53 -j ACCEPT

# allow outbound connection to several website
-A OUTPUT -p tcp -d www.google.com -j ACCEPT
-A OUTPUT -p tcp -d example.com -j ACCEPT
-A OUTPUT -p tcp -d myotherwebsite.tld -j ACCEPT

#allow inbound connection after an allowed outbound
-A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

#allow me and my website to communicate
-A INPUT -s 2.2.2.2/32 -j ACCEPT
-A INPUT -s 1.1.1.1/32 -j ACCEPT

-A INPUT -s 127.0.0.1/8 -j ACCEPT

-A INPUT -j LOG
-A OUTPUT -j LOG

#drop everything else
-P INPUT DROP

COMMIT

In diesem Beispiel ist meine IP 1.1.1.1, meine Website ist 2.2.2.2 und dieser Server ist 3.3.3.3. Ich blockiere alle IPv6-Verbindungen (mein PC ist nur auf IPv4 konfiguriert). Ich bin fast sicher, dass diese Regeln in der Vergangenheit funktioniert haben, aber jetzt nicht mehr.

Antwort1

Fügen Sie Ihrer OUTPUTKette eine Regel hinzu, die Pakete für bereits bestehende Verbindungen zulässt. Die typische Regel, die Sie Ihrem Regelsatz hinzufügen, wäre:

-A OUTPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

Für die SSH-Verbindung dient dies dem gleichen Zweck wie die Regel, die Sie inIhre frühere Antwort. Es ist jedoch allgemeiner und lässt auch bidirektionale Paketflüsse im Zusammenhang mit allen anderen INPUTKettenregeln zu, die Sie in Zukunft hinzufügen, ohne dass in Ihrer OUTPUTKette weitere explizite Regeln vorhanden sind.

Antwort2

Scheint, als wäre eine bidirektionale Regel erforderlich. Durch Hinzufügen der folgenden Zeile kann ich auf meinen Server zugreifen:

-A OUTPUT -d 1.1.1.1/32 -j ACCEPT

verwandte Informationen