fragen stichworte

iptables erlaubt nur ssh und https

Ich versuche, die iptables auf meinem Gerät so zu konfigurieren, dass nur SSH und HTTPS Datenverkehr zugelassen wird. Insbesondere wird das HTTPS-Protokoll verwendet, um eine REST-API von einem Java-Client aus zu einem Remote-Server aufzurufen.

Dies ist meine iptables:

iptables -F

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

#SSH
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

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

#HTTPS
iptables -A OUTPUT -p tcp --sport 443 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT

Alles funktioniert wie erwartet, mit Ausnahme des HTTPS-Verkehrs, der von iptables blockiert wird.

Was habe ich falsch gemacht?

antworten

Blockieren Sie nicht alle ausgehenden Regeln. Port 443 wird nicht als Quelle zum Abrufen von Daten von einem anderen Server ausgewählt. Und ich denke, dass das Blockieren eingehender Regeln ausreicht, um die Serversicherheit zu gewährleisten. Ruhe ist alles gut. Sie können die folgenden Regeln verwenden, wenn Sie möchten.

iptables -F
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp -j DROP