Crear una "lista blanca" de IP para iptables

Crear una "lista blanca" de IP para iptables

Estoy usando un módem/enrutador celular que tiene iptables. También hay una interfaz de usuario web torpe que permite ajustes simples, como activar WAN ICMP/HTTPS/SSH. Claramente no quiero que esos puertos sean amplios y de cara al público. Pero me gustaría tener acceso de administración remota a este dispositivo desde una lista blanca predeterminada de direcciones. Posiblemente haya hasta 10 direcciones y algunas sean rangos/subredes de IP. He probado esto con una sola dirección con una regla como

-A HTTPS_WAN_INPUT -i ppp0 -s x.x.x.x -p tcp -m tcp --dport 443 -j ACCEPT

Pero la perspectiva de escribir reglas como esa 10 veces y para cada puerto/protocolo parece complicada, así que estoy escribiendo para ver si hay una mejor manera de hacer esto. ¿Puedo crear una variable $WHITELIST que contenga todas las direcciones y usarla en -s? ¿O puedo aplicar la lista blanca a algo más arriba en la cadena, como una de las políticas?

Solo estoy tratando de descubrir si existe una forma más elegante de permitir el acceso remoto a un conjunto de IP sin escribir 10 líneas diferentes para cada regla.

Respuesta1

Realmente sólo tienes 2 opciones (o una combinación)... pero una es un poco más arriesgada que la otra. Tenga en cuenta que el srccampo también acepta subredes... es decir, 192.168.1.0/24.

Primero,Sisu iptables/kernel está construido con el iprangemódulo, puede usarlo para especificar un rango de IP en lugar de solo 1 o 2... pero no puede proporcionar una "lista" de IP. Ejemplo:

-A HTTPS_WAN_INPUT -i ppp0 -m iprange --src-range x.x.x.x-y.y.y.y -p tcp -m tcp --dport 443 -j ACCEPT

En segundo lugar, puede configurar un nuevo objetivo específico que incluya IP "incluidas en la lista blanca" solo para mantener las cosas limpias. Ejemplo:

iptables -N RemoteManagement
iptables -P RemoteManagement DROP
iptables -A -A HTTPS_WAN_INPUT -i ppp0 -p tcp -m tcp --dport 443 -j RemoteManagement

... y por cada IP que quieras permitir...

iptables -I RemoteManagement -s x.x.x.x -j ACCEPT

Esto le permite mantener sus reglas un poco más limpias y poder simplemente eliminar o agregar IP según sea necesario. Por supuesto, si tienes el iprangemódulo disponible, también puedes especificar rangos en la cadena RemoteManagement. También podría reutilizar esta misma cadena en otros escenarios donde corresponda.

información relacionada