¿Cuál es la forma correcta de abrir un rango de puertos en iptables?

56

Me he encontrado con artículos que aconsejan lo siguiente:

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

Y otros que afirman que lo anterior no funcionará y que iptables solo admite múltiples declaraciones de puerto con la --multiportopción.

¿Hay una manera correcta de abrir muchos puertos con iptables?

Paul Whalley
fuente
Pregunta relacionada: iptables y puertos múltiples
Cristian Ciupitu

Respuestas:

60

Esta es la forma correcta:

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

Como ejemplo. Fuente aquí .

Nathan C
fuente
55
Si no sabe, el estado del conjunto de reglas -Ies algo más seguro que -A.
user9517 admite GoFundMonica
@Iain, ¿podrías explicar el razonamiento detrás de eso?
jayhendren
2
@jayhendren muchos conjuntos de reglas tendrán una regla predeterminada para soltar todo, por ejemplo, -A INPUT -j REJECT --reject-with icmp-host-prohibitedal final de INPUT y otras tablas. El uso -Aagrega la regla al final de la tabla, después de la regla final, por lo que nunca se considerará como netfilter funciona en la primera partida gana. El uso -Iinserta la regla al comienzo de la tabla y, como tal, siempre se tendrá en cuenta.
user9517 admite GoFundMonica
44
@ Sin embargo, algunos conjuntos de reglas también tienen reglas al principio que filtran o ratelimitan paquetes, por lo que vale la pena señalar que -Ino siempre es más seguro si no conoce el conjunto de reglas.
Jayhendren
3
@jayhendren Creo que acabas de hacerlo y también noto que dije algo no siempre .
user9517 admite GoFundMonica
54

Lo que le han dicho es correcto, aunque lo ha escrito mal (lo ha 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 --dportssólo es necesario si el rango que desea abrir no es continuo, por ejemplo -m multiport --dports 80,443, que abrirá HTTP y HTTPS sólo - no los que en el medio.

Tenga en cuenta que el orden de las reglas es importante, y (como Iain alude en su comentario en otra parte) es su trabajo asegurarse de que cualquier regla que agregue esté en un lugar donde sea efectiva.

MadHatter
fuente
1
Podría aludir aquí también si lo desea;)
user9517 es compatible con GoFundMonica
1
¡Ji ji ji! Continúa, entonces, ¡vale la pena repetir el mensaje!
MadHatter
2
Esta es la respuesta correcta; Es más completo.
Andrew Kozak
10

TL; DR pero ...

Rango de puerto puro 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 múltiples puertos 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 ejemplo de rango múltiple de puertos múltiples equivalente con negación: iptables -A INPUT -p tcp -m multiport ! --dports 0:999,2001:65535 -j ACCEPT

Tener phun.

Bloodman
fuente