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.