iptables-Fehler: unbekannte Option --dport

iptables-Fehler: unbekannte Option --dport

Der Befehl iptables erkennt eine der am häufigsten verwendeten Optionen beim Definieren von Regeln nicht mehr: --dport.

Ich erhalte diesen Fehler:

[root@dragonweyr /home/calyodelphi]# iptables -A INPUT --dport 7777 -j ACCEPT_TCP_UDP
iptables v1.4.7: unknown option `--dport'
Try `iptables -h' or 'iptables --help' for more information.

Der obige Befehl „Add Rule“ ist nur ein Beispiel zum Aktivieren von Terraria-Verbindungen.

Hier ist meine aktuelle Barebone-IPtables-Konfiguration ( listiptableshat einen Alias ​​zu iptables -L -v --line-numbers), und es ist offensichtlich, dass das --dportin der Vergangenheit funktioniert hat:

root@dragonweyr /home/calyodelphi]# listiptables 
Chain INPUT (policy DROP 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1       39  4368 ACCEPT     all  --  lo     any     anywhere             anywhere            
2      114 10257 ACCEPT     all  --  any    any     anywhere             anywhere            state RELATED,ESTABLISHED 
3        1    64 ACCEPT     tcp  --  eth1   any     anywhere             anywhere            tcp dpt:EtherNet/IP-1 
4       72 11610 ACCEPT     all  --  eth1   any     anywhere             anywhere            

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 91 packets, 10045 bytes)
num   pkts bytes target     prot opt in     out     source               destination         

Chain ACCEPT_TCP_UDP (0 references)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            

Ich versuche auch, eine benutzerdefinierte Kette zu definieren (inspiriert vondiese Frage), um TCP- und UDP-Verbindungen zu akzeptieren, sodass ich nicht für alles, wofür ich TCP und UDP aktivieren möchte (wie etwa einen Minecraft- oder Terraria-Server oder einen ganz anderen Dienst), zwei Regeln definieren muss. Aber auch das funktioniert nicht:

[root@dragonweyr /home/calyodelphi]# iptables -P ACCEPT_TCP_UDP DROP
iptables: Bad built-in chain name.

Das wird langsam sehr frustrierend, höflich ausgedrückt (so viele Schimpfwörter, die dabei verwendet werden, würden einen Seemann dazu veranlassen, mir zu sagen, ich solle aufpassen, was ich sage). Mein Google-Fu ist furchtbar, daher habe ich noch keine funktionierende Lösung dafür gefunden. Auf meinem Router läuft CentOS 6.5. Jede Hilfe und jeder Hinweis, den Sie mir geben können, wäre großartig.

BEARBEITEN:

Bonusfrage: Ich plane auch, eine Portweiterleitung zu konfigurieren. Ist es immer noch notwendig, Regeln festzulegen, um eingehende Verbindungen über bestimmte Ports zu akzeptieren?

Antwort1

Geben Sie zuerst eine -pOption wie -p tcpoder ein -p udp.

Beispiele:

iptables -A INPUT -p tcp --dport 22 -m Status --state NEU -j DROP

iptables -A INPUT -p udp --dport 53 --sport 1024:65535 -j AKZEPTIEREN

Sie könnten es auch versuchen, -p allaber ich habe das nie getan und finde in den Beispielen nicht viel Unterstützung dafür.

Antwort2

Eine andere mögliche Lösung ist, dass Sie vergessen, als Root zu arbeiten. Ich bin gerade auf dieses Problem gestoßen, als ich das Debian-Tutorial verwendet habe.

$ iptables -t nat -p tcp -I PREROUTING --src 0/0 --dst 127.0.0.1  --dport 80 -j REDIRECT --to-ports 8080
iptables v1.8.2 (nf_tables): unknown option "--dport"
$ sudo iptables -t nat -p tcp -I PREROUTING --src 0/0 --dst 127.0.0.1 --dport 80 -j REDIRECT --to-ports 8080
# OK

Antwort3

Wenn Sie --dport verwenden, ist das Protokoll (-p) erforderlich. Beispiel:

-p tcp

Antwort4

@dmourati und @diegows haben Ihre erste Frage bereits beantwortet, also werde ich mich Ihrer zweiten Frage widmen. Und Bonusfrage. Und ich gebe auch noch einen Bonustipp dazu ;)

iptables -P nurakzeptiert INTEGRIERTE Ketten. In der filterTabelle wären das INPUT, OUTPUT, und FORWARDKetten.

Die Portweiterleitung wird nicht von der INPUTKette übernommen, Sie müssen den Port also nicht in der INPUTKette öffnen. Estutaber von der Kette angefasst werden FORWARD. Seien Sie dabei vorsichtig.

Bonus-Tipp:Beim Lernen und/oder bei der Fehlerbehebung ist iptablesdie Ausgabe von iptables-saveum Längen besser als die Ausgabe von iptables -L -v --line-numbers. Probieren Sie es aus, Sie werden angenehm überrascht sein :)

verwandte Informationen