使用SSLH可以让Softether(SSTP)与Apache共存

在SSLH中共存Softether(SSTP)和Apache。

通过检测协议来将访问指向443端口,通过将其分配给多个服务来实现共享443端口的手段是使用SSLH(https://github.com/yrutschle/sslh)。但是,SSLH仅支持OpenVPN协议。
我们进行了一些尝试,设定了在SSLH的背后使用Sofether的专有协议和SSTP协议的配置,并且虽然不完美但是可以工作,所以在这里做以记载。

SSLH的帮助文档

sslh -h
sslh 1.18-1
usage:
        sslh  [-v] [-i] [-V] [-f] [-n] [--transparent] [-F <file>]
        [-t <timeout>] [-P <pidfile>] -u <username> -p <add> [-p <addr> ...]
        [--ssh <addr>]
        [--openvpn <addr>]
        [--tinc <addr>]
        [--xmpp <addr>]
        [--http <addr>]
        [--ssl <addr>]
        [--tls <addr>]
        [--adb <addr>]
        [--anyprot <addr>]
        [--on-timeout <addr>]

在设置中,我们将每个服务服务器的IP以 “–ssh hogehoge.com” 的形式列出。然而,在这些设置中,所有指定为 –anyprot 的端口都会转发无法由SSLH支持的协议包。

通过在这里记下Softether的监听端口,所有与Softether对应的VPN协议都可以在SSLH的背后使用。

sudo nano /etc/default/sslh

RUN=yes

# binary to use: forked (sslh) or single-thread (sslh-select) version
# systemd users: don't forget to modify /lib/systemd/system/sslh.service
DAEMON=/usr/sbin/sslh

#softetherのポート:8080 (localhost)
DAEMON_OPTS="--user sslh --listen 192.168.1.1:443 --anyprot 127.0.0.1:8080 --ssl 127.0.0.1:8443...

在SSLH的源代码中,最好是添加其他协议的识别规则,但由于目前没有这样的知识,所以我认为可以作为紧急手段使用。

广告
将在 10 秒后关闭
bannerAds