這篇文章主要為大家展示了“如何使用stunnel保護(hù)telnet連接”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“如何使用stunnel保護(hù)telnet連接”這篇文章吧。
成都創(chuàng)新互聯(lián)公司專業(yè)IDC數(shù)據(jù)服務(wù)器托管提供商,專業(yè)提供成都服務(wù)器托管,服務(wù)器租用,溫江服務(wù)器租用,溫江服務(wù)器租用,成都多線服務(wù)器托管等服務(wù)器托管服務(wù)。
Telnet 是一種客戶端-服務(wù)端協(xié)議,通過 TCP 的 23 端口連接到遠(yuǎn)程服務(wù)器。Telnet 并不加密數(shù)據(jù),因此它被認(rèn)為是不安全的,因為數(shù)據(jù)是以明文形式發(fā)送的,所以密碼很容易被嗅探。但是,仍有老舊系統(tǒng)需要使用它。這就是用到 stunnel的地方。
stunnel 旨在為使用不安全連接協(xié)議的程序增加 SSL 加密。
使用 sudo 安裝 stunnel 以及 telnet 的服務(wù)端和客戶端:
sudo dnf -y install stunnel telnet-server telnet
添加防火墻規(guī)則,在提示時輸入你的密碼:
firewall-cmd --add-service=telnet --permfirewall-cmd --reload
接下來,生成 RSA 私鑰和 SSL 證書:
openssl genrsa 2048 > stunnel.keyopenssl req -new -key stunnel.key -x509 -days 90 -out stunnel.crt
系統(tǒng)將一次提示你輸入以下信息。當(dāng)詢問 Common Name
時,你必須輸入正確的主機名或 IP 地址,但是你可以按回車鍵跳過其他所有內(nèi)容。
You are about to be asked to enter information that will beincorporated into your certificate request.What you are about to enter is what is called a Distinguished Name or a DN.There are quite a few fields but you can leave some blankFor some fields there will be a default value,If you enter '.', the field will be left blank.-----Country Name (2 letter code) [XX]:State or Province Name (full name) []:Locality Name (eg, city) [Default City]:Organization Name (eg, company) [Default Company Ltd]:Organizational Unit Name (eg, section) []:Common Name (eg, your name or your server's hostname) []:Email Address []
將 RSA 密鑰和 SSL 證書合并到單個 .pem
文件中,并將其復(fù)制到 SSL 證書目錄:
cat stunnel.crt stunnel.key > stunnel.pemsudo cp stunnel.pem /etc/pki/tls/certs/
現(xiàn)在可以定義服務(wù)和用于加密連接的端口了。選擇尚未使用的端口。此例使用 450 端口進(jìn)行隧道傳輸 telnet。編輯或創(chuàng)建 /etc/stunnel/telnet.conf
:
cert = /etc/pki/tls/certs/stunnel.pemsslVersion = TLSv1chroot = /var/run/stunnelsetuid = nobodysetgid = nobodypid = /stunnel.pidsocket = l:TCP_NODELAY=1socket = r:TCP_NODELAY=1[telnet]accept = 450connect = 23
accept
選項是服務(wù)器將監(jiān)聽傳入 telnet 請求的接口。connect
選項是 telnet 服務(wù)器的內(nèi)部監(jiān)聽接口。
接下來,創(chuàng)建一個 systemd 單元文件的副本來覆蓋原來的版本:
sudo cp /usr/lib/systemd/system/stunnel.service /etc/systemd/system
編輯 /etc/systemd/system/stunnel.service
來添加兩行。這些行在啟動時為服務(wù)創(chuàng)建 chroot 監(jiān)獄。
[Unit]Description=TLS tunnel for network daemonsAfter=syslog.target network.target [Service]ExecStart=/usr/bin/stunnelType=forkingPrivateTmp=trueExecStartPre=-/usr/bin/mkdir /var/run/stunnelExecStartPre=/usr/bin/chown -R nobody:nobody /var/run/stunnel [Install]WantedBy=multi-user.target
接下來,配置 SELinux 以在你剛剛指定的新端口上監(jiān)聽 telnet:
sudo semanage port -a -t telnetd_port_t -p tcp 450
***,添加新的防火墻規(guī)則:
firewall-cmd --add-port=450/tcp --permfirewall-cmd --reload
現(xiàn)在你可以啟用并啟動 telnet 和 stunnel。
systemctl enable telnet.socket stunnel@telnet.service --now
要注意 systemctl
命令是有順序的。systemd 和 stunnel 包默認(rèn)提供額外的模板單元文件。該模板允許你將 stunnel 的多個配置文件放到 /etc/stunnel
中,并使用文件名啟動該服務(wù)。例如,如果你有一個 foobar.conf
文件,那么可以使用 systemctl start stunnel@foobar.service
啟動該 stunnel 實例,而無需自己編寫任何單元文件。
如果需要,可以將此 stunnel 模板服務(wù)設(shè)置為在啟動時啟動:
systemctl enable stunnel@telnet.service
本文的這部分假設(shè)你在客戶端系統(tǒng)上以普通用戶(擁有 sudo 權(quán)限)身份登錄。安裝 stunnel 和 telnet 客戶端:
dnf -y install stunnel telnet
將 stunnel.pem
從遠(yuǎn)程服務(wù)器復(fù)制到客戶端的 /etc/pki/tls/certs
目錄。在此例中,遠(yuǎn)程 telnet 服務(wù)器的 IP 地址為 192.168.1.143
。
sudo scp myuser@192.168.1.143:/etc/pki/tls/certs/stunnel.pem/etc/pki/tls/certs/
創(chuàng)建 /etc/stunnel/telnet.conf
:
cert = /etc/pki/tls/certs/stunnel.pemclient=yes[telnet]accept=450connect=192.168.1.143:450
accept
選項是用于 telnet 會話的端口。connect
選項是你遠(yuǎn)程服務(wù)器的 IP 地址以及監(jiān)聽的端口。
接下來,啟用并啟動 stunnel:
systemctl enable stunnel@telnet.service --now
測試你的連接。由于有一條已建立的連接,你會 telnet
到 localhost
而不是遠(yuǎn)程 telnet 服務(wù)器的主機名或者 IP 地址。
[user@client ~]$ telnet localhost 450Trying ::1...telnet: connect to address ::1: Connection refusedTrying 127.0.0.1...Connected to localhost.Escape character is '^]'. Kernel 5.0.9-301.fc30.x86_64 on an x86_64 (0)server login: myuserPassword: XXXXXXXLast login: Sun May 5 14:28:22 from localhost[myuser@server ~]$
以上是“如何使用stunnel保護(hù)telnet連接”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!