无需路由或转发,只需从服务器进行 ssh

无需路由或转发,只需从服务器进行 ssh

我目前正在开发一个遍布全国的分布式计算机系统。所有这些计算机都位于 NAT 后面,并且是自我控制的。作为 puppet 发生故障或其他维护时的备用计划,我考虑了一个小型 vpn 网络,以便在需要时通过 ssh 访问客户端。

我已经成功将测试客户端连接到服务器,但是无法 ping 或 ssh 到客户端或反之亦然(目前不需要)。

服务器也由 iptables-setup 保护。我尝试了几个以 openvpn 闻名的 iptables-entry,但它们都不起作用。

我该如何设置服务器才能使 ssh 10.8.0.* 或类似程序正常工作?

问候,莫里茨

更新:我在客户端发现了一个错误配置。它被配置为 tls-client 而不是客户端。这使得 ping 和 ssh 都可以双向进行。

答案1

我今天正在做类似的事情(连接到 IPMI 私有 LAN IP)。我发现一个好方法是使用 PPTP VPN,因为我无法让 OpenVPN 发挥作用。

假设您使用 Linux;我制作的脚本可以快速完成此操作(根据您的需要进行修改,确保 iptable 命令中的 eth 接口正确):

Centos 5:
rpm -i http://poptop.sourceforge.net/yum/stable/rhel5/pptp-release-current.noarch.rpm

Centos 6:
rpm -i http://poptop.sourceforge.net/yum/stable/rhel6/pptp-release-current.noarch.rpm

yum -y update
sysctl -p /etc/sysctl.conf

iptables -F
iptables -A INPUT -i eth1 -p tcp --dport 1723 -j ACCEPT
iptables -A INPUT -i eth1 -p gre -j ACCEPT
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -A FORWARD -i ppp+ -o eth1 -j ACCEPT
iptables -A FORWARD -i eth1 -o ppp+ -j ACCEPT
service iptables save
chkconfig pptpd on

echo "localip 10.10.0.1" >> /etc/pptpd.conf
echo "remoteip 10.10.0.50-100" >> /etc/pptpd.conf

echo "ms-dns 8.8.8.8" >> /etc/ppp/options.pptpd
echo "ms-dns 4.4.4.4" >> /etc/ppp/options.pptpd

echo "USERNAME     *       PASSWORD          *" >> /etc/ppp/chap-secrets

service pptpd start

确保在 /etc/sysctl.conf 中启用 IP 转发

更多 PPTP 帮助:https://www.digitalocean.com/community/articles/how-to-setup-your-own-vpn-with-pptp

相关内容