是否可以使用 OpenVPN 的共享端口选项在 OpenVPN(2.2.1)和 OpenSSH(5.3)守护进程之间共享相同的端口和 IP?
我无法让它工作..我让 openssh 在所有接口上监听端口 22,并且 openvpn 守护进程在端口 443 上使用 TCP 协议。我添加了:
port-share 127.0.0.1 22
进入启动特定 openvpn 守护进程的 conf 文件,然后重新启动它 - 它启动时没有错误。但是当我尝试从网络的其他地方 ssh 到该 ip 和端口时,它停止了:
ssh -v -p443 user@host
OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Applying options for *
debug1: Connecting to host [123.123.123.123] port 443.
debug1: Connection established.
debug1: permanently_set_uid: 0/0
debug1: identity file /root/.ssh/identity type -1
debug1: identity file /root/.ssh/id_rsa type 1
debug1: identity file /root/.ssh/id_dsa type 2
debug1: loaded 3 keys
我是不是漏掉了什么?显然端口没有被阻止,openvpn 继续在该端口上工作。我在搜索中找不到 OpenVPN + OpenSSH 端口共享的有效示例,有人可以帮忙吗?
答案1
我看到的手册页说这只适用于 http/https。除非你找到了补丁或我不知道的东西?
人 OpenVPN
--端口共享
在 TCP 服务器模式下运行时,与其他应用程序(例如 HTTPS 服务器)共享 OpenVPN 端口。如果 OpenVPN 检测到与其端口的连接使用非 OpenVPN 协议,它将通过代理将连接转发到 host:port 处的服务器。 目前仅设计用于 HTTP/HTTPS,但理论上可以扩展到其他协议,例如 ssh。
未在 Windows 上实现。
答案2
看一下安全组,一个 ssl/ssh 多路复用器。
从其主页:
它是什么?
sslh 在同一端口上接受 HTTPS、SSH、OpenVPN、tinc 和 XMPP 连接。这样就可以连接到端口 443 上的任何服务器(例如,从几乎从不阻止端口 443 的公司防火墙内部),同时仍在该端口上提供 HTTPS。
答案3
这是可能的,只要确保
sshd 正在监听与您的端口共享设置相同的 IP。
#/etc/ssh/sshd_config ListenAddress 127.0.0.1 ## 0.0.0.0 is default. Port 22
如果您无法更改 ListenAddress。并且它是用于隧道目的,请特别注意端口设置以避免端口重复,0.0.0.0 上的 sshd 将与任何具有相同端口的地址发生冲突。因此,如果您没有将直接端口或远程端口设置为不同于本地端口,则会发生冲突。