升級openssh踩得坑


升級背景:

  項目中使用的系統為CentOS6.8,經過漏洞掃描后發現openssh高危漏洞,具體描述如下:OpenSSH 7.2p2之前版本, sshd/ session.c/ do_setup_env函數存在安全漏洞, 啟用了UseLogin功能且PAM配置為讀取用戶主目錄內的 .pam_environment文件后, 本地用戶通過觸發/bin/login程序構造的環境, 可提升其權限。

  很復雜……,話不多說,直接升級到7.4p1版本。

升級過程:

-------升級前的准備:

1.上傳軟件包openssl-1.0.2k.tar.gz     openssh-7.4p1.tar.gz

 

2.安裝telnet服務,防止升級出現問題。

yum -y install telnet-server*

  

3.關閉防火牆,防止telnet無法連接

 

service iptables stop && chkconfig iptables off

vi /etc/xinetd.d/telnet  將其中disable字段的yes改為no以啟用telnet服務

mv /etc/securetty /etc/securetty.old    #允許root用戶通過telnet登錄

service xinetd start                     #啟動telnet服務

chkconfig xinetd on        #避免升級過程中服務器意外重啟后無法遠程登錄系統

 

  

 

4.安裝編譯所需工具包     

yum -y install gcc pam-devel zlib-devel

  

-------升級openssl

#############備份當前ssl#############

find / -name openssl

  

將上條命令找到的文件備份,命令格式如下

#mv  文件名  文件名.old(根據實際結果操作)

 

備份如下兩個庫文件,因系統內部分工具(如yumwget等)依賴此庫

cp  /usr/lib64/libcrypto.so.10  /usr/lib64/libcrypto.so.10.old

cp  /usr/lib64/libssl.so.10  /usr/lib64/libssl.so.10.old

  

############卸載當前ssl##############

#rpm -qa | grep openssl         ###查詢當前ssl版本

#rpm -e --nodeps 上條命令查詢結果粘貼到此處

  

 

############解壓安裝新版本ssl#########

tar -zxvf openssl-1.0.2k.tar.gz

cd openssl-1.0.2k

./config --prefix=/usr --openssldir=/etc/ssl --shared zlib    

make && make test && make install

openssl version -a  ##查看是否升級成功

  

  

--------升級openssh

############備份當前ssh#############

mv /etc/ssh /etc/ssh.old

  

############卸載當前ssh#############

rpm -qa | grep openssh(查詢結果如下,不一定與實際環境相同)

#openssh-clients-5.3p1-111.el6.x86_64

#openssh-server-5.3p1-111.el6.x86_64

#openssh-5.3p1-111.el6.x86_64

#openssh-askpass-5.3p1-111.el6.x86_64

  

卸載命令如下:

rpm -e --nodeps openssh-5.3p1-111.el6.x86_64

rpm -e --nodeps openssh-server-5.3p1-111.el6.x86_64

rpm -e --nodeps openssh-clients-5.3p1-111.el6.x86_64

rpm -e --nodeps openssh-askpass-5.3p1-111.el6.x86_64

rpm -qa | grep openssh   ###查詢是否成功

  

############安裝前環境配置############

install  -v -m700 -d /var/lib/sshd

chown  -v root:sys /var/lib/sshd

  

############解壓安裝新版本ssh#########

tar -zxvf openssh-7.4p1.tar.gz

cd openssh-7.4p1

./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

  

 

####安裝后環境配置(在編譯目錄執行####

echo 'X11Forwarding yes' >> /etc/ssh/sshd_config

echo "PermitRootLogin yes" >> /etc/ssh/sshd_config

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(如果失敗可用telnet連接啟動服務)

  

###############安裝成功后操作##############

yum remove telnet-server* -y

mv /etc/securetty.old /etc/securetty

chkconfig  xinetd off

service xinetd stop

service iptables start

chkconfig iptables on

  

注意:一定要卸載telnet,這個軟件存在危險,別背鍋了……

踩到的坑:

  升級途中遇到兩個坑都是因為 /usr/lib64/libcrypto.so.10 這個文件,由於沒有備份這個文件(心急了,運維還是要穩……),導致重啟后系統起不來,很慌……(重啟是因為升級了內核),在啟動頁面按ESC發現卡在缺少這個文件報錯的環境,這個時候用上了運維基礎操作(單用戶模式),進入單用戶模式后從別的機器中拷貝這個文件后重啟正常。

自我反省:

  基礎的運維說簡單其實很簡單,說難其實也很難。簡單的是技術,難的是心態。生活中也是這樣,做什么都要全力以赴,切不可覺得無所謂,常在河邊走,哪有不濕鞋……


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM