Ssh

從 OpenVPN 伺服器 SSH 到 OpenVPN 客戶端

  • May 11, 2017

我想從伺服器本身通過 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 的怪異,您應該考慮的最簡單的解決方案是切換到拓撲子網,這是最好的模式,除非您支持舊客戶端。它的行為或多或少類似於您通常使用的任何其他網路,其中一個地址分配給每個客戶端,並且它們都具有相同的遮罩。

引用自:https://serverfault.com/questions/849596