Reenvío de IP de Linux para OpenVPN: ¿configuración correcta del firewall?

Reenvío de IP de Linux para OpenVPN: ¿configuración correcta del firewall?

Tengo OpenVPN ejecutándose en una máquina Linux. El servidor VPN tiene una dirección IP pública (xxxx) y a los clientes VPN se les asignan direcciones en el dispositivo "tun" en 10.8.0.0\24. Tengo una regla de IPTables para enmascarar NAT 10.8.0.0\24 en la dirección IP pública.

Para que el servidor VPN funcionara, tuve que habilitar el reenvío de IP (así que configuré net.ipv4.conf.default.forwarding=1).

... En otras palabras, es exactamente lo que dice el tutorial de OpenVPN, sin trucos sofisticados.

Todo esto funciona, pero me preocupa la parte de habilitar el reenvío. Ipensarla máquina ahora reenviará paquetes desde cualquier dirección IP a cualquier dirección IP, lo que no parece adecuado. Dado que tiene una IP de acceso público, esto es particularmente malo.

¿Existen sugerencias de reglas de firewall para restringir el comportamiento de reenvío no deseado? Creo que cualquier respuesta será una o más reglas de IPTables en la cadena FORWARD, pero aquí es donde me quedé estancado.

¡gracias!

Respuesta1

Si usa estas reglas para la tabla de reenvío, debería estar bien.

-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 10.8.0.0/24 -j ACCEPT
-A FORWARD -j REJECT

Puede poner las reglas en el archivo /etc/sysconfig/iptables y reiniciar el firewall. Para la prueba de línea de comando primero haga

 iptables -F 

para eliminar el rechazo predeterminado del tráfico de reenvío y agregar 'iptables ' antes de cada una de las tres reglas anteriores.

Respuesta2

Aquí hay un subconjunto de lo que configuré en mi puerta de enlace openvpn:

iptables -A FORWARD -i tun0 -o tun0 -j ACCEPT # vpn to vpn
iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT # vpn to ethernet
iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT # ethernet to vpn

Tenga en cuenta que esto es sólo un subconjunto; el resto de la regla hace cosas NAT estándar.

información relacionada