centos7離線升級openssh到8.0,解決舊版openssh安全掃描漏洞
阿新 • • 發佈:2020-12-10
技術標籤:openssh
背景:安全掃描,掃描出ssh高危漏洞OpenSSH使用者列舉(CVE-2018-15473)【POC】,解決辦法是將OpenSSH升級到7.7或更高版本。
首先登入伺服器檢查各個包
rpm -qa | grep telnet
rpm -qa | grep pam
rpm -qa | grep zlib
rpm -qa | grep xinetd
如果沒有,則安裝依賴包
所有所需的依賴包,放在網盤裡了,大家自提:
連結: https://pan.baidu.com/s/1D6-rOKQa6wRB1y8UBpILAQ 提取碼: pqxh
安裝依賴包 rpm -Uvh telnet-0.17-65.el7_8.x86_64.rpm rpm -Uvh telnet-server-0.17-65.el7_8.x86_64.rpm rpm -Uvh pam-1.1.8-23.el7.x86_64.rpm rpm -Uvh pam-devel-1.1.8-23.el7.x86_64.rpm rpm -Uvh zlib-1.2.7-18.el7.x86_64.rpm rpm -Uvh zlib-devel-1.2.7-18.el7.x86_64.rpm rpm -Uvh xinetd-2.3.15-14.el7.x86_64.rpm
關閉selinux
這一步影響我很久,這很關鍵
#vim /etc/selinux/config
將selinux設定為disable
SELINUX=disabled
這一步之後一定要重啟reboot,不然安裝後也登不上去
rpm -ivh --force cpp-4.8.5-39.el7.x86_64.rpm
rpm -ivh --force libgcc-4.8.5-39.el7.x86_64.rpm
rpm -ivh --force libgomp-4.8.5-39.el7.x86_64.rpm
rpm -ivh --force libstdc++-4.8.5-39.el7.x86_64.rpm
rpm -ivh --force gcc-4.8.5-39.el7.x86_64.rpm
rpm -ivh --force gcc-c++-4.8.5-39.el7.x86_64.rpm
啟動xinetd
systemctl start xinetd
systemctl status xinetd
注意:這裡我比較膽子大,沒用啟動telnet服務,若保險一點可以先啟動telnet服務,這樣可以通過telnet登入
安裝zlib
1.解壓安裝 tar -zxvf zlib-1.2.11.tar.gz cd zlib-1.2.11 ./configure --prefix=/usr/local/zlib-1.2.11 -share make && make install ln -s /usr/local/zlib-1.2.11 /usr/local/zlib 2.將zlib動態函式庫載入到快取記憶體中 echo "/usr/local/zlib-1.2.11/lib" >> /etc/ld.so.conf ldconfig -v
安裝openssl
1.解壓安裝
tar zxvf openssl-1.0.2m.tar.gz
cd openssl-1.0.2m
./config shared zlib-dynamic --prefix=/usr/local/openssl-1.0.2m --with-zlib-lib=/usr/local/zlib-1.2.11/lib --with-zlib-include=/usr/local/zlib-1.2.11/include
make && make install
ln -s /usr/local/openssl-1.0.2m /usr/local/openssl
2.將openssl工具集路徑加入到path路徑中
echo "/usr/local/openssl-1.0.2m/lib" >> /etc/ld.so.conf
ldconfig -v
3.檢視版本是否正確
openssl version -a
安裝openssh
1.解壓安裝
tar -xzvf openssh-8.0p1.tar.gz
cd openssh-8.0p1
./configure --prefix=/usr/ --sysconfdir=/etc/ssh --with-pam --with-md5-passwords --with-tcp-wrappers --with-ssl-dir=/usr/local/openssl --with-zlib=/usr/local/zlib --mandir=/usr/share/man
make && make install
2.配置
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
sed -i '/UsePAM no/c\UsePAM yes' /etc/ssh/sshd_config
cp -p contrib/redhat/sshd.init /etc/init.d/sshd
chmod +x /etc/init.d/sshd
sed -i '/^Subsystem/c\Subsystem sftp /usr/libexec/sftp-server' /etc/ssh/sshd_config
sed -i '/^SELINUX=enforcing/c\SELINUX=disabled' /etc/selinux/config
setenforce 0
3.檢視版本
sshd -v
測試sshd能否登陸
如果不能登入,執行全路徑啟動ssh
/usr/sbin/sshd -p 22
若啟動報錯
執行賦權 chmod 600 /etc/ssh/ssh_host_ecdsa_key
同樣的報錯哪個就這樣賦哪個檔案的許可權
最後一步
設定sshd開機自啟動
chkconfig --add sshd
chkconfig sshd on
chkconfig --list sshd