¿Cómo configurar correctamente el cortafuegos para OpenVPN?
Resueltonarsene -
Hola a todos,
Tengo un servidor OpenVPN instalado en una máquina virtual que funciona con Ubuntu Server 22.04 LTS. Cuando me conecto a él, puedo acceder a otros hosts en la red local del lado del servidor.
¿Cómo configurar el firewall para restringir solo el acceso interno y bloquear el acceso a los hosts presentes en la red así como a la puerta de enlace?
No soy un experto en firewalls. He investigado en Internet y no he podido encontrar exactamente lo que buscaba.
Sin embargo, muchas preguntas tratan sobre bloquear el acceso a Internet desde el lado del servidor y restringir el acceso solo a los hosts en la red local.
Yo, en cambio, estoy buscando lo contrario. Encontré una discusión (en inglés) https://serverfault.com/questions/250927/how-do-i-block-access-to-lan-through-openvpn/250948#250948 que trata sobre lo que estoy intentando hacer.
Al ajustar los parámetros de la sintaxis para que coincidan con mi configuración de red, logro restringir el acceso a otros hosts del lado del servidor, pero, al mismo tiempo, eso bloquea el acceso a Internet.
Si alguien sabe cómo proceder de la manera correcta, agradecería que compartiera conmigo y con aquellos que buscan la misma solución,
Atentamente,
Guillaume
2 respuestas
-
Hola,
Teniendo en cuenta que :
- Los clientes VPN se encuentran en la red 10.8.0.0/24
- La LAN del lado del servidor es 192.168.1.0/24
Solo es necesario escribir una regla que bloquee los paquetes « de 10.8.0.0/24 a 192.168.1.0/24 ».
Te dejo la tarea de traducir esto a una regla de iptables.
Si no funciona, puedes compartir todas tus reglas activas, que puedes obtener con « iptables -S ».
Si necesitas una referencia completa :
https://www.frozentux.net/iptables-tutorial/iptables-tutorial.html-
Hola,
He consultado el tutorial del enlace y realmente no entiendo cómo hacerlo, soy un inútil en cortafuegos. En ningún caso quiero dañar mi sistema porque no sé lo que estoy haciendo.
Por eso les pido por favor si es posible que me muestren la regla de iptables que debo implementar. Realmente lo apreciaría.
No quiero intentar cualquier cosa sin saber los resultados.
Gracias,
Guillaume
-
Hola,
Quisiera romper mi sistema porque no sé lo que estoy haciendo.
Las reglas de iptables añadidas desde la herramienta "iptables" no son permanentes. En caso de error, solo tienes que reiniciar tu sistema.
Una vez que la regla esté validada, deberás hacerla permanente. Al instalar OpenVPN, seguramente habrás configurado en algún lugar una lista de reglas de iptables que se aplican al inicio del sistema o del servidor OpenVPN.
Encontrarás ejemplos cercanos a lo que necesitas aquí:
https://www.cyberciti.biz/faq/how-to-use-iptables-with-multiple-source-destination-ips-addresses/ -
Hola,
Estoy probando esto:
iptables -A INPUT -s 10.8.0.0/24 -d 192.168.2.0/24 -p tcp --dport 8006 -j DROPpero lo que está en el puerto 8006 sigue cargando.
Esta es la parte final de /etc/ufw/before.rules
# INICIO REGLAS OPENVPN # Reglas de la tabla NAT *nat :POSTROUTING ACCEPT [0:0] # Permitir tráfico desde el cliente OpenVPN a eth0 (¡cambia a la interfaz que descubriste!) -A POSTROUTING -s 10.8.0.0/8 -o ens18 -j MASQUERADE COMMIT # FIN REGLAS OPENVPNGuillaume
-
Hola,
Idealmente, tu firewall también debería controlar las redirecciones entre interfaces en la tabla "filter". Además, el orden de las reglas tiene importancia, si un paquete es aceptado (-j ACCEPT) por una regla, las siguientes reglas no se tendrán en cuenta.
Puedes usar « -I » en lugar de « -A » para insertar una regla por encima de las demás, o especificar su número.
Esto debería funcionar, si "tun0" es la interfaz OpenVPN en el servidor:
sudo iptables -I FORWARD -i tun0 -p tcp --dport 8006 -j REJECT
-
-