
Meine iptables-Regeln lauten wie folgt:
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-N f2b
-A INPUT -p tcp -m multiport --dports 80,443 -j f2b
-A INPUT -d (my public facing ip)/32 -p udp -m udp --dport 10000 -j DROP
-A f2b -s 1.1.1.1/32 -j REJECT --reject-with icmp-port-unreachable
-A f2b -j RETURN
Alle anderen Tabellen haben auch jede Kette auf ACCEPT.
Warum kann 1.1.1.1 nicht auf die TCP-Ports 80 und 443 zugreifen, aber jeder kann weiterhin auf Port 10000 auf meiner öffentlichen IP zugreifen?
Antwort1
-A INPUT -p tcp -m multiport --dports 80,443 -j f2b
Sagt, wenn gehe zu einer Kette namensf2b
-A f2b -s 1.1.1.1/32 -j REJECT --reject-with icmp-port-unreachable
Die erste Regel in der Kette namensf2bsagen Sie ABLEHNEN 1.1.1.1/32
Was 8.8.8.8 betrifft, kann ich den Datenverkehr nicht sehen, vielleicht verwendet er TCP und nicht UDP. 8.8.8.8 ist ein Ziel, wenn also die Quelle 8.8.8.8 und das Ziel etwas anderes wäre, würde es nicht der Regel entsprechen.
Versuche dies:
-I FORWARD 1 -d 8.8.8.8/32 -p udp -m udp --dport 10000 -j DROP
Antwort2
Wenn Sie den Verkehr blockieren möchten, deraus8.8.8.8 davon abzuhalten, Ihren Port zu erreichen, verwenden Sie -s
(Quelladresse) und nicht -d
(Zieladresse)
Antwort3
Ich habe das Problem behoben, indem ich DROP durch REJECT ersetzt habe. Ich weiß nicht, warum das funktioniert, aber hier ist das Ergebnis:
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-N f2b
-A INPUT -p tcp -m multiport --dports 80,443 -j f2b
-A INPUT -d (my public facing ip)/32 -p udp -m udp --dport 10000 -j REJECT --reject-with icmp-port-unreachable
-A f2b -s 1.1.1.1/32 -j REJECT --reject-with icmp-port-unreachable
-A f2b -j RETURN
EDIT: Ich habe festgestellt, dass DROP einwandfrei funktioniert. Ich habe nmap verwendet, um zu sehen, ob der Port geöffnet war, und vergessen, dass nmap nur dann sagt, dass er geschlossen ist, wenn es eine Ablehnung erhält.