Cómo permitir con Iptables todos los puertos solo para ips locales excepto dos puertos específicos

Cómo permitir con Iptables todos los puertos solo para ips locales excepto dos puertos específicos

Estoy buscando una manera de permitir conexiones en todos los puertos de mi servidor Debian solo para una IP local (192.168.2.*) excepto dos puertos específicos X e Y, que deberían permitirse para cualquier IP. Si la IP no es local, se deben bloquear todas las conexiones a todos los puertos excepto a los puertos X e Y.

¿Cómo puedo manejar esta situación con Iptables?

Respuesta1

No estoy seguro de haberte entendido bien, pero aquí te explico cómo hacerlo.

Para permitir todos los puertos para el rango de IP local 192.168.2.0/24 excepto dos puertos (X e Y), puede usar una regla como:

iptables -A INPUT -s 192.168.2.0/24 -p tcp --dport X -j DROP
iptables -A INPUT -s 192.168.2.0/24 -p tcp --dport Y -j DROP
iptables -A INPUT -s 192.168.2.0/24 -p tcp -j ACCEPT

Para otras IP no locales, permita conexiones SÓLO a X e Y, puede usar:

iptables -A INPUT -p tcp --dport X -j ACCEPT
iptables -A INPUT -p tcp --dport Y -j ACCEPT
iptables -A INPUT -p tcp -j DROP

No especificó el protocolo (TCP o UDP) y supongo que TCP como queda claro arriba. Debe insertar las reglas en este orden específico y asumo que no hay otras reglas predefinidas.

información relacionada