由于項目構(gòu)建時間比較長媒殉,近期安全檢查發(fā)現(xiàn)openssh有漏洞担敌。所以要升級openssh到7.9p1版本。由于ssh用于遠(yuǎn)程連接廷蓉,所以要謹(jǐn)慎操作全封。
建議生成環(huán)境要先做測試,之后再在生產(chǎn)環(huán)境升級桃犬。
1 前期準(zhǔn)備
1.1 依賴安裝
1刹悴、 OpenSSL版本:目前OpenSSH7.9不支持OpenSSH1.1.x以上。否則編譯的時候會報錯攒暇。
2土匀、 Zlib1.1.4或1.2.1.2或更高版本
3、 gcc:因為編譯需要gcc
4形用、 openssl-devel:編譯時需要
1.2 注意事項
1就轧、 前期多打開一個xshell窗口证杭。保證連接正常。因為可能出現(xiàn)升級失敗妒御。結(jié)束后要確定好再關(guān)閉解愤。
2、 備份sshd_config配置文件(方便后期使用或者方便升級失敗使用)
3乎莉、 最好關(guān)閉防火墻送讲,如不關(guān)閉防火墻請開啟ssh需要的端口和telnet需要的端口。如果ssh不是22端口最好打開22端口梦鉴。因為ssh配置文件默認(rèn)22端口李茫。所以建議關(guān)閉防火墻揭保。
2肥橙、升級之后要重建xshell的session不然會出項下面提示
1 安裝telnet
1.1 安裝telnet
為防止openssh升級失敗。所以安裝telnet秸侣。保證openssh升級失敗也可以通過telnet連接服務(wù)器存筏,進(jìn)行恢復(fù)操作。并不用去機(jī)房味榛。
#yum install -y telnet-server
#yum install -y xinetd
#systemctl start telnet.socket
#systemctl start xinetd
默認(rèn)情況下椭坚,系統(tǒng)是不允許root用戶telnet遠(yuǎn)程登錄的。如果要使用root用戶直接登錄搏色,需設(shè)置如下內(nèi)容善茎∑到危或者可以添加一個可以登錄的用戶航邢,登錄并su到root用戶膳殷。
#echo 'pts/0' >>/etc/securetty
#echo 'pts/1' >>/etc/securetty
#systemctl restart telnet.socket
1.2 驗證telnet
確保使用windows或者其他Linux服務(wù)器可以telnet到此機(jī)器上赚窃。并且可以使用root用戶勒极。
建議開啟telnet和xinetd開機(jī)自動啟動冀惭,避免reboot后連不上Telnet
systemctl enable xinetd.service
systemctl enable telnet.socket
1 安裝openssh
1.1 下載openssh
Openssh官網(wǎng)地址:https://www.openssh.com/
http下載地址:https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/
選擇openssh-7.9p1.tar.gz進(jìn)行下載散休。并上傳到服務(wù)器上戚丸。
1.2 卸載舊的ssh
#cp -r /etc/ssh /etc/ssh.old #備份一些之前的文件
#rpm -qa|grep openssh
#rpm -e --nodeps openssh-clients-6.6.1p1-31.el7.x86_64
#rpm -e --nodeps openssh-6.6.1p1-31.el7.x86_64
#rpm -e --nodeps openssh-server-6.6.1p1-31.el7.x86_64
#rpm -qa|grep openssh
如果之前就是源碼安裝的夺颤,找到之前的安裝包胁勺,在里面執(zhí)行
#make uninstall
1.3 安裝OpenSSH
1寥裂、連接到其他計算機(jī)時封恰,OpenSSH作為兩個進(jìn)程運(yùn)行诺舔。第一個進(jìn)程是特權(quán)進(jìn)程低飒,并根據(jù)需要控制權(quán)限的頒發(fā)逸嘀。第二個進(jìn)程與網(wǎng)絡(luò)通信崭倘。設(shè)置適當(dāng)?shù)沫h(huán)境需要額外的安裝步驟司光,這些步驟通過以root用戶身份發(fā)出以下命令來執(zhí)行 :
#install -v -m700 -d /var/lib/sshd
#chown -v root:sys /var/lib/sshd
#groupadd -g 50 sshd
#useradd -c 'sshd PrivSep' -d /var/lib/sshd -g sshd -s /bin/false -u 50 sshd
2残家、解壓安裝
#tar -zxvf openssh-7.9p1.tar.gz
#cd openssh-7.9p1
#./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-privsep-path=/var/lib/sshd
#make
如果報錯
① configure: error: no acceptable C compiler found in $PATH
問題解決
yum install gcc
② configure: error: * zlib.h missing - please install first or check config.log *
問題解決
yum install openssl openssl-devel -y 安裝相關(guān)依賴包
3茴晋、修改相應(yīng)文件權(quán)限
#chmod 600 /etc/ssh/ssh_host_rsa_key
#chmod 600 /etc/ssh/ssh_host_ecdsa_key
#chmod 600 /etc/ssh/ssh_host_ed25519_key
4诺擅、安裝
#make install
5、配置
#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.9p1
#install -v -m644 INSTALL LICENCE OVERVIEW README* /usr/share/doc/openssh-7.9p1
命令解釋:
--sysconfdir=/etc/ssh:這可以防止安裝配置文件 /usr/etc撮执。
--with-md5-passwords:這使得可以使用MD5密碼抒钱。
--with-pam:此參數(shù)在構(gòu)建中啟用 Linux-PAM支持继效。
--with-xauth=/usr/bin/xauth:為X身份驗證設(shè)置xauth二進(jìn)制文件的默認(rèn)位置厉颤。如果將xauth安裝到其他路徑逼友,請更改位置帜乞。這也可以sshd_config使用XAuthLocation關(guān)鍵字進(jìn)行控制习柠。如果已安裝Xorg资溃,則可以省略此開關(guān)溶锭。
--with-kerberos5=/usr:此選項用于在構(gòu)建中包含Kerberos 5支持垫毙。
--with-libedit:此選項為sftp啟用行編輯和歷史記錄功能露久。
6毫痕、根據(jù)自身需求改寫配置文件。因為配置文件為初始配置文件臊泰。所以和之前的不一樣⌒杵担可以使用備份配置文件覆蓋。
注意:默認(rèn)是22端口挪丢,但是不能root直接登錄乾蓬。如果想直接使用root登錄執(zhí)行以下命令
#echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
2 開機(jī)自啟動
ssh服務(wù)必須開機(jī)自啟動任内,不然重啟的時候爆炸。
#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
#systemctl restart sshd
3 驗證操作
# ssh -V
OpenSSH_7.9p1, OpenSSL 1.0.2k-fips 26 Jan 2017
使用其他電腦或者其他的xshell等工具連接越走,驗證要謹(jǐn)慎铜跑。
4 回滾操作
如果之前是rpm包安裝的。并且按照以上步驟操作囤锉,可以直接以下命令進(jìn)行回滾
# yum -y install openssh-clients
# yum -y install openssh-server
# yum -y install openssh
5 結(jié)束操作
之前的步驟一定要謹(jǐn)慎查看。查看是否可以連接,會不會出現(xiàn)什么問題亏较。
1掩缓、 恢復(fù)telnet的禁止root登錄特權(quán)。如果之前關(guān)閉就關(guān)閉telnet旺罢。
2正卧、 開啟防火墻。并驗證連接。
3但绕、最后再關(guān)閉之前開xshell界面。
6 參考文檔
官方文檔:
http://www.linuxfromscratch.org/blfs/view/svn/postlfs/openssh.html