074-升級OPENSSH版本到7.5.p1

背景node

工做需求:系統漏洞須要升級,拿到需求到解決問題花了3個小時,中間走入誤區,先用測試機的環境沒有解決問題。直接生產機器操做,備份解決問題 。linux

本文主要簡單記錄CentOS 6.6下OpenSSH升級步驟,及一鍵升級腳本。安裝編譯所需工具包
yum install gcc pam-devel zlib-devel服務器

1、升級緣由
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能夠不用升級OpenSSLssh

2、安裝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可否正常登入系統
3、升級OpenSSH
1.備份當前openssh
mv /etc/ssh /etc/ssh.old 
mv /etc/init.d/sshd /etc/init.d/sshd.oldrest

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 
注意:卸載過程當中若是出現如下錯誤 
[root@node1 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_64orm

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 sshdserver

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 installip

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

相關文章
相關標籤/搜索