https和SSH从Windows访问OpenVPN

我最近在远程的CentOS 7 Web服务器上安装了OpenVPN。 我可以通过键入openvpn --config /path/to/client.ovpn从本地CentOS 7 devbox连接到它。 一旦build立连接,我就可以通过inputssh [email protected] ssh到服务器,通过inputhttps : / / 10.8.0.1我可以通过vpn在远程服务器上查看apache托pipe的web应用程序。 https : / / 10.8.0.1放入网页浏览器。 那么我怎样才能让我的非技术性的最终用户从Windows进行相同的https连接呢?

我下载并安装了用于Windows的SecurePoint OpenVPN客户端 。 然后,我可以为服务器创buildconfiguration,包括指向.crt和.key文件的链接,以及在Linux中的client.ovpn文件中定义的其他参数的定义。 SecurePoint客户端然后强迫我使用远程服务器上的操作系统帐户的用户名和密码(可能是更好),但不允许我连接到服务器上运行的Web应用程序。 具体而言,即使我的Linux devbox允许将内容从服务器通过vpn提供给客户端(如上所述),但在Web浏览器中inputhttps : / / 10.8.0.1将导致“此页面无法显示”段。 我究竟做错了什么? 我怎样才能使这个工作?

编辑

根据@ gareth TheRed的build议,我input了sudo firewall-cmd --list-all --zone=internal ,结果如下:

 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 

然后我点击了SecurePoint GUI中的“connect”,并在build立与服务器的连接之后,打开了cmd.exe,inputping 10.8.0.1 ,得到如下结果:

 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), 

取消选中用户/授权选项将删除用户名/密码login要求。

请注意,当SecurePoint连接时,通过浏览器的所有其他Internet访问似乎都被阻止,因为所有页面请求都被拒绝。 另外,VPN在无线networking的窗口列表中显示为“不能识别的networking”和“没有互联网接入”。 当我使用SecurePoint从VPN断开连接时,“不明networking”将消失。 点击此链接可以看到VPN连接处于活动状态时的外观

我还有什么可以尝试?

确认CentOS服务器( internal区域,如果tun0设备所在的位置)的防火墙具有https可用的服务。

您应该能够从Windows机器上ping 10.8.0.1上的服务器。 如果这样做,那么你的VPN就起来了,可能是CentOS服务器的防火墙阻止了你。

如果ping不起作用,那么在查看https页面之前,需要解决更深层次的问题。

在后者的情况下,在Windows机器上输出运行“ ìpconfig /all和“ route print ”。

官方的OpenVPN客户端

作为一个实验,您也可以在Windows机器上安装openvpn ,并使用类似的方式来运行它,就像在CentOS客户机上使用类似的configuration文件一样。 它可能会给出线索发生的事情:

从这里下载Windows的OpenVPN客户端,然后安装它。 在安装结束时,您应该看到一个提供启动客户端的勾号框。 确保客户端没有启动。

将你的*.ovpn文件从CentOS机器(以前工作的机器)复制到Windows机器上。 如果你正在传输文件,你可能会遇到Unix / DOS行结束符的问题。 dos2unix软件包有一个名为unix2dos的转换器,可以将文件转换为DOS格式。

以pipe理员身份打开notepad (右键单击并select“以pipe理员身份运行”)并编辑*.ovpn文件,将path更改为密钥,并记住在path中使用两个反斜杠(例如C:\\Users\\Bloggs\\key.pem )。 将这个文件保存到C:\Program Files\OpenVPN\config

从开始菜单中右键点击OpenVPN客户端并select“以pipe理员身份运行”(这只在第一次运行时才需要)。 如果上面的工作,你应该能够右键点击任务栏中的图标,并连接。 如果没有连接选项,请检查以上。

一两秒钟后,您会看到一个popup窗口,告诉您已经连接。 尝试您的https网页。

基本的Windows兼容configuration

作为testing,备份您当前的服务器configuration并尝试以下操作:

 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 

它可以在我的服务器上运行Linux和Windows客户端(包括OpenVPN和SecurePoint)。 它不会提供您的服务器所需的function,但它可以帮助您find问题所在。 当然,您可能需要调整文件的path。

作为参考,这里是我使用的*.ovpn文件:

 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 

对于SecurePoint客户端,除了Auth user/passcheckbox(我没有选中)和(当然)密钥和证书之外,我将所有内容都设置为默认值。