SSLH:将SSH / HTTPS / OpenVPN /电报隐藏在单个端口443后面

图片

SSH / HTTPS / OpenVPN /电报以及所有内容都在一个端口上? 什么
-是的!
  • 是否想隐藏您的某些服务?
  • 是否在公共Wi-Fi网络上阻止了除443(https)端口以外的所有内容?
  • 您是否配置了Telegram Proxy / OpenVPN并不想对其“发光”?
  • 从受检查国家/地区通过SSH连接到您的服务器?

所有这些问题只有一个答案- 复用SSL / TLS连接或SSLH。

在本文中,我们将研究如何在1个端口后面的1个命令中隐藏一堆服务

怎么了


随着最近发布的Telegram Proxy 几乎完全看起来像SSL流量,在帖子的评论中出现了一个有趣的问题:
牛顿
我有一个很漂亮的菜鸟问题-真的不可能和sslh一起使用吗?
在快速检查了sslh应用程序的功能之后,在我看来我无法启动它,但是我对该应用程序非常感兴趣,事实证明,我仍然可以用刺猬把它穿过

怎么了


SSLH应用程序是一个多路复用器,换句话说,它分析流量(实际上是在做微型DPI工作),并根据流量类型将其发送到本地端口8443/999/991或任何其他端口。

这使我们第一次 受益 DPI技术。

挑战赛


对于使用SSLH的示例,我们设置任务:

服务器上安装了以下应用程序-Telegram Proxy,Apache,SSH,我们希望通过端口443将所有这些服务引入世界。

在我们的示例中,服务器是Docker中的Ubuntu 16.04.4 LTS,Apache2 + LetsEncrypt,SSH,电报代理。

目前,Apache正在按计划进行。

安装与设置


安装SSLH:

sudo apt-get install --no-install-recommends sslh 

在安装过程中,将询问有关使用模式的问题,其中有两种:

  • 稳定但需要更多资源
  • 速度很快,但是当流程下降时会失去连接

我是第二种选择,当然,您可以选择其他选择。

检查我们的奇迹是否适用以下命令:

 sudo sslh-select -f --listen IP:8443 --tls 127.0.0.1:443 --ssh 127.0.0.1:22 --anyprot 127.0.0.1:9443 

IP-外部IP服务器
8443-将在其中启动我们的多路复用器的端口
443-Apache居住的地方
请注意anyprot选项-这是我们的电报代理所在的位置,换句话说,如果流量不适合任何类型-请发送至该位置。

注意! 如果您的配置没有Telegram或SSH,请删除额外的启动密钥。

看看吗?


使用端口8443在服务器地址上打开浏览器-您应该看到Apache的响应,然后尝试通过SSH或通过Telegram Proxy进行连接。

将Apache移植到另一个端口


要将Apache从标准端口(443)传输到另一个(例如7443),请访问以下文件:

 sudo nano /etc/apache2/ports.conf sudo nano /etc/apache2/sites-enabled/000-default-le-ssl.conf 

在示例中,Apache + SSL / HTTPS是使用带有不同证书的LetsEncrypt安装的,配置文件可以采用其他方式。

自动启动


现在该设置自动运行了。

编辑文件:

 sudo nano /etc/default/sslh 

DAEMON_OPTS =字段中,在运行sslh-select命令时添加属性,将RUN设置为= yes。

运行:

 sudo systemctl start sslh 

确保一切正常:

 sudo systemctl status sslh 

结果如何?


完成本教程后,您应该拥有一台服务器,该服务器通过一个端口(您可以选择其中的一个)提供多种服务。

那OpenVPN呢? 应用程序仍然可以执行哪些协议?


在撰写本文时,sslh可以检测和复用以下协议:
 [--ssh <addr>] [--openvpn <addr>] [--tinc <addr>] [--xmpp <addr>] [--http <addr>] [--ssl <addr>] [--tls <addr>] [--anyprot <addr>] 

在使用之前,最好使用以下命令确保您的版本支持哪些协议(突然更新)

 sslh-select -h 


参考文献


SSLH开发在此存储库中的github上进行: github.com/yrutschle/sslh

码头工人


我没有在Docker中连同所有其他服务一起成功收集sslh的工作版本,我认为可以在端口443上引发的docker -compose文件会很有趣:
  • Apache + LetsEncrypt
  • 电报代理
  • OpenVPN(可选)
  • 使用本地SSH


我认为,如果有人成功-在评论中写-添加到文章中,将会很有用。

您可能也有兴趣。


Source: https://habr.com/ru/post/zh-CN412779/


All Articles