Me he encontrado con artículos que aconsejan lo siguiente:
iptables -A INPUT -p tcp 1000:2000 -j ACCEPT
Y otros afirman que lo anterior no funcionará y que iptables solo admite múltiples declaraciones de puertos con la --multiport
opción.
¿Existe una forma correcta de abrir muchos puertos con iptables?
Respuesta1
Esta es la forma correcta:
iptables -A INPUT -p tcp --match multiport --dports 1024:3000 -j ACCEPT
Como ejemplo. Fuenteaquí.
Respuesta2
Lo que te han dicho es correcto, aunque lo hayas escrito mal (lo hayas olvidado --dport
).
iptables -A INPUT -p tcp --dport 1000:2000
abrirá el tráfico entrante a los puertos TCP 1000 a 2000 inclusive.
-m multiport --dports
solo es necesario si el rango que desea abrir no es continuo, por ejemplo -m multiport --dports 80,443
, lo que abrirá HTTP y HTTPSsolo- no los que están en el medio.
Tenga en cuenta que el orden de las reglas es importante y (como alude Iain en su comentario en otra parte) es su trabajo asegurarse de que cualquier regla que agregue esté en un lugar donde sea efectiva.
Respuesta3
TL;DR pero...
Gama de puertos puros sin módulo multipuerto:
iptables -A INPUT -p tcp --dport 1000:2000 -j ACCEPT
Ejemplo multipuerto equivalente:
iptables -A INPUT -p tcp -m multiport --dports 1000:2000 -j ACCEPT
...y variación sobre multipuerto con múltiples rangos (sí, esto también es posible):
iptables -A INPUT -p tcp -m multiport --dports 1000,1001,1002:1500,1501:2000 -j ACCEPT
...y un ejemplo equivalente de múltiples puertos y múltiples rangos con negación:
iptables -A INPUT -p tcp -m multiport ! --dports 0:999,2001:65535 -j ACCEPT
Hazlo.
Respuesta4
Hay otra forma de agregar la entrada directamente en el archivo Iptables. ubicación/etc/sysconfig/iptables
-A INPUT -p tcp -m multiport --dports 1024:3000 -m state --state NEW -j ACCEPT
después de eso reinicie el servicio iptable