Openssh 8.4p1及Openssl 1.1.1h升級

Davis_itpub發表於2020-10-23

Openssh 8.4p1及Openssl 1.1.1h升級

檢視當前Openssh/Openssl版本
ssh -V

配置yum源
vi /etc/yum.conf
[centosdvd]
name=centosdvd
baseurl=file:///mnt
enabled=1
gpgcheck=0

掛接系統映象
mount -o loop /soft/rhel-server-7.7-x86_64-dvd.iso /mnt/

安裝telnet服務並啟用
因升級OpenSSH過程中需要解除安裝現有OpenSSH, 因此為了保持伺服器的遠端連線可用,需
要啟用telnet服務作為替代,如升級出現問題,也可透過telnet登入伺服器進行回退。
同時安裝telnet守護程式:xinetd
安裝配置telnet服務
yum install -y telnet-*
yum install -y xinetd

systemctl enable xinetd.service

systemctl enable telnet.socket

systemctl restart telnet.socket
systemctl restart xinetd

配置telnet root使用者訪問
方法一:
linux預設情況下root使用者使用telnet是登入不了的,需要修改/etc/secrueety檔案末尾加入pts/1、pts/2、pts/3或者可以把secrueety檔案重新命名均可;
echo ‘pts/0’ >> /etc/securetty
echo ‘pts/1’ >> /etc/securetty
echo ‘pts/2’ >> /etc/securetty
echo ‘pts/3’ >> /etc/securetty
cat /etc/securetty

方法二:
mv /etc/securetty /etc/securetty.bak 這樣ROOT就可以用ROOT登陸了

驗證telnet
telnet 192.168.174.141 或 telnet 192.168.174.141 23
連線不上則reboot系統

禁用Selinux
sed -e ‘s/^SELINUX=enforcing$/SELINUX=disabled/’ -i /etc/selinux/config
cat /etc/selinux/config

安裝Openssh/Openssl安裝編譯所需元件工具包
mount -o loop /soft/rhel-server-7.7-x86_64-dvd.iso /mnt/
yum -y install gcc pam­devel zlib­devel unzip perl
yum -y install perl-Module-Load-Conditional perl-core perl-CPAN perl-devel

安裝zlib
解壓zlib_1.2.11原始碼-配置檢查zlib-編譯zlib庫-安裝zlib庫
cd /soft
tar -xvzf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure --prefix=/usr
make&&make install

解除安裝當前zlib
注意:此步驟必須在步驟A執行完畢後再執行,否則先解除安裝zlib後,/lib64/目錄下的zlib相
關庫檔案會被刪除,步驟A編譯zlib會失敗。(補救措施:從其他相同系統的伺服器上覆
制/lib64、/usr/lib和/usr/lib64目錄下的libcrypto.so.10、libssl.so.10、libz.so.1、libz.so.1.2.3
四個檔案到相應目錄即可。可透過whereis、locate或find命令找到這些檔案的位置)
rpm -qa|grep zlib
rpm -e --nodeps zlib
rpm -qa|grep zlib

共享庫註冊
zlib安裝完成後,會在/usr/lib目錄中生產zlib相關庫檔案,需要將這些共享庫檔案註冊到系統
echo ‘/usr/lib’ >> /etc/ld.so.conf
cat /etc/ld.so.conf
ll /usr/lib/libz.so.1
ll /usr/lib/libz.so
ll /usr/lib/libz.so.1
ldconfig

升級OpenSSL
官方升級文件
Openssl下載地址:
Openssl官網:
備份當前openssl-解除安裝當前openssl
mv /usr/lib64/openssl /usr/lib64/openssl.old
mv /usr/bin/openssl /usr/bin/openssl.old
mv /etc/pki/ca-trust/extracted/openssl /etc/pki/ca-trust/extracted/openssl.old
cp /usr/lib64/libcrypto.so.10 /usr/lib64/libcrypto.so.10.old
cp /usr/lib64/libssl.so.10 /usr/lib64/libssl.so.10.old
rpm -qa|grep openssl |xargs
rpm -qa|grep openssl|xargs -i rpm -e --nodeps {}
rpm -qa|grep openssl |xargs

Openssl升級
解壓openssl原始碼-編譯Openssl-測試Openssl-安裝Openssl-驗證Openssl升級是否成功
cd /soft/
tar -xvzf openssl-1.1.1h.tar.gz
cd openssl-1.1.1h
./config --prefix=/usr --openssldir=/etc/ssl --shared zlib #必須加上­­shared,否則編譯時會找不到新安裝的openssl的庫而報錯
make&&make test #為了確保升級安全,test必須是:PASS透過才OK

make install
openssl version

恢復共享庫
由於OpenSSL不提供libcrypto.so.10和libssl.so.10這兩個庫,而yum、wget等工具又依賴此庫,因此需要將先前備份的這兩個庫進行恢復,其他的可視情況考慮是否恢復。
mv /usr/lib64/libcrypto.so.10.old /usr/lib64/libcrypto.so.10
y
mv /usr/lib64/libssl.so.10.old /usr/lib64/libssl.so.10
y

升級OpenSSH
10.1官方升級文件
Openssh官方地址:
Openssh軟體地址:
備份當前openssh-解除安裝當前openssh
mv /etc/ssh /etc/ssh.old

rpm -qa|grep openssh
rpm -qa |grep openssh|xargs -i rpm -e --nodeps {}
rpm -qa |grep openssh|xargs -i rpm -e --nodeps {}

Openssh升級前環境配置
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

Openssh升級
解壓openssh­8.4p1.tar.gz原始碼-配置Openssh-編譯Openssh-安裝Openssh
cd /soft
tar -xvzf openssh-8.4p1.tar.gz
cd openssh-8.4p1
./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

Openssh安裝後環境配置-驗證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-8.4p1
install -v -m644 INSTALL LICENCE OVERVIEW README* /usr/share/doc/openssh-8.4p1
ssh -V

低加密演算法配置
注:Openssh8.2—8.4版本由於加密安全演算法升級,因此需要續用以前的加密演算法工具則需要sshd配置在etc/ssh/sshd_conf末尾加入加密演算法欄位;
否則低演算法遠端工具登入時報錯,如下:
Key exchange failed.
No compatible key exchange method. The server supports these methods: curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha256

vi /etc/ssh/sshd_config
KexAlgorithms diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group-exchange-sha256,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group1-sha1,curve25519-sha256@libssh.org

設定root使用者可登入
echo ‘X11Forwarding yes’ >> /etc/ssh/sshd_config
echo “PermitRootLogin yes” >> /etc/ssh/sshd_config
cat /etc/ssh/sshd_config

啟用OpenSSH服務
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

Linux7版本以下檢視ssh狀態-重啟-啟用
systemctl status sshd
systemctl restart sshd
systemctl enable sshd
systemctl status sshd
reboot

檢視Openssh、Openssl升級情況
ssh -V
OpenSSH_8.4p1, OpenSSL 1.1.1g 21 Apr 2020

解除安裝telnet
–根據自己需求選擇是否解除安裝;
mount -o loop /soft/rhel-server-7.7-x86_64-dvd.iso /mnt/
yum remove telnet* -y
reboot



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31520497/viewspace-2728969/,如需轉載,請註明出處,否則將追究法律責任。

相關文章