
Recientemente instalé OpenVPN en un servidor web CentOS 7 remoto. Puedo conectarme a él desde un devbox local de CentOS 7 escribiendo openvpn --config /path/to/client.ovpn
. Una vez realizada la conexión, puedo acceder ssh
al servidor a través de la VPN escribiendo y puedo ver las aplicaciones web alojadas en Apache en el servidor remoto a través de la VPN escribiendo en un navegador web. ssh [email protected]
https : / / 10.8.0.1
Entonces, ¿cómo puedo mis usuarios finales no técnicos realizar las mismas conexiones https desde Windows?
Descargué e instalé elCliente SecurePoint OpenVPN para Windows. Luego pude crear una configuración para el servidor, incluidos enlaces a los archivos .crt y .key y definiciones de otros parámetros que se definieron en el client.ovpn
archivo en Linux. Luego, el cliente SecurePoint me obligó a usar un nombre de usuario y una contraseña para una cuenta del sistema operativo en el servidor remoto (quizás para mejor), pero no me permite conectarme a las aplicaciones web que se ejecutan en el servidor. Específicamente, escribir https : / / 10.8.0.1
en un navegador web da como resultado "Esta página no se puede mostrar", aunque mi devbox de Linux permite que el contenido se entregue desde el servidor a través de VPN al cliente como se describe en el párrafo anterior. ¿Qué estoy haciendo mal? ¿Y cómo puedo hacer que esto funcione?
EDITAR
Según el consejo de @garethTheRed, escribí sudo firewall-cmd --list-all --zone=internal
y obtuve los siguientes resultados:
internal (active)
interfaces: tun0
sources:
services: dhcpv6-client https ipp-client mdns samba-client ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
rule family="ipv4" source NOT address="10.8.1.1" service name="ssh" reject
Luego hice clic en "conectar" en la GUI de SecurePoint y, después de que dijera que se había establecido la conexión con el servidor, abrí cmd.exe, escribí ping 10.8.0.1
y obtuve los siguientes resultados:
Pinging 10.8.0.1 with 32 bytes of data:
Request timed out.
Request timed out.
Request timed out.
Request timed out.
Ping statistics for 10.8.0.1:
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),
Al desmarcar la opción usuario/autenticación se eliminó el requisito de inicio de sesión de nombre de usuario/contraseña.
Tenga en cuenta que, cuando SecurePoint está conectado, todos los demás accesos a Internet a través del navegador parecen bloqueados porque se rechazan todas las solicitudes de páginas. Además, la VPN aparece en la lista de redes wifi de Windows como "Red no identificada" sin "acceso a Internet". Cuando me desconecto de la VPN mediante SecurePoint, la "Red no identificada" desaparece. Puedes ver cómo se ve cuando la conexión VPN está activahaciendo clic en este enlace
¿Qué más puedo probar?
Respuesta1
Confirme que su firewall en el servidor CentOS ( internal
zona si es donde tun0
se encuentra el dispositivo) esté https
disponible como servicio.
Debería poder hacer ping al servidor 10.8.0.1
desde la máquina con Windows. Si esto funciona, entonces su VPN está funcionando y probablemente sea el firewall del servidor CentOS el que lo está bloqueando.
Si el ping no funciona, entonces tendrá problemas subyacentes más profundos que resolver antes de examinar sus https
páginas.
En el caso de este último, publique el resultado de ejecución ìpconfig /all
y route print
en la máquina con Windows.
Cliente oficial OpenVPN
Como experimento, también puede instalarlo openvpn
en la máquina con Windows y ejecutarlo de manera similar a como lo hizo en el cliente CentOS usando archivos de configuración similares. Puede dar una pista de lo que está sucediendo:
Descargue el cliente OpenVPN para Windows desdeaquí, luego instálelo. Hacia el final de la instalación, debería ver una casilla de verificación que ofrece iniciar el cliente. Asegúrese de que el cliente NO esté iniciado.
Copie su *.ovpn
archivo de la máquina CentOS (la que funcionó anteriormente) a la máquina con Windows. Si está transfiriendo el archivo, puede encontrarse con el problema de los terminadores de línea Unix/DOS. El dos2unix
paquete tiene un conversor llamado unix2dos
que convierte los archivos al formato DOS por usted.
Abra notepad
como administrador (haga clic derecho y elija "Ejecutar como administrador") y edite el *.ovpn
archivo cambiando las rutas a la clave y dos certificados, recordando usar dos barras invertidas en las rutas (por ejemplo C:\\Users\\Bloggs\\key.pem
, ). Guarde este archivo en C:\Program Files\OpenVPN\config
.
Inicie el cliente OpenVPN desde el menú Inicio haciendo clic derecho sobre él y eligiendo "Ejecutar como administrador" (esto sólo es necesario la primera vez que lo ejecuta). Si lo anterior ha funcionado, debería poder hacer clic derecho en el icono de la barra de tareas y conectarse. Si no hay ninguna opción de conexión, verifique lo anterior.
Después de uno o tres segundos, aparecerá una ventana emergente que le informará que se ha conectado. Prueba tu https
página web.
Configuración básica compatible con Windows
Como prueba, haga una copia de seguridad de la configuración actual de su servidor e intente lo siguiente:
port 1194
proto udp
dev tun
ca /etc/pki/openvpn/cacerts/CA.crt
cert /etc/pki/openvpn/public/OpenVPN_Server.crt
key /etc/pki/openvpn/private/OpenVPN_Server.pem # This file should be kept secret
dh /etc/pki/openvpn/dh2048.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
user nobody
group nobody
persist-key
persist-tun
status /var/log/openvpn-status.log
verb 3
Funciona en mi servidor con clientes Linux y Windows (tanto OpenVPN como SecurePoint). No proporcionará la funcionalidad que necesita para su servidor, pero puede ayudarle a encontrar dónde está el problema. Por supuesto, es posible que deba ajustar las rutas de los archivos.
Como referencia, aquí está el *.ovpn
archivo que utilicé:
client
dev tun
proto udp
remote <IP or FQDN of server> 1194
resolv-retry infinite
nobind
persist-key
persist-tun
verb 3
ca C:\\Users\\gareth\\ca.crt
cert C:\\Users\\gareth\\client.pem
key C:\\Users\\gareth\\key.crt
Para el cliente SecurePoint, dejé todo por defecto excepto la Auth user/pass
casilla de verificación, que desmarqué y (por supuesto) la clave y los certificados.