Tengo dos hosts: CentOS 7, que es un host Docker y un servidor OpenVPN y Ubuntu como cliente. Estoy usando OpenVPN para conectar un cliente al host, pero el problema es que el servidor VPN no envía una respuesta, es decir, no envía ningún paquete. El cliente está detrás de la NAT. Revisé el firewall en ambos lados: se permiten todos los tipos de tráfico. ¿Qué más debo comprobar? MTU no es la causa con seguridad. Como enrutador, utilizamos Mikrotik.
Configuración del cliente:
remote <Server IP>
dev tun
rport 18999
lport 18999
proto udp
ifconfig IP1 IP2
secret /etc/openvpn/static.key 1
persist-tun
persist-key
keepalive 10 60
ping-timer-rem
verb 3
daemon
log-append /var/log/openvpn.log
Configuración en el lado del servidor:
ev tun.yasha
proto udp
local <someip>
lport 18999
rport 18999
secret /etc/openvpn/.keys/secret.key 0
ifconfig <IP2> <IP1>
user nobody # On CentOS
group nobody # On CentOS
persist-tun
persist-key
keepalive 10 60
ping-timer-rem
verb 6
daemon
log-append /var/log/openvpn.log
Salidas mientras el túnel está activo: Cliente: ip r
default via 192.168.88.1 dev wlp3s0 proto dhcp metric 600
10.8.0.1 dev tun0 proto kernel scope link src 10.8.0.2
169.254.0.0/16 dev wlp3s0 scope link metric 1000
192.168.88.0/24 dev wlp3s0 proto kernel scope link src 192.168.88.34 metric 600
ip un
tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100
link/none
inet 10.8.0.2 peer 10.8.0.1/32 scope global tun0
valid_lft forever preferred_lft forever
inet6 fe80::9b45:4bf5:f2d7:5375/64 scope link stable-privacy
valid_lft forever preferred_lft forever
Servidor:
ip r
default via 217.12.XXX.X dev eno1
10.8.0.2 dev tun.yasha proto kernel scope link src 10.8.0.1
ip a (tenemos muchas interfaces en la máquina, así que las omito)
tun.yasha: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100
link/none
inet 10.8.0.1 peer 10.8.0.2/32 scope global tun.yasha
valid_lft forever preferred_lft forever
inet6 fe80::4815:ef11:3756:faea/64 scope link flags 800
valid_lft forever preferred_lft forever
Respuesta1
Con sus configuraciones, solo configuró una dirección IP para el túnel en el cliente.
Como la dirección es una dirección punto a punto /32, es posible que no se agregue ninguna ruta de forma predeterminada. (Eso puede ser específico de la plataforma).
Si simplemente desea poder comunicarse con el servidor a través de IP1
pero no funciona de fábrica, agregarlo route IP1
debería ser suficiente.
Si, por ejemplo, desea que todo el tráfico del host del cliente se enrute al túnel, deberá utilizar esta opción redirect-gateway
en su lugar.
Para esto último, querrá asegurarse de que el host del cliente utilice servidores DNS a los que se pueda acceder a través del túnel (consulte dhcp-option DNS
). Además, es necesario habilitar el reenvío de IP entre el túnel y la NIC en el servidor.