web-dev-qa-db-fra.com

Quelle est la bonne façon d'ouvrir une gamme de ports dans iptables

J'ai rencontré des articles conseillant ce qui suit:

iptables -A INPUT -p tcp 1000:2000 -j ACCEPT

Et d'autres indiquant que ce qui précède ne fonctionnera pas et iptables ne prend en charge que plusieurs déclarations de port avec le --multiport option.

Existe-t-il un moyen correct d'ouvrir de nombreux ports avec iptables?

59
Paul Whalley

C'est la bonne façon:

iptables -A INPUT -p tcp --match multiport --dports 1024:3000 -j ACCEPT

Par exemple. Source ici .

62
Nathan C

Ce qu'on vous a dit est vrai, bien que vous l'ayez mal écrit (vous avez oublié --dport).

iptables -A INPUT -p tcp --dport 1000:2000 ouvrira le trafic entrant vers TCP ports 1000 à 2000 inclus.

-m multiport --dports n'est nécessaire que si la plage que vous souhaitez ouvrir n'est pas continue, par exemple -m multiport --dports 80,443, qui ouvrira HTTP et HTTPS seulement - pas ceux entre les deux.

Notez que l'ordre des règles est important et (comme Iain le mentionne dans son commentaire ailleurs), c'est votre travail de vous assurer que toute règle que vous ajoutez est à un endroit où elle sera efficace.

57
MadHatter

TL; DR mais ...

Gamme de ports purs sans module multiport: iptables -A INPUT -p tcp --dport 1000:2000 -j ACCEPT

Exemple multiport équivalent: iptables -A INPUT -p tcp -m multiport --dports 1000:2000 -j ACCEPT

... et variation sur plusieurs ports avec plusieurs plages (oui, c'est aussi possible): iptables -A INPUT -p tcp -m multiport --dports 1000,1001,1002:1500,1501:2000 -j ACCEPT

... et exemple multi-port multi-plage équivalent avec négation: iptables -A INPUT -p tcp -m multiport ! --dports 0:999,2001:65535 -j ACCEPT

Ayez phun.

11
BloodMan

Selon man iptables-extensions, vous pouvez définir une plage de ports en utilisant simplement le commutateur --dport.

tcp
Ces extensions peuvent être utilisées si `--protocol tcp 'est spécifié. Il propose les options suivantes:
[!] --destination-port, - dport port [: port]

Port de destination ou port ( spécification de plage . L'indicateur --dport est un alias pratique pour cette option.

Donc, cela spécifie également une plage de ports:
iptables -A INPUT -p tcp --dport 1000:2000 -j ACCEPT

0
starvis