
Ich habe eine iptable-Regel, mit der ich ein Subnetz von IPs zulasse. Die Regel lautet wie folgt:
iptables -I INPUT 2 -i eth0 -s xxxx/24 -d xxXx -j AKZEPTIEREN
Ich möchte beispielsweise das Subnetz 172.16.0.0/24 zulassen. Kann es sein, dass ich auf das Problem stoße, dass eine IP aus diesem Subnetz keinen Zugriff hat, obwohl ich dieses Subnetz als zulässig konfiguriert habe?
Ich beschäftige mich mit einem ähnlichen Problem. Ich habe 172.16.0.0/24 so konfiguriert, dass es von iptables aus zugelassen wird, aber wenn ich versuche, von IP 172.16.0.9 aus darauf zuzugreifen, habe ich keinen Zugriff.
Antwort1
Sie können Netfilter-Regeln debuggen, indem Sie das TRACE-Ziel aktivieren:
Laden Sie zuerst das entsprechende Kernelmodul, um direkt ins Syslog zu protokollieren:
modprobe -i ipt_LOG
Erstellen Sie dann eine Regel, um den gesamten Datenverkehr Ihres fehlerhaften Systems zu protokollieren:
iptables -t raw -A PREROUTING --source 172.16.0.9 -p tcp -j TRACE
Die Pakete werden mit dem String-Präfix protokolliert: TRACE: tablename:chain- name:type:rulenum
wobei der Typ "rule" für eine einfache Regel, "return" für eine implizite Regel am Ende einer benutzerdefinierten Kette und "policy" für die Richtlinie der integrierten Ketten sein kann. Die Regelnummer finden Sie mitiptables -L --line-numbers
Antwort2
Versuchen Sie, „-d xxxx“ zu entfernen. Ich sage das, weil INPUT den gesamten Datenverkehr bezeichnet, der für Ihren Computer bestimmt ist. Sie müssen also kein Ziel angeben. EDIT: Versuchen Sie auch, „-p tcp“ vor „-s xxxx/24“ hinzuzufügen. Ich denke, Sie müssen das Protokoll für die Übereinstimmung angeben. – aseaudi vor 17 Min.
Antwort3
Ich denke über zwei mögliche Probleme nach:
1 - Sie lassen keinen Datenverkehr von Ihrem Computer aus zu
iptables -I OUTPUT 1 -i eth0 -d x.x.x.x/24 -j ACCEPT
2 - Sie verhindern, dass Broadcast-Pakete Ihren Computer erreichen
versuchen Sie dies anstelle Ihrer ursprünglichen Eingabe:
iptables -I INPUT 1 -i eth0 -s x.x.x.x/24 -j ACCEPT
ohne eine Ziel-IP zu verwenden.