OpenSSH 遠程升級到 9.4p1
文章目錄
- OpenSSH 遠程升級到 9.4p1
- 背景
- 升級前提
- 1. 升級 OpenSSL
- 2. 安裝并啟用Telnet
- 升級OpenSSH
背景
最近的護網行動,被查出來了好幾個關于OpenSSH 的漏洞。這是因為服務器系統安裝后,直接使用了系統自帶版本的OpenSSH ,此版本已經很老了,存在很多高低危漏洞。
系統信息如下:
centos: 7
openssh: 1.0.1
升級前提
- 升級OpenSSH后,原有公鑰失效,信任關系需要重新配置;
- 升級過程需要停止sshd服務,會導致ssh和sftp無法使用;
- 升級需要關閉防火墻服務;
- 升級需要關閉selinux服務;
- 升級前需要開啟telnet,防止升級失敗,系統無法登錄,對應的防火墻需要開啟23端口,安裝需要telnet相關包
- 升級過程中需要刷新lib庫:ldconfig -v;
- 升級順序:順序是 openssl -> openssh;
- 升級需要gcc、make、perl、zlib、zlib-devel、pam、pam-devel依賴包;
1. 升級 OpenSSL
安裝OpenSSH :9.4p1 需要最少 OpenSSL :1.1.1 以上,因此請先查看文章OpenSSL升級
2. 安裝并啟用Telnet
- 安裝telnet服務端
yum -y install xinetd telnet-server
默認情況下,系統是不允許root用戶telnet遠程登錄的。如果要使用root用戶直接登錄,需設置如下內容。或者可以添加一個可以登錄的用戶,登錄并su到root用戶(建議采用此方法,保證系統安全)。此步驟可跳過!
允許root用戶通過telnet登陸:
編輯/etc/pam.d/login,注釋掉下面這行
vi /etc/pam.d/login#把auth的限制去掉auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so
開啟root用戶遠程登陸。此步驟可跳過!
vi /etc/pam.d/remoteauth required pam_securetty.so
- 重啟telnet和xinetd服務 【telnet服務依賴于xinetd服務】
systemctl restart telnet.socketsystemctl restart xinetd
- 將 23端口(系統默認23為telnet端口)添加到防火墻允許的端口的列表中。
firewall-cmd --zone=public --add-port=23/tcp --permanent
升級OpenSSH
- 關閉SElinux
#檢查是否關閉:getenforce#如果未關閉,關閉之setenforce 0
上面只是臨時關閉了,重啟后不生效。下面改配置文件,使永久生效。
vi /etc/selinux/config#修改:SELINUX=disabled#保存退出。
- 安裝相關依賴包
yum -y install gcc make perl zlib zlib-devel pam pam-devel# 安裝完畢后執行下面命令,確保所有依賴包正常安裝rpm -qa | egrep "gcc|make|perl|zlib|zlib-devel|pam|pam-devel"
- 升級openSSH(注意從這步開始,通過Telnet登錄到服務器,務必)
#停止ssh服務systemctl stop sshd#備份ssh配置文件cp -r /etc/ssh /etc/ssh.old# 查看系統原有openssh包rpm -qa | grep openssh#刪除舊版本rpm -e --nodeps `rpm -qa | grep openssh`#解壓新版本tar -zxvf openssh-9.4p1.tar.gz cd openssh-9.4p1# 編譯配置 這里請注意--with-ssl-dir 是你openssl安裝的目錄./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-zlib --with-tcp-wrappers --with-ssl-dir=/usr/local/ssl --without-hardening#編譯安裝make && make install#調整文件權限chmod 600 /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_ecdsa_key /etc/ssh/ssh_host_ed25519_key#復制配置文件cp -a contrib/redhat/sshd.init /etc/init.d/sshd chmod u+x /etc/init.d/sshd#還原 原配置文件mv ../sshd.backup /etc/pam.d/sshd mv ../sshd_config.backup /etc/ssh/sshd_config#添加自啟動chkconfig --add sshd chkconfig sshd on#重啟服務systemctl restart sshd# 查看版本, 驗證結果 - 顯示9.4p1即成功ssh -V