新聞中心
sslh 是可以讓服務(wù)器的一個(gè)端口同時(shí)支持 HTTPS 和 SSH 兩種協(xié)議的鏈接,例如可以通過(guò) HTTPS 的 443 端口來(lái)進(jìn)行 SSH 通訊,同時(shí)又不影響HTTPS本身。

創(chuàng)新互聯(lián)專(zhuān)注為客戶(hù)提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都做網(wǎng)站、網(wǎng)站制作、永嘉網(wǎng)絡(luò)推廣、小程序開(kāi)發(fā)、永嘉網(wǎng)絡(luò)營(yíng)銷(xiāo)、永嘉企業(yè)策劃、永嘉品牌公關(guān)、搜索引擎seo、人物專(zhuān)訪(fǎng)、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供永嘉建站搭建服務(wù),24小時(shí)服務(wù)熱線(xiàn):18982081108,官方網(wǎng)址:www.cdcxhl.com
安裝 SSLH
大多數(shù) Linux 發(fā)行版上 SSLH 都有軟件包,因此你可以使用默認(rèn)包管理器進(jìn)行安裝。
在 Debian、Ubuntu 及其衍生品上運(yùn)行:
$ sudo apt-get install sslh
安裝 SSLH 時(shí),將提示你是要將 sslh 作為從 inetd 運(yùn)行的服務(wù),還是作為獨(dú)立服務(wù)器運(yùn)行。每種選擇都有其自身的優(yōu)點(diǎn)。如果每天只有少量連接,最好從 inetd 運(yùn)行 sslh 以節(jié)省資源。另一方面,如果有很多連接,sslh 應(yīng)作為獨(dú)立服務(wù)器運(yùn)行,以避免為每個(gè)傳入連接生成新進(jìn)程。
在 Arch Linux 和 Antergos、Manjaro Linux 等衍生品上,使用 Pacman 進(jìn)行安裝,如下所示:
$ sudo pacman -S sslh
在 RHEL、CentOS 上,你需要添加 EPEL 存儲(chǔ)庫(kù),然后安裝 SSLH,如下所示:
$ sudo yum install epel-release
$ sudo yum install sslh
在 Fedora:
$ sudo dnf install sslh
如果它在默認(rèn)存儲(chǔ)庫(kù)中不可用,你可以如這里所述手動(dòng)編譯和安裝 SSLH。
配置 Apache 或 Nginx Web 服務(wù)器
如你所知,Apache 和 Nginx Web 服務(wù)器默認(rèn)會(huì)監(jiān)聽(tīng)所有網(wǎng)絡(luò)接口(即 0.0.0.0:443)。我們需要更改此設(shè)置以告知 Web 服務(wù)器僅偵聽(tīng) localhost 接口(即 127.0.0.1:443 或 localhost:443)。
為此,請(qǐng)編輯 Web 服務(wù)器(nginx 或 apache)配置文件并找到以下行:
listen 443 ssl;
將其修改為:
listen 127.0.0.1:443 ssl;
如果你在 Apache 中使用虛擬主機(jī),請(qǐng)確保你也修改了它。
VirtualHost 127.0.0.1:443
保存并關(guān)閉配置文件。不要重新啟動(dòng)該服務(wù)。我們還沒(méi)有完成。
配置 SSLH
使 Web 服務(wù)器僅在本地接口上偵聽(tīng)后,編輯 SSLH 配置文件:
$ sudo vi /etc/default/sslh
找到下列行:
Run=no
將其修改為:
Run=yes
然后,向下滾動(dòng)一點(diǎn)并修改以下行以允許 SSLH 在所有可用接口上偵聽(tīng)端口 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:要求在這個(gè)特定的用戶(hù)身份下運(yùn)行。 –listen 0.0.0.0:443:SSLH 監(jiān)聽(tīng)于所有可用接口的 443 端口。 –sshs 127.0.0.1:22 : 將 SSH 流量路由到本地的 22 端口。 –ssl 127.0.0.1:443 : 將 HTTPS/SSL 流量路由到本地的 443 端口。 保存并關(guān)閉文件。
最后,啟用并啟動(dòng) sslh 服務(wù)以更新更改。
sudo systemctl enable sslh
$ sudo systemctl start sslh
測(cè)試
檢查 SSLH 守護(hù)程序是否正在監(jiān)聽(tīng) 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
現(xiàn)在,你可以使用端口 443 通過(guò) SSH 訪(fǎng)問(wèn)遠(yuǎn)程服務(wù)器:
$ ssh -p 443 [email protected]
示例輸出:
[email protected]'s password: Welcome to Ubuntu 18.04.2 LTS (GNU/Linux 4.15.0-55-generic x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage System information as of Wed Aug 14 13:11:04 IST 2019 System load: 0.23 Processes: 101 Usage of /: 53.5% of 19.56GB Users logged in: 0 Memory usage: 9% IP address for enp0s3: 192.168.225.50 Swap usage: 0% IP address for enp0s8: 192.168.225.51 * Keen to learn Istio? It's included in the single-package MicroK8s.
https://snapcraft.io/microk8s
61 packages can be updated.
22 updates are security updates.
Last login: Wed Aug 14 13:10:33 2019 from 127.0.0.1
看見(jiàn)了嗎?即使默認(rèn)的 SSH 端口 22 被阻止,我現(xiàn)在也可以通過(guò) SSH 訪(fǎng)問(wèn)遠(yuǎn)程服務(wù)器。正如你在上面的示例中所看到的,我使用 https 端口 443 進(jìn)行 SSH 連接。
我在我的 Ubuntu 18.04 LTS 服務(wù)器上測(cè)試了 SSLH,它如上所述工作得很好。我在受保護(hù)的局域網(wǎng)中測(cè)試了 SSLH,所以我不知道是否有安全問(wèn)題。如果你在生產(chǎn)環(huán)境中使用它,請(qǐng)?jiān)谙旅娴脑u(píng)論部分中告訴我們使用 SSLH 的優(yōu)缺點(diǎn)。
分享標(biāo)題:使用SSLH讓HTTPS和SSH共享端口
轉(zhuǎn)載來(lái)源:http://www.dlmjj.cn/article/djioddi.html


咨詢(xún)
建站咨詢(xún)
