2021-05-12 14:32:11
CentOS 6.6升級OpenSSH到最新版本7.5.p1
本文主要簡單記錄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
注意:解除安裝過程中如果出現以下錯誤
[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_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
相關文件可以到Linux公社資源站下載:
------------------------------------------分割線------------------------------------------
免費下載地址在 http://linux.linuxidc.com/
使用者名稱與密碼都是www.linuxidc.com
具體下載目錄在 /2017年資料/5月/8日/CentOS 6.6升級OpenSSH到最新版本7.5.p1/
下載方法見 http://www.linuxidc.com/Linux/2013-07/87684.htm
------------------------------------------分割線------------------------------------------
OpenSSH 升級至目前最新7.5版本遇到的一些坑
openssh upgrade to latest version
最近公司的系統被客戶那邊的一套掃描漏洞的裝置掃出了關於 openssh 的幾個漏洞,大概看了一下主要是因為 openssh 當前版本為 5.3,版本低了,本來覺得是個小問題,我自己的 distribution 是 centos 6.x, yum 最新的 openssh 也只是 5.3,沒辦法只能到 rpm 官網找新的包,找到最新的是 6.4,然後通過 yum localinstall 升級了,沒想到第二天客戶反映還存在 openssh 漏洞,要一個沒有才能對外開放 22 埠。 懵逼,沒辦法,只能去openssh 官網找最新的 release,最新版本是 7.5,安裝過程中遇到了一系列的坑,就不一一述說了,為了幫助大家避免這些坑,特記錄下來僅供參考。
ssh 升級步驟
安裝
cd /root/
mkdir ssh_upgrade && cd ssh_upgrade
上傳openssh安裝包
rz 安裝包
檢視當前openssh版本
ssh -V
解除安裝原有openssh
yum remove openssh -y
安裝 gcc、openssl和zlib
yum install gcc openssl-devel zlib-devel
tar zxvf openssh-7.5p1.tar.gz
cd openssh-7.5p1
./configure
make && make install
拷貝ssh服務檔案
cp ./contrib/redhat/sshd.init /etc/init.d/sshd
chmod +x /etc/init.d/sshd
修改SSHD服務檔案
vim /etc/init.d/sshd
修改以下內容
SSHD=/usr/sbin/sshd 為 SSHD=/usr/local/sbin/sshd
/usr/sbin/ssh-keygen -A 為 /usr/local/bin/ssh-keygen -A
儲存退出
加入系統服務
chkconfig --add sshd
檢視系統啟動服務是否增加改項
chkconfig --list |grep sshd
sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
允許root使用者遠端登入
cp sshd_config /etc/ssh/sshd_config
vim /etc/ssh/sshd_config 修改 PermitRootLogin yes,並去掉註釋
設定允許root使用者遠端登入
這一操作很重要!很重要!很重要!重要的事情說三遍,因為openssh安裝好預設是不執行sshd_config檔案的,所以即使在sshd_config中設定允許root使用者遠端登入,但是不加上這句命令,還是不會生效!
vim /etc/init.d/sshd
在 ‘$SSHD $OPTIONS && success || failure’這一行上面加上一行 ‘OPTIONS="-f /etc/ssh/sshd_config"’
儲存退出
重新啟動
service sshd start
更多OpenSSH相關內容可以檢視以下的有用連結:
在Ubuntu Server 13.10系統中安裝設定OpenSSH http://www.linuxidc.com/Linux/2014-02/96953.htm
Ubuntu安裝遠端登入OpenSSH服務 http://www.linuxidc.com/Linux/2014-02/97218.htm
CentOS 6下OpenSSH 5.3升級至7步驟記錄 http://www.linuxidc.com/Linux/2016-11/137166.htm
OpenSSH普通使用者無法登入的幾種情況的解決方法 http://www.linuxidc.com/Linux/2012-05/59457.htm
通用執行緒: OpenSSH 金鑰管理,第 1 部分理解 RSA/DSA 認證 http://www.linuxidc.com/Linux/2011-08/39871.htm
Linux下升級 OpenSSH http://www.linuxidc.com/Linux/2017-03/142411.htm
本文永久更新連結地址:http://www.linuxidc.com/Linux/2017-05/143568.htm
相關文章