Linux系統升級更新openssh 7.3p1


 放在最前面:鑒於網上爬蟲猖獗,博客被盜時有發生,這里需要來個鏈接,大家請認准來自博客園的Scoter:http://www.cnblogs.com/scoter2008,本文將持續更新

 

最近綠盟給掃描出了幾個漏洞,都是關於openssh的,於是仔細看了一下,即使是最新版的CentOS 7.2也還在用openssh 6.6.1p1,yum update更新無濟於事,那么只有我們自己動手了

 

CentOS 7.2更新過程

1、查看一下openssh的版本信息

[root@localhost ~]# ssh -V
OpenSSH_6.6.1p1, OpenSSL 1.0.1e-fips 11 Feb 2013

2、備份文件,備份一下/etc/ssh/sshd_config文件,安裝完成后可以參考

[root@localhost ssh]# mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

3、升級的思路是將新版openssh制作成rpm包,然后安裝更新(這是嘗試了幾種方法后,感覺最好的一種),這里先安裝編譯所需工具

yum groupinstall -y Development tools
yum install -y pam-devel rpm-build rpmdevtools zlib-devel krb5-devel tcp_wrappers tcp_wrappers-devel tcp_wrappers-libs libX11-devel xmkmf libXt-devel wget openssl openssl-devel

 4、配置RPM編譯環境

cd ~
mkdir rpmbuild
cd rpmbuild
mkdir -pv {BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}

5、生成openssh的RPM安裝包

5.1、下載源碼包

cd ~/rpmbuild/SOURCES/
wget http://openbsd.hk/pub/OpenBSD/OpenSSH/portable/openssh-7.3p1.tar.gz 
wget http://ftp.riken.jp/Linux/momonga/6/Everything/SOURCES/x11-ssh-askpass-1.2.4.1.tar.gz

5.2、配置SPEC文件

cd ~/rpmbuild/SPECS/
tar zxf ../SOURCES/openssh-7.3p1.tar.gz openssh-7.3p1/contrib/redhat/openssh.spec
mv openssh-7.3p1/contrib/redhat/openssh.spec openssh-7.3p1.spec
rm -fr openssh-7.3p1
sed -i -e "s/%define no_gnome_askpass 0/%define no_gnome_askpass 1/g" openssh-7.3p1.spec
sed -i -e "s/%define no_x11_askpass 0/%define no_x11_askpass 1/g" openssh-7.3p1.spec
sed -i -e "s/BuildPreReq/BuildRequires/g" openssh-7.3p1.spec

5.3、編譯生成RPM

cd ~/rpmbuild/SPECS/
rpmbuild -bb openssh-7.3p1.spec

5.4、查看生成包

cd ~/rpmbuild/RPMS/x86_64
ls

5.5、安裝生成的RPM包

yum install openssh-7.3p1-1.x86_64.rpm openssh-clients-7.3p1-1.x86_64.rpm openssh-server-7.3p1-1.x86_64.rpm

6、修改配置文件,可以和先前備份的文件對比,按順序來,不然行號會對不上(這個修改按你的需求來,這里是參照舊的sshd_config.bak進行的設定)

cp /etc/ssh/sshd_config.rpmnew /etc/ssh/sshd_config
上面這步不是必須,安裝RPM包的時候會有提示,如果沒有生成這個sshd_config.rpmnew文件,可以跳過上面這步
sed -i "37a\SyslogFacility AUTHPRIV" /etc/ssh/sshd_config
sed -i "44a\PermitRootLogin yes" /etc/ssh/sshd_config
sed -i "77a\ChallengeResponseAuthentication no" /etc/ssh/sshd_config
sed -i "88a\GSSAPICleanupCredentials no" /etc/ssh/sshd_config
sed -i "112a\UsePrivilegeSeparation sandbox" /etc/ssh/sshd_config

7、更改密鑰權限,所有密鑰權限必須為600,密鑰格式為ssh_host_XXX_key,全部在/etc/ssh目錄下

cd /etc/ssh
chmod 600 ssh_host_XXX_key

8、重啟sshd服務

/etc/init.d/sshd restart

9、嘗試用CRT或Xshell連接,能連上就沒問題了

10、最后檢查一下開機自啟,因為沒有動過sshd.service自啟腳本,所有應該沒有問題

11、看一下更新后的成果

[root@localhost ~]# ssh -V
OpenSSH_7.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013

 

Ubuntu 14.04更新過程

因為覺得sudo用着麻煩,直接修改了sshd_config文件,直接用root用戶登錄了系統,以下操作都是在root用戶下進行的

因為Ubuntu剛接觸不久,玩的不怎么6,這里采用編譯安裝,如果有更簡單的方法,敬請大神告知

1、查看openssh的版本

root@ubuntu:~# ssh -V
OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.7, OpenSSL 1.0.1f 6 Jan 2014

2、安裝基礎編譯環境

apt-get install build-essential

3、更新openssl,這個需要更新,不更新在openssh的configure階段會提示找不到頭文件

apt-get install openssl

4、卸掉舊的openssh

apt-get remove openssh-*
他會列一堆東西出來,但實際只會移除4個包
openssh-server
openssh-client
openssh-sftp
openssh-import-id

5、編譯安裝zlib庫,安裝包建議用瀏覽器下載好再rz到服務器,wget很慢

wget http://zlib.net/zlib-1.2.8.tar.gz
tar zxf zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure
make
make install

6、更新ssl庫

apt-get install libssl-dev

7、編譯安裝openssh(主角登場,此處應該有掌聲)

wget http://openbsd.hk/pub/OpenBSD/OpenSSH/portable/openssh-7.3p1.tar.gz
tar zxf openssh-7.3p1.tar.gz
cd  openssh-7.3p1
./configure
make
make install

8、安裝完成后會提示你用他給你的命令啟動服務,但是請先不要啟動,我們需要改一下配置

ssh-keygen: generating new host keys: RSA DSA ECDSA ED25519 
上面是創建了新的host key,下面是服務的測試啟動命令
/usr/local/sbin/sshd -t -f /usr/local/etc/sshd_config

9、更改配置,新安裝的openssh需要指定sshd_config路徑,這個新路徑和舊路徑不一樣,所以你可以對比兩個配置文件,按你的需要修改一下配置(其實不用更改什么,默認也可以)

vimdiff /etc/ssh/sshd_config /usr/local/etc/sshd_config

10、啟動sshd服務,覺得麻煩,自己做軟鏈接

/usr/local/sbin/sshd -f /usr/local/etc/sshd_config

11、嘗試登錄並檢查自啟情況

vim /etc/rc.local
在exit 0之前加入以下內容
/usr/local/sbin/sshd -f /usr/local/etc/sshd_config

服務就能自啟,再來看看更新后的openssh版本吧

ccyy@ubuntu:~$ ssh -V
OpenSSH_7.3p1, OpenSSL 1.0.1f 6 Jan 2014

 

其他的Linux系統參考着做吧


免責聲明!

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



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