iptables: Ist es gefährlich, nach Quellport zu filtern?

0

Ich möchte ein zustandsloses Firewall-Setup ausführen und habe derzeit die folgenden Regeln:

#Do not track any packet
*raw
:PREROUTING ACCEPT [0:0]
-A PREROUTING -j NOTRACK
COMMIT

#Actual firewall rules
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp --dport 22 -j ACCEPT
-A INPUT -p udp --sport 53 -j ACCEPT
-A INPUT -m multiport -p tcp --sport 80,443 -j ACCEPT
COMMIT

Nun ist meine Frage: Kann ein Angreifer nicht remote auf einen Dienst auf meinem Server zugreifen, solange er diese Verbindung von seinem Computer über einen Quellport 80, 443 oder 53 herstellt?

Die Sache
quelle

Antworten:

0

Diese Regeln lassen alle eingehenden Pakete zu, sofern der Ursprungsport 53 (UDP), 80 (TCP) oder 443 (TCP) ist. Egal wie der Zielhafen ist. Somit sind auf Ihrem Computer alle Ports für diese Pakete geöffnet. Und die Antwort lautet ja .

Eine allgemeine iptablesKonfiguration würde anhand der Zielports filtern:

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT

UPDATE: Wie Sie bemerkt haben, wird die Zustandsmaschine verwendet. Ohne diese Funktion kann die Firewall bereits hergestellte TCP-Verbindungen nicht verfolgen. Der Zielport (z. B. 80) wird vom Server geändert, nachdem die Verbindung vom Listening-Socket hergestellt wurde.

drk.com.ar
quelle
Ich denke, Sie haben das Ziel verfehlt, indem Sie die Verwendung von "-m state" vermieden haben :) Aber danke für die Klarstellung. Ich denke, es ist für mich wieder das Zeichenbrett.
TheThing
Meine Antwort auf Ihre Frage ist noch gültig. Sie haben Recht, ich habe die staatenlose Anforderung in meinen Beispielregeln vergessen. Wenn Sie jedoch nicht über die Zustandsmaschine verfügen, kann die Firewall den Datenverkehr, den ein Port 80 empfangen würde, nicht filtern. Da der Zielport vom Server nach dem Herstellen der Verbindung geändert wird.
drk.com.ar
Genau. Ich werde die aktualisierte Antwort als die richtige Antwort markieren. Danke für die Hilfe o /
TheThing
inai.de/documents/Perfect_Ruleset.pdf "-m Status: ersetzt durch -m conntrack -j NOTRACK: ersetzt durch -j CT --notrack"
barlop 08.06.14