IPTables tun nicht was ich angefordert habe

645
Simon Song

Community hier ist großartig!

Ich habe einen drahtlosen ASUS 3100-Router und ungefähr 4 IP-Kameras. Bei meinem alten Router war es einfach, ausgehenden Datenverkehr zu blockieren, damit ich sicherstellen kann, dass die Kameras nicht "nach Hause telefonieren". Ich möchte dasselbe mit diesem Router tun, also entschied ich mich zuerst für das Port-Forwarding-Tool und begann dann, IPTABLES nachzuschlagen. Ich weiß nicht, ob dies ein Problem für asuswrt-merlin ist, um die Portweiterleitung für das Router-Admin-Tool und die iptables zu verwenden. Ich würde vermuten, nicht ... richtig?

Mein Ziel:

  1. Blockieren Sie standardmäßig ausgehenden und eingehenden Datenverkehr für 192.168.1.0/29
  2. Ausnahme : Ich möchte 120: 130 ABER nur für eine Handvoll vertrauenswürdiger IPs (Arbeit oder ein Haus von Freunden) öffnen. Nehmen wir an, diese IPs lauten 150.150.150.150 und 250.250.250.0/24 (ich verwende einen Browser, um auf diese Ports zuzugreifen, was wahrscheinlich nicht von Bedeutung ist). Wenn ich also auf CAMERA # 2 zugreifen wollte, wäre es DDNS.dns.com:121
  3. Ausnahme : Die Kameras senden E-Mails über SMTPS (Port 465), sodass ich sie öffnen möchte, damit sie die E-Mails versenden können.

Ich möchte nicht INPUTS / OUTPUTS blockieren, da ich über ein IoT-Material verfügt, das an einem anderen Ort kommuniziert. Daher möchte ich nicht die Standardrichtlinie ändern, um dies zu blockieren. Es sei denn, ich missverstehe, wie das funktioniert.

Ich habe den Router mit dem neuesten Asuswrt-Merlin geflasht und JFFS-benutzerdefinierte Skripts aktiviert. Ich habe eine Datei unter /jffs/scripts/angerufen firewall-start. Ich habe die Datei mit shebang bearbeitet und einige Regeln hinzugefügt (wird später darauf zurückkommen). Ich habe benutzt service restart_firewall. Das Problem, mit dem ich mich beschäftige, ist, dass ich nicht die richtigen Ergebnisse bekomme und es sehr wahrscheinlich ist, dass ich die Regeln falsch schreibe und / oder vielleicht die Reihenfolge.

Ich habe iptables vorwärts probiert, ich habe iptables INPUT & OUTPUT ausprobiert, und ich habe eine Kombination aus "INSERT" / "APPEND" ausprobiert, und aus irgendeinem Grund wird es entweder alles blockieren oder es ganz offen lassen. Es folgt niemals meinem ultimativen Ziel. Ich bin sicher, es hat mit einigen Ordnungs- oder Standardregeln für FORWARD oder INPUT oder OUTPUT zu tun, aber ich kann es einfach nicht herausfinden.

Ich habe die Regeln auch einzeln eingefügt. Etwas einfaches zu beginnen.

iptables -I FORWARD -d 192.168.1.0/29 -p tcp --dport 17111 -j DROP

Das lässt es fallen. Manchmal ist es wahnsinnig, denn wenn ich canyouseeme.org versuche und sagt, dass der Code erfolgreich eingefügt wurde, heißt es immer noch erfolgreich. Manchmal heißt es, dass es fehlgeschlagen ist (was bedeutet, dass es gefallen ist). Manchmal ist es das, auf das ich stoße, aber es klingt, als sei es ein nicht zusammenhängendes Problem. Dann sage ich mir ok das funktioniert. Jetzt können wir eine INSERT-Regel hinzufügen, nachdem INSERT offensichtlich nach oben geht, also habe ich nach dem obigen Code Folgendes hinzugefügt:

iptables -I FORWARD -s myworkip -d 192.168.1.0/29 -p tcp --dport 121 -j ACCEPT

Also mit diesen beiden in der Datei. Ich spüle die iptables ab und starte den Firewall-Start-Dienst neu, damit die neuen Regeln übernommen werden. Ich benutze, iptables -Lich sehe es in der richtigen Reihenfolge. Testen Sie es, indem Sie die Webseiten ddns.dns.com:121 und nada erneut laden. Es wird nicht geladen. Ist es eine Zwischenspeicherung? braucht es zeit Manchmal warte ich 5 Minuten und immer noch nichts. Ich benutze canyouseeme.org wieder und sagt immer noch aus, dass der letzte DROP-Code fehlgeschlagen ist.

Ich brauche Experten, die mir helfen. Hier ist meine bestehende iptable ab sofort:

Chain INPUT (policy ACCEPT) target prot opt source destination DROP icmp -- anywhere anywhere icmp echo-request ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED DROP all -- anywhere anywhere state INVALID PTCSRVWAN all -- anywhere anywhere PTCSRVLAN all -- anywhere anywhere ACCEPT all -- anywhere anywhere state NEW ACCEPT all -- anywhere anywhere state NEW OVPN all -- anywhere anywhere state NEW ACCEPT udp -- anywhere anywhere udp spt:bootps dpt:bootpc INPUT_ICMP icmp -- anywhere anywhere DROP all -- anywhere anywhere  Chain FORWARD (policy DROP) target prot opt source destination ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED other2wan all -- anywhere anywhere DROP all -- anywhere anywhere state INVALID ACCEPT all -- anywhere anywhere NSFW all -- anywhere anywhere ACCEPT all -- anywhere anywhere ctstate DNAT OVPN all -- anywhere anywhere state NEW ACCEPT all -- anywhere anywhere  Chain OUTPUT (policy ACCEPT) target prot opt source destination  Chain ACCESS_RESTRICTION (0 references) target prot opt source destination  Chain FUPNP (0 references) target prot opt source destination  Chain INPUT_ICMP (1 references) target prot opt source destination RETURN icmp -- anywhere anywhere icmp echo-request RETURN icmp -- anywhere anywhere icmp timestamp-request ACCEPT icmp -- anywhere anywhere  Chain NSFW (1 references) target prot opt source destination  Chain OVPN (2 references) target prot opt source destination  Chain PControls (0 references) target prot opt source destination ACCEPT all -- anywhere anywhere  Chain PTCSRVLAN (1 references) target prot opt source destination  Chain PTCSRVWAN (1 references) target prot opt source destination  Chain SECURITY (0 references) target prot opt source destination RETURN tcp -- anywhere anywhere tcpflags: FIN,SYN,RST,ACK/SYN limit: avg 1/sec burst 5 DROP tcp -- anywhere anywhere tcpflags: FIN,SYN,RST,ACK/SYN RETURN tcp -- anywhere anywhere tcpflags: FIN,SYN,RST,ACK/RST limit: avg 1/sec burst 5 DROP tcp -- anywhere anywhere tcpflags: FIN,SYN,RST,ACK/RST RETURN icmp -- anywhere anywhere icmp echo-request limit: avg 1/sec burst 5 DROP icmp -- anywhere anywhere icmp echo-request RETURN all -- anywhere anywhere  Chain default_block (0 references) target prot opt source destination  Chain logaccept (0 references) target prot opt source destination LOG all -- anywhere anywhere state NEW LOG level warning tcp-sequence tcp-options ip-options prefix "ACCEPT " ACCEPT all -- anywhere anywhere  Chain logdrop (0 references) target prot opt source destination LOG all -- anywhere anywhere state NEW LOG level warning tcp-sequence tcp-options ip-options prefix "DROP " DROP all -- anywhere anywhere  Chain other2wan (1 references) target prot opt source destination RETURN all -- anywhere anywhere DROP all -- anywhere anywhere 

Danke im Voraus!

1
Wenn Sie ein Problem lösen, ist es gut, nur ein kleines Szenario zu erstellen und es gleichzeitig zu testen: Eine Regel für ausgehende / eingehende Nachrichten usw. Fängt klein an und wird größer - dann wissen Sie, wo und wann das Problem fehlgeschlagen ist. Ihre Firewall-Tische sind einfach zu groß, Sir. Peter Teoh vor 5 Jahren 0
@ PeterTeoh Danke. Ich konnte das Problem lösen. Die Regeln funktionierten, aber aus irgendeinem Grund dauerte es einige Zeit, um zu bestätigen / zu bestätigen. Ich weiß nicht, warum es Zeit brauchte, vielleicht waren es die Werkzeuge, die ich verwendete. Die iptables waren nicht so groß. Simon Song vor 5 Jahren 0

0 Antworten auf die Frage