一、安裝依賴#
安裝以下依賴套件:
# 更新庫
sudo apt update
# 安裝依賴
sudo apt install zlib1g libpam0g-dev libssl-dev
二、安裝套件下載#
下載以下軟體套件,版本參考下載說明連結:
OpenSSL
官方下載地址: https://www.openssl.org/source/OpenSSH
官方下載地址: https://fastly.cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/Zlib
官方下載地址: http://www.zlib.net/
三、準備#
驗證 telnet
服務是否可用:
telnet ip
如果登入不成功,需要安裝 telnet
服務:
# 安裝 telnet
sudo apt-get install openbsd-inetd telnetd telnet
# 啟動服務
sudo /etc/init.d/openbsd-inetd restart
# 查看 telnet 端口
netstat -anpt | grep 23
# 防火牆放開 23 端口
sudo ufw allow 23
# 再次測試是否成功登入
telnet ip
四、安裝#
卸載原 openssh
:
sudo apt-get remove openssh-server openssh-client
ps. 此時無法再新建 ssh 連接,所以切勿關閉當前操作界面。
1. 安裝 zlib#
tar -zxvf zlib-version.tar.gz
cd zlib-version
./configure --prefix=/usr/local/zlib
make && sudo make install
2. 升級 openssl#
tar -zxvf openssl-version.tar.gz
cd openssl-version
./config shared zlib
make && sudo make install
加上 shared 參數,以免安裝 openssh 時無法找到 zlib
2.1 移走並備份原 openssl#
sudo mv /usr/bin/openssl /usr/bin/openssl.bak
sudo mv /usr/include/openssl /usr/include/openssl.bak
2.2 創建軟連結到系統位置#
sudo ln -s /usr/local/bin/openssl /usr/bin/openssl
sudo ln -s /usr/local/include/openssl /usr/include/openssl
2.3 將 openssl 的 lib 庫添加到系統#
sudo echo "/usr/local/openssl/lib64" > /etc/ld.so.conf.d/openssl.conf
# 使新添加的lib被系統找到
sudo ldconfig
2.4 查看 openssl 版本#
openssl version -a
3. 升級 openssh#
3.1 移走並備份原 openssh#
sudo mv /etc/init.d/ssh /etc/init.d/ssh.old
sudo cp -r /etc/ssh /etc/ssh.old
3.2 升級 openssh#
tar -zxvf openssh-version.tar.gz
cd openssh-version
# 需要指定openssl的安裝路徑
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-zlib --with-ssl-dir=/usr/local/openssl --with-privsep-path=/var/lib/sshd
make && sudo make install
3.3 查看當前 SSH 的版本#
ssh -V
sshd -V
五、修改還原預設配置#
cd /etc/ssh
sudo mv sshd_config sshd_config.default
sudo cp ../ssh.old/sshd_config ./
# 使用原來的 /etc/init.d/ssh
sudo mv /etc/init.d/ssh.old /etc/init.d/ssh
# 取消註銷指定服務
sudo systemctl unmask ssh
# 重啟sshd
sudo systemctl restart sshd
六、關閉 Telnet 服務#
-
停止 Telnet 服務:
sudo systemctl stop openbsd-inetd
-
禁用 Telnet 服務:
sudo systemctl disable openbsd-inetd
-
卸載 Telnet 伺服器(可選):
sudo apt remove telnetd
這將完全移除 Telnet 伺服器,包括配置檔案和可執行檔案。
-
防火牆關閉
23
端口:# 查看當前防火牆規則,並附帶編號 sudo ufw status numbered # 刪除防火牆規則 sudo ufw delete <規則編號>