- A+
一些互联网服务提供商和公司公司可能已经阻止了大多数端口,并且只允许少数特定端口(如端口80和443)来加强其安全性。在这种情况下,我们别无选择,但为多个程序使用相同的端口,比如HTTPS端口443,很少被阻止。这是SSLH(一种SSL / SSH多路复用器)的帮助。它将侦听端口443上的传入连接。更简单地说,SSLH允许我们在Linux系统上的端口443上运行多个程序/服务。因此,您可以同时使用同一端口同时使用SSL和SSH。如果您遇到大多数端口被防火墙阻止的情况,您可以使用SSLH访问远程服务器。
安装 SSLH
SSLH适用于大多数Linux发行版,因此您可以使用默认包管理器进行安装。
在Arch Linux和Antergos,Manjaro Linux等衍生产品上,使用Pacman进行安装,如下所示。
sudo pacman -S sslh
在 Debian, Ubuntu, 或者衍生版本运行:
sudo apt-get install sslh
在RHEL,CentOS上,您需要添加EPEL存储库,然后安装SSLH,如下所示。
sudo yum install epel-release
sudo yum install sslh
在 Fedora上:
sudo dnf install sslh
配置Apache或Nginx Web服务器
如您所知,Apache和Nginx Web服务器默认会侦听所有网络接口(即0.0.0.0:443)。我们需要更改此设置以告知Web服务器仅侦听localhost接口(即 127.0.0.1:443 或 localhost:443)。
为此,请编辑webserver(nginx或apache)配置文件并找到以下行:
listen 443 ssl;
并将其更改为:
listen 127.0.0.1:443 ssl;
如果你在Apache中使用Virutalhosts,请确保你也改变了它。
VirtualHost 127.0.0.1:443
保存并关闭配置文件。不要重新启动服务。我们还没有完成。
配置SSLH
使网络服务器仅在本地接口上侦听后,编辑SSLH配置文件:
sudo vi /etc/default/sslh
找到以下行:
Run=no
并将其更改为:
Run=yes
然后,向下滚动一点并修改以下行以允许SSLH在所有可用接口上侦听端口443(例如0.0.0.0:443)。
DAEMON_OPTS="--user sslh --listen 0.0.0.0:443 --ssh 127.0.0.1:22 --ssl 127.0.0.1:443 --pidfile /var/run/sslh/sslh.pid"
这里,
- –user sslh : 需要在此指定的用户名下运行。
- –listen 0.0.0.0:443 : SSLH正在所有可用接口上侦听端口443。
- –sshs 127.0.0.1:22 : 将SSH流量路由到localhost上的端口22。
- –ssl 127.0.0.1:443 : 将HTTPS / SSL流量路由到localhost上的端口443。
保存并关闭文件。
最后,启用并启动sslh服务以更新更改。
sudo systemctl enable sslh
sudo systemctl start sslh
测试
检查SSLH守护程序是否正在侦听443。
$ ps -ef | grep sslh sslh 2746 1 0 15:51 ? 00:00:00 /usr/sbin/sslh --foreground --user sslh --listen 0.0.0.0 443 --ssh 127.0.0.1 22 --ssl 127.0.0.1 443 --pidfile /var/run/sslh/sslh.pid sslh 2747 2746 0 15:51 ? 00:00:00 /usr/sbin/sslh --foreground --user sslh --listen 0.0.0.0 443 --ssh 127.0.0.1 22 --ssl 127.0.0.1 443 --pidfile /var/run/sslh/sslh.pid sk 2754 1432 0 15:51 pts/0 00:00:00 grep --color=auto sslh
现在,您可以使用端口443通过SSH访问远程服务器:
$ ssh -p 443 sk@192.168.43.2 sk@192.168.43.2's password: Welcome to Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-89-generic x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage Last login: Mon Aug 14 15:52:20 2017 from 192.168.43.192 sk@ubuntuserver:~$
看到?即使默认的SSH端口22被阻止,我现在也可以通过SSH访问远程服务器。正如您在上面的示例中所看到的,我使用https端口443进行SSH连接。此外,我们也可以使用相同的端口443进行openVPN连接。
关于命令详情,安卓手机请安装安卓客户端查询,安卓客户端地址:
- 安卓客户端下载
- 微信扫一扫
- 微信公众号
- 微信公众号扫一扫