erreur iptables: option inconnue --dport


19

La commande iptables ne reconnaît plus l' une des options les plus utilisées lors de la définition des règles: --dport.

Je reçois cette erreur:

[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.

La commande add rule ci-dessus n'est qu'un exemple d'activation des connexions Terraria.

Voici ce que j'ai actuellement en tant que configuration iptables barebones ( listiptablesalias iptables -L -v --line-numbers), et il est évident que cela --dporta fonctionné dans le passé:

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            

J'essaie également de définir une chaîne personnalisée (inspirée de cette question ) pour accepter les connexions tcp et udp afin de ne pas avoir à définir deux règles pour tout ce que je veux activer tcp et udp (comme un Minecraft ou Serveur Terraria, ou un autre service entièrement). Mais même cela ne fonctionne pas:

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

Cela devient très frustrant, en termes polis (la quantité de bavardages impliqués avec cela ferait qu'un marin me dise de surveiller ma bouche). Mon Google-fu est terrible, donc je n'ai pas encore trouvé de solution de travail pour tout cela. J'exécute CentOS 6.5 sur le routeur. Toute aide et pointeurs que vous pourriez offrir serait génial.

ÉDITER:

Question bonus: je prévois également de configurer la redirection de port. Est-il encore nécessaire de définir des règles pour accepter les connexions entrantes sur des ports spécifiques?

Réponses:


27

Donnez d'abord une -poption comme -p tcpou -p udp.

Exemples:

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

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

Vous pouvez également essayer, -p allmais je ne l'ai jamais fait et je ne trouve pas trop de soutien dans les exemples.


1
J'ai juste essayé avec -p allet j'ai exactement la même erreur. unknown option --dport. Cela a fonctionné -p tcpmais cela ne va pas vraiment m'aider dans ce cas car cela conduit simplement au même problème: définir des règles tcp / udp individuelles pour tout.
Calyo Delphi

D'après mon expérience, l'utilisation alln'a jamais fonctionné avec la spécification d'un port. Cependant, au lieu d'avoir plusieurs règles pour différents protocoles, vous pouvez penser aux règles dans une direction différente. Créez des règles basées sur le protocole, puis utilisez l' multiportsoption pour regrouper certaines règles.
canadmos

Donc, si je veux activer les connexions Terraria et Minecraft, je peux utiliser des multiports pour ouvrir 7777 et 25565 et créer une règle TCP et UDP pour chaque paire de ports?
Calyo Delphi

3
L'option -p doit être un protocole unique qui a le concept de ports ( -p ICMP --dport whateverne fonctionnerait pas non plus, pour des raisons évidentes).
Falcon Momot

9

Le protocole (-p) est requis si vous utilisez --dport. Exemple:

-p tcp

De plus, il doit spécifier un protocole qui a le concept de ports, comme l'a souligné @FalconMomot dans un commentaire plus tôt.
un CVn

Vous avez raison, pour ce détail :)
Diego Woitasen

3

@dmourati et @diegows ont déjà répondu à votre première question, je vais donc aborder votre deuxième question. Et question bonus. Et je vais aussi ajouter un pourboire bonus;)

iptables -P accepte uniquement les chaînes BUILT-IN. Dans le filtertableau, ce serait INPUT, OUTPUTet des FORWARDchaînes.

La redirection de port n'est pas gérée par la INPUTchaîne, vous n'avez donc pas à ouvrir le port dans la INPUTchaîne. Il est cependant géré par la FORWARDchaîne. Soyez prudent là-dessus.

Astuce bonus: lors de l'apprentissage et / ou du dépannage iptables, la sortie de iptables-saveest mieux que la sortie de iptables -L -v --line-numbers. Essayez-le, vous serez agréablement surpris :)


+1 pour une bonne réponse, mais je suis un peu surpris par votre dernier commentaire. Je déteste diagnostiquer les iptablesproblèmes de la -savesortie; pourquoi le trouvez-vous mieux que iptables -L -n -v [--line-numbers]?
MadHatter prend en charge Monica

Exemple simple @MadHatter: vous pouvez facilement voir que les règles avec les --dportoptions ont réellement -p tcpen face. Vous pouvez également voir comment / quand le traitement des règles passe d'une chaîne intégrée (par exemple, INPUT) à une chaîne personnalisée (par exemple, ACCEPT_TCP_UDP). Ces deux informations importantes ne sont pas visibles dans la sortie de iptables -L -n.
pepoluan

3
Autre avantage: je peux le faire iptables-save > somefile, éditer en somefileutilisant vim, puis faire iptables-apply -t 600 somefilepour le tester. Si je me bloque par inadvertance, après 600 secondes, les règles reviennent.
pepoluan

L'astuce bonus est très appréciée et déjà utilisée. J'avais utilisé iptables-savepour m'aider à apprendre d'un vidage de configuration brut avant de poser cette question. FORWARDCependant, je ne m'attendais pas à ce que la chaîne soit là où je dois faire attention pour la redirection de port. Je vais devoir lire à ce sujet.
Calyo Delphi

@CalyoDelphi si vous effectuez une recherche sur "diagramme de flux de paquets netfilter", vous verrez où chaque table et chaîne s'applique ;-)
pepoluan
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.