Ssh
從 OpenVPN 伺服器 SSH 到 OpenVPN 客戶端
我想從伺服器本身通過 SSH 訪問 OpenVPN 伺服器的每個客戶端。
我不想啟用該
client-to-client
設置,因為我不希望每個客戶互相交談。我也不想訪問客戶自己子網上的機器,只是訪問實際的機器。我能夠建立一個隧道,我可以從客戶端 ssh 到伺服器,但不能做相反的事情。
- VPN 上的伺服器 IP:10.4.0.1
來自
ipp.txt
:
- 客戶端 A over VPN 的 IP:10.4.0.4
- 客戶端 B 在 VPN 上的 IP:10.4.0.8
伺服器配置:
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 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>
在配置中:
ipv4.ip_forward = 1
來自 B:ssh user@10.4.0.1 從伺服器工作:ssh user@10.4.0.8 不工作
我在埠 22 上嘗試了 telnet,但它失敗了。機器 A 在 Ubuntu 上,機器 B 在 OS X 上,伺服器在 AWS EC2 上。
如果您需要任何其他資訊,請告訴我。
編輯:已解決 只需添加
topology subnet
到兩個配置文件就可以了!
你確定你連接到正確的IP嗎?我不確定您在 IPP 中看到的地址是客戶端使用的實際地址。您似乎處於 net_30 拓撲中,其中定址有點奇怪。在此拓撲
/30
中,為每個客戶端創建一個子網,並創建一個點對點鏈路。因此,您10.4.0.4
在 ipp 文件中的地址實際上是分配/30
子網的網路地址。您可能已經能夠 ping 並連接到以連接到ipp 文件10.4.0.6
中報告的系統。10.4.0.4
但是忽略所有 net_30 的怪異,您應該考慮的最簡單的解決方案是切換到拓撲子網,這是最好的模式,除非您支持舊客戶端。它的行為或多或少類似於您通常使用的任何其他網路,其中一個地址分配給每個客戶端,並且它們都具有相同的遮罩。