it-swarm.com.de

Iptables, das mehrere Multiports in einer Regel festlegt

Die Multiport-Erweiterung hat ein Limit (15) für die Ports, die angegeben werden können.

Aber ich muss viel mehr Portnummern in einer einzelnen Regel angeben, also habe ich versucht, mehrere Multiports in einer Regel zu verwenden, wie:

iptables -A INPUT -p tcp -m multiport --destination-ports 59100 -m multiport --destination-ports 3000 -m state --state NEW -j REJECT --reject-with tcp-reset

Das Ergebnis von iptables -L INPUT -n ist

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
REJECT     tcp  --  0.0.0.0/0            0.0.0.0/0           multiport dports 59100 multiport dports 3000 state NEW reject-with tcp-reset

Es stellt sich jedoch heraus, dass beide Ports nicht abgelehnt werden, wenn ich versuche, von einem Client aus eine Verbindung herzustellen.

Die Version ist v1.4.2-rc1.

Gibt es eine Problemumgehung oder was soll ich tun, wenn ich mehr als 15 Ports in einer Regel angeben muss.

19
ning

Um diese Einschränkung zu umgehen, verwende ich zwei Fälle, um alle Fälle abzudecken.

Wenn ich zum Beispiel diese 18 Ports zulassen oder ablehnen möchte:

465,110,995,587,143,11025,20,21,22,26,80,443,3000,10000,7080,8080,3000,5666

Ich benutze die folgenden Regeln:

iptables -A INPUT -p tcp -i eth0 -m multiport --dports 465,110,995,587,143,11025,20,21,22,26,80,443 -j ACCEPT

iptables -A INPUT -p tcp -i eth0 -m multiport --dports 3000,10000,7080,8080,3000,5666 -j ACCEPT

Die obigen Regeln sollten auch für Ihr Szenario funktionieren. Sie können eine weitere Regel erstellen, wenn Sie sowohl für die erste als auch für die zweite Regel ein Limit von 15 Ports festlegen.

30
vinod garag

Sie müssen mehrere Regeln verwenden, um eine OR-ähnliche Semantik zu implementieren, da Übereinstimmungen immer innerhalb einer Regel zusammen UND-verknüpft werden. Alternativ können Sie einen Vergleich mit der Portindizierung von ipsets (ipset create blah bitmap:port) durchführen.

3
jørgensen

Soweit ich weiß, ist das Schreiben mehrerer Übereinstimmungen eine logische UND-Verknüpfung. Ihre Regel bedeutet also, wenn der Zielport "59100" UND "3000" ist, lehnen Sie dann die Verbindung mit tcp-reset ab. Problemumgehung verwendet die Option -mport. Achten Sie auf die Manpage.

0
neoinzion