1. 程式人生 > >CentOS 6.6升級OpenSSH到最新版本7.5.p1

CentOS 6.6升級OpenSSH到最新版本7.5.p1

linux ssh升級

本文主要簡單記錄CentOS 6.6下OpenSSH升級步驟,安裝編譯所需工具包

yum install gcc pam-devel zlib-devel


一、升級原因
7.4以下openssh版本存在嚴重漏洞:
1.OpenSSH 遠程權限提升漏洞(CVE-2016-10010)
2.OpenSSH J-PAKE授權問題漏洞(CVE-2010-4478)
3.Openssh MaxAuthTries限制繞過漏洞(CVE-2015-5600)
OpenSSL>=1.0.1可以不用升級OpenSSL

二、安裝telnet服務
1.安裝軟件
1 # yum -y install telnet-server* telnet

2.啟用telnet服務
# vi /etc/xinetd.d/telnet
將其中disable字段的yes改為no以啟用telnet服務
# mv /etc/securetty /etc/securetty.old #允許root用戶通過telnet登錄
# service xinetd start #啟動telnet服務
# chkconfig xinetd on #使telnet服務開機啟動,避免升級過程中服務器意外重啟後無法遠程登錄系統

3.測試telnet能否正常登入系統
三、升級OpenSSH
1.備份當前openssh

mv /etc/ssh /etc/ssh.old
mv /etc/init.d/sshd /etc/init.d/sshd.old

2.卸載當前openssh
# rpm -qa | grep openssh
openssh-clients-5.3p1-104.el6.x86_64
openssh-server-5.3p1-104.el6.x86_64
openssh-5.3p1-104.el6.x86_64
openssh-askpass-5.3p1-104.el6.x86_64
# rpm -e --nodeps openssh-5.3p1-104.el6.x86_64
# rpm -e --nodeps openssh-server-5.3p1-104.el6.x86_64

# rpm -e --nodeps openssh-clients-5.3p1-104.el6.x86_64
# rpm -e --nodeps openssh-askpass-5.3p1-104.el6.x86_64
# rpm -qa | grep openssh
註意:卸載過程中如果出現以下錯誤
[[email protected] openssh-7.5p1]# rpm -e --nodeps openssh-server-5.3p1-104.el6.x86_64
error reading information on service sshd: No such file or directory
error: %preun(openssh-server-5.3p1-104.el6.x86_64) scriptlet failed, exit status 1
解決方法:
# rpm -e --noscripts openssh-server-5.3p1-104.el6.x86_64

3.openssh安裝前環境配置
# install -v -m700 -d /var/lib/sshd
# chown -v root:sys /var/lib/sshd
當前系統sshd用戶已經存在的話以下不用操作
# groupadd -g 50 sshd
# useradd -c ‘sshd PrivSep‘ -d /var/lib/sshd -g sshd -s /bin/false -u 50 sshd

4.解壓openssh_7.5p1源碼並編譯安裝
# tar -zxvf openssh-7.5p1.tar.gz
# cd openssh-7.5p1
# ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-zlib --with-openssl-includes=/usr --with-privsep-path=/var/lib/sshd
# make
# make install

5.openssh安裝後環境配置
# 在openssh編譯目錄執行如下命令
# install -v -m755 contrib/ssh-copy-id /usr/bin
# install -v -m644 contrib/ssh-copy-id.1 /usr/share/man/man1
# install -v -m755 -d /usr/share/doc/openssh-7.5p1
# install -v -m644 INSTALL LICENCE OVERVIEW README* /usr/share/doc/openssh-7.5p1
# ssh -V #驗證是否升級成功

6.啟用OpenSSH服務
# 在openssh編譯目錄執行如下目錄
# echo ‘X11Forwarding yes‘ >> /etc/ssh/sshd_config
# echo "PermitRootLogin yes" >> /etc/ssh/sshd_config #允許root用戶通過ssh登錄
# cp -p contrib/RedHat/sshd.init /etc/init.d/sshd
# chmod +x /etc/init.d/sshd
# chkconfig --add sshd
# chkconfig sshd on
# chkconfig --list sshd
# service sshd restart

註意:如果升級操作一直是在ssh遠程會話中進行的,上述sshd服務重啟命令可能導致會話斷開並無法使用ssh再行登入(即ssh未能成功重啟),此時需要通過telnet登入再執行sshd服務重啟命令。

7.重啟系統驗證沒問題後關閉telnet服務
# mv /etc/securetty.old /etc/securetty
# chkconfig xinetd off
# service xinetd stop
如需還原之前的ssh配置信息,可直接刪除升級後的配置信息,恢復備份。
# rm -rf /etc/ssh
# mv /etc/ssh.old /etc/ssh


CentOS 6.6升級OpenSSH到最新版本7.5.p1