redhat linux6.5升級openssh到7.5p1

linux系統的安全加固,通常都會將openssh服務升級到最新版本,增強遠程鏈接的安全性。linux

官網發佈了openssh 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,可直接升級openssh。shell

升級需知:
查閱官方網站openssh,瞭解其最新的版本信息及其對系統內核和其它依賴組件的要求。
而後備份系統中現有的openssh信息,以備升級失敗後進行回退。再根聽說明優先完成其依賴組件的升級。
最後升級openssh,並進行驗證。
openssh最新的版本是2019年4月17日釋出的OpenSSH 8.0。安全

 1、首先打開兩個或以上的shell鏈接,由於在升級過程當中若是升級失敗會致使沒法新建shell鏈接;或開一個telnet服務。
在安裝以前先記下sshd.pid路徑,由於在啓動文件sshd中要更改此路徑。服務器

下載openssl-1.0.2l.tar.gz、openssh-7.5p1.tar.gz包並將安裝包傳入服務器中;ssh

卸載現有版本openssh:rpm -e 'rpm -qa |grep openssh'ide

刪除/etc/ssh/下全部文件,在卸載完openssh後此路徑下文件不會刪除,需手動刪除;網站

2、具體步驟:
一、 安裝依賴包yum -y install gcc libcap libcap-devel glibc-devel
二、 升級openssl
tar zxvf /tmp/openssl-1.0.2l.tar.gz -C /tmp
cd /tmp/openssl-1.0.2l
./config --prefix=/usr –shared
備註:(必定記得加上--shared選項, 不然openssh編譯的時候會找不到新安裝的openssl的library, 會報錯: openssl的 header和library版本不匹配。)
make
make install
三、升級openssh
tar zxf /tmp/openssh-7.5p1.tar.gz -C /tmp3d

cd /tmp/openssh-7.5p1
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-zlib --with-md5-passwords
make
make install
echo "PermitRootLogin no" >>/etc/ssh/sshd_config
service sshd restart
四、驗證
[root@localhost ~]# ssh -V
OpenSSH_7.5p1, OpenSSL 1.0.2l 29 May 2019
備註:
另外,安裝目錄爲/usr/,由於在啓動文件中有關於SSHD的路徑,此安裝目錄默認爲redhat啓動文件的路徑
可在配置文件/etc/ssh/sshd_config中修改rest

3、加固
修改hosts.all和hosts.deny
以ssh容許192.168.220.1和telnet容許192.168.220網段爲例,具體在/etc/hosts.allow加入內容以下:
redhat linux6.5升級openssh到7.5p1
編輯/etc/hosts.deny文件
redhat linux6.5升級openssh到7.5p1blog

保存文件退出編緝後,重啓ssh服務和telnet服務(可選)
備註:
1.一個IP訪問請求連入,linux的檢查策略是先看/etc/hosts.allow中是否容許,若是容許直接放行;若是沒有,則再看/etc/hosts.deny中是否禁止,若是禁止那麼就禁止連入。

2.對/etc/hosts.allow和/etc/hosts.deny的配置不用重啓就當即生效,但無論重啓不重啓當前已有會話都不會受影響;也就是說對以前已經連入的,即使IP已配置爲禁止登陸會話仍不會強制斷開。不過不知是否全部linux都同樣,由此第四步標爲可選。

3.網上發現有些教程寫成不是sshd而是in.sshd不是in.telnetd而是telnetd的,我的以爲應該是獨立啓的不用加in.託管於xinetd的須要加in.

4、其餘
一、若是升級中發生意外中斷的,能夠開telnet備用
啓用
sed -i "s/yes/no/g" /etc/xinetd.d/telnet

service xinetd restart

mv /etc/securetty /etc/securettyBAK
停用
sed -i "s/no/yes/g" /etc/xinetd.d/telnet

service xinetd stop

mv /etc/securettyBAK /etc/securetty
二、升級後對ssh配置的加固
echo "PermitRootLogin no" >>/etc/ssh/sshd_config
找到#Port 22一段,這裏是標識默認使用22端口,可修改成其餘端口

echo "Ciphers aes128-cbc,aes192-cbc,aes256-cbc,aes128-ctr,aes192-ctr,aes256-ctr,3des-cbc,arcfour128,arcfour256,arcfour,blowfish-cbc,cast128-cbc" >>/etc/ssh/sshd_config

service sshd restart三、升級成功後輸入密碼沒法登陸系統的緣由分析:一、未對配置文件進行修改,openssh7.5默認配置不容許使用root登陸系統二、pam配置文件錯誤或丟失三、配置文件中未啓用pam選項:UsePAM

相關文章
相關標籤/搜索