Así que configuré un tun
servidor OpenVPN razonablemente básico y tengo problemas para lograr que el servidor pueda comunicarse con todos los clientes conectados.
Actualmente tengo dos conjuntos de clientes, algunos que no usan la VPN para conectarse a Internet (solo para hablar con los otros clientes) y otros que usan redirect-gateway
para enviar todo su tráfico a través de la VPN.
Tal como lo configuré, todos los clientes conectados pueden comunicarse con el servidor y con los demás clientes. Sin embargo, desde el servidor, sólo puedo llegar (por ejemplo, hacer ping) a los clientes que utilizan redirect-gateway
para enviar todo su tráfico a través de la VPN. Los clientes que no usan esa configuración pueden hacer ping al servidor, pero el servidor no puede devolver el ping (no responden y se agota el tiempo de espera).
¿Cómo puedo configurar el enrutamiento para que el servidor aún pueda comunicarse con los clientes incluso si no usan la VPN como puerta de enlace predeterminada?
Aquí está la configuración del servidor relevante:
port 1194
proto udp
dev tun
topology subnet
push "topology subnet"
server 10.7.0.0 255.255.255.0
ifconfig-pool-persist /etc/openvpn/ipp.txt
client-config-dir /etc/openvpn/ccd
client-to-client
keepalive 10 120
cipher AES-256-CBC
comp-lzo
user nobody
group nobody
persist-key
persist-tun
explicit-exit-notify 1
En el directorio de configuración del cliente en el servidor, cada cliente tiene un archivo como este (solo para darle a cada uno una IP estática):
ifconfig-push 10.7.0.10 255.255.255.0
Los bits relevantes de la configuración del cliente local:
client
dev tun
proto udp
remote {server's public ip} 1194
float
keepalive 15 60
ns-cert-type server
key-direction 1
tun-mtu 1500
cipher AES-256-CBC
keysize 256
comp-lzo yes
nobind
Los clientes que utilizan la VPN para acceder a Internet agregan redirect-gateway def1 bypass-dhcp
a su configuración.
Lo estoy usando ufw
para el firewall de mi servidor; aquí está la configuración relevante (en /etc/ufw/before.rules):
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.7.0.0/8 -j SNAT --to-source {server's public ip}
Como esto se ejecuta en un VPS OpenVZ, no puedo usarlo MASQUERADE
, pero lo anterior parece funcionar igual de bien.
¿Alguna idea sobre cómo configurar esto correctamente? Gracias de antemano. Si es importante, el servidor ejecuta CentOS.