it-swarm.com.de

Wie blockiere ich alle Ports außer 80.443 mit iptables?

Das Blockieren aller Ports (rein und raus) ist einfach, aber mit dem Wort "ausgenommen" ist es schwierig. Ich kenne keine Regeln, die die Bedingung erfüllen.

PS: Ich weiß, dass diese Frage nichts Neues ist. Tatsächlich habe ich aber keine Hilfe gefunden. Also, hilf mir bitte!

13
user71169

Zuerst die ! ist das NICHT-Symbol.

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

Zweitens haben die Regeln, die Sie geschrieben haben, möglicherweise nicht die erwarteten Ergebnisse. Sie löschen alles, einschließlich der Antwort auf die Verbindung an Port 80. Daher können Sie für die Zwecke eines Webservers keine Verbindung zu diesem Port herstellen.

Diese Regeln ermöglichen RELATED- und ESTABLISHED-Verbindungen, sodass ein Webserver funktionieren sollte, wenn Sie dies tatsächlich versuchen.

iptables -A INPUT -p tcp -m tcp -m multiport --dports 80,443 -j ACCEPT
<insert further allowed list here>
iptables -A INPUT -m conntrack -j ACCEPT  --ctstate RELATED,ESTABLISHED
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -j DROP
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -j DROP
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -j DROP
23
cybernard
# Set the default policy of the INPUT chain to DROP
iptables -P INPUT DROP

# Accept incomming TCP connections from eth0 on port 80 and 443
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 443 -j ACCEPT

Dies sollte Ihnen geben, was Sie brauchen

5
Fazer87

Sie können die Standardaktion auf DROP setzen und dann Ausnahmeregeln erstellen, um 80 und 443 zuzulassen.

# Setting default policies:
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

# Exceptions to default policy
iptables -A INPUT -p tcp --dport 80 -j ACCEPT       # HTTP
iptables -A INPUT -p tcp --dport 443 -j ACCEPT      # HTTPS

iptables durchsucht die Liste der Ausnahmen, bis eine Übereinstimmung gefunden wird. Es führt dann die durch den Parameter -j angegebene Aktion aus (in diesem Fall ACCEPT). Wenn keine Übereinstimmung gefunden wird, wird auf die Standardrichtlinie zurückgegriffen und das Paket verworfen.

Beachten Sie , dass bei dieser Problemumgehung alle Unterdomänen gesperrt werden. Beispiel: Mit dieser Methode funktioniert sie auf www.mydomain.com, aber Ihre Subdomain, sagen wir mal, www.mydomain.com wird nicht für DNS-Fehler geöffnet.

3
mtak