从OpenVPN服务器SSH到OpenVPN客户端

我想从服务器本身通过SSH访问OpenVPN服务器的每个客户端。

我不想启用client-to-client设置,因为我不希望每个客户端彼此交谈。 我也不想访问客户端自己的子网上的机器,只是实际的机器。

我能够build立一个隧道,我可以从客户端SSH服务器,但不能做相反的事情。

  • 通过VPN的服务器的IP:10.4.0.1

来自ipp.txt

  • 客户端A通过VPN的IP:10.4.0.4
  • 客户端B通过VPN的IP:10.4.0.8

服务器configuration:

 port 1194 proto udp dev tun ca ca.crt cert server.crt dh /etc/openvpn/rsa/keys/dh2048.pem server 10.4.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt push "route 172.31.0.0 255.255.0.0" push "redirect-gateway def1 bypass-dhcp" push "dhcp-option DNS 208.67.222.222" push "dhcp-option DNS 208.67.220.220" keepalive 10 120 comp-lzo user nobody group nobody persist-key persist-tun status openvpn-status.log verb 3 

/ etc / sysconfig / iptables的服务器:

 *nat :POSTROUTING ACCEPT [0:0] :PREROUTING ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A POSTROUTING -s 10.4.0.0/24 -d 0.0.0.0/0 -o eth0 -j MASQUERADE COMMIT 

client.conf

 client remote <serverIP> 1194 proto udp dev tun persist-key persist-tun cipher AES-256-CBC remote-cert-tls server resolv-retry infinite nobind comp-lzo verb 3 <ca> -----BEGIN CERTIFICATE----- -----END CERTIFICATE----- </ca> <cert> -----BEGIN CERTIFICATE----- -----END CERTIFICATE----- </cert> <key> -----BEGIN PRIVATE KEY----- -----END PRIVATE KEY----- </key> 

在configs中: ipv4.ip_forward = 1

从B:ssh [email protected]从服务器工作:ssh [email protected]

我尝试了端口22上的telnet,它失败了。 机器A在Ubuntu上,机器B在OS X上,服务器在AWS EC2上。

让我知道你是否需要任何其他信息。

编辑:解决简单地将topology subnet添加到两个configuration文件做的伎俩!

你确定你连接到正确的IP吗? 我不确定您在IPP中看到的地址是不是客户端的实际地址。 你似乎在net_30拓扑寻址有点奇怪。 在这种拓扑结构中,为每个客户端创build一个/30子网,并创build一个点对点链接。 所以你在ipp文件里的10.4.0.4地址就是分配的/30子网的networking地址。 您可能已经能够ping和连接到10.4.0.6连接到ipp文件中报告10.4.0.4的系统。

但是忽略所有net_30怪异,你应该考虑的最简单的解决scheme是切换到拓扑子网,除非你支持古老的客户端,否则这是最好的模式。 它的行为或多或less像您通常使用的其他networking,其中一个地址分配给每个客户端,并且它们都具有相同的掩码。