Wie kann ich alle Ports außer 22, 80 und 443 für den gesamten eingehenden Datenverkehr außer localhost blockieren?

Wie kann ich alle Ports außer 22, 80 und 443 für den gesamten eingehenden Datenverkehr außer localhost blockieren?

Ich möchte dieses Verhalten:

Alle externen Computer können nur eine Verbindung zu den Ports 22 (SSH), 80 (http) und 443 (https) meines Servers herstellen.

Alle Localhost-Apps können jedoch an jeden gewünschten Port gebunden werden.

Ich habe gesucht und das hier ist dabei herausgekommen:

iptables -A INPUT -p tcp -m tcp -m multiport ! --dports 22,80,443 -j DROP

Es macht, was ich will, blockiert aber auch alle Localhost-Apps. Was muss ich dort ändern, damit Localhost-Apps an jeden Port gebunden werden können?

Und wie kann ich die Regel dann dauerhaft machen?

Danke!

Antwort1

Regeln werden der Reihe nach abgeglichen. Erstellen Sie eine Regel, die localhost zulässt, vor der Regel, die es ablehnt.

iptables -A INPUT -p tcp -s localhost -m tcp -m multiport ! --dports 22,80,443 -j AKZEPTIEREN

iptables -A INPUT -p tcp -m tcp -m Multiport! --dports 22,80,443 -j DROP

Lesen Sie hier, wie Sie sie abhängig von Ihrem Betriebssystem speichern können. https://www.thomas-krenn.com/de/wiki/Iptables_Firewall_Regeln_dauerhaft_speichern

verwandte Informationen