我想从服务器本身通过SSH访问OpenVPN服务器的每个客户端。
我不想启用client-to-client设置,因为我不希望每个客户端彼此交谈。 我也不想访问客户端自己的子网上的机器,只是实际的机器。
我能够build立一个隧道,我可以从客户端SSH服务器,但不能做相反的事情。
来自ipp.txt :
服务器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,其中一个地址分配给每个客户端,并且它们都具有相同的掩码。