CentOS离线升级OpenSSH至9

150 阅读6分钟

[root@20240322-1149-test1 ~]# rpm -qa | grep xinetd

4、启动telnet依赖的xinetd服务,并查看是否正常启

[root@20240322-1149-test1 ~]# systemctl start xinetd

[root@20240322-1149-test1 ~]# ps -ef | grep xinet

5、编辑telnet文件

如果没有telnet文件也没关系,vim直接创建并编辑即可

[root@20240322-1149-test1 ~]# vim /etc/xinetd.d/telnet

添加:

service telnet

{

flags = REUSE

socket_type = stream

wait = no

user = root

server =/usr/sbin/in.telnetd

log_on_failure += USERID

disable = no

}

6、启动telnet服务并设置开机自启

[root@20240322-1149-test1 ~]# systemctl start telnet.socket

[root@20240322-1149-test1 ~]# systemctl enable telnet.socket

[root@20240322-1149-test1 ~]# systemctl status telnet.socket

7、防火墙放行telnet服务的23端口

[root@20240322-1149-test1 ~]# firewall-cmd --zone=public --add-port=23/tcp --permanent

[root@20240322-1149-test1 ~]# firewall-cmd --reload       #刷新防火墙策略

8、通过telnet登录测试

登录失败,这个为正常现象,因为系统默认禁止root用户使用telnet登录终端,我们在日志中查看登录使用的终端并在/etc/securetty中解除禁止即可

9、 telnet登录问题解决方法

查看被禁止登录的终端

[root@20240322-1149-test1 ~]# tail /var/log/secure

编辑/etc/securetty 将禁止登录的终端添加进来即可

[root@20240322-1149-test1 ~]# vim /etc/securetty

10、再次使用telnet登录测试

登录成功

四、卸载老版本OpenSSH、OpenSSL

        我们升级OpenSSH采用的是卸载主机中老版本的OpenSSH,再安装新版本的OpenSSH,依此来达成升级并解决漏洞的问题。

1、查看系统中安装的OpenSSH、OpenSSL

[root@20240322-1149-test1 ~]# rpm -qa openssh*

[root@20240322-1149-test1 ~]# rpm -qa openssl*

2、备份/etc/pam.d/sshd

[root@20240322-1149-test1 ~]# mv /etc/pam.d/sshd /etc/pam.d/sshd-bak 

3、卸载系统中安装的OpenSSH、OpenSSL

在执行这步时需要确认telnet已经安装并且可以正常通过telnet登录系统

[root@20240322-1149-test1 ~]# rpm -e --nodeps openssh

[root@20240322-1149-test1 ~]# rpm -qa openssh

[root@20240322-1149-test1 ~]# rpm -e --nodeps openssl

[root@20240322-1149-test1 ~]# rpm -qa openssl

五、安装新版本OpenSSH、OpenSSL

1、安装openssl

#解压openssl安装包

[root@20240322-1149-test1 ~]# tar zxvf openssl-1.1.1q.tar.gz

#切换到安装目录

[root@20240322-1149-test1 ~]# cd openssl-1.1.1q/

#进行初始化

[root@20240322-1149-test1 openssl-1.1.1q]# ./config -Wl,-rpath=/usr/lib64 --prefix=/usr/local/openssl --openssldir=/usr/local/openssl --libdir=/usr/lib64

#执行安装

[root@20240322-1149-test1 openssl-1.1.1q]# make -j 4 && make install

#创建软链接

[root@20240322-1149-test1 openssl-1.1.1q]# ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl

#安装完成,查看版本

[root@20240322-1149-test1 openssl-1.1.1q]# openssl version

2、安装zlib

#解压安装包

[root@20240322-1149-test1 ~]# tar zxvf zlib-1.3.1.tar.gz

#进入安装目录

[root@20240322-1149-test1 ~]# cd zlib-1.3.1/

#添加prefix路径

[root@20240322-1149-test1 zlib-1.3.1]# ./configure --prefix=/usr/local/zlib

#编译并安装

[root@20240322-1149-test1 zlib-1.3.1]# make && make install

#写入动态库路径

[root@20240322-1149-test1 zlib-1.3.1]# echo "/usr/local/zlib/lib/" >> /etc/ld.so.conf

[root@20240322-1149-test1 zlib-1.3.1]# ldconfig –v

#查看软链接

[root@20240322-1149-test1 zlib-1.3.1]# ll /lib64/libz.*

#进入编译目录下

[root@20240322-1149-test1 zlib-1.3.1]# cd /usr/local/zlib/lib/

#复制执行目录到/lib64下

[root@20240322-1149-test1 lib]# cp libz.so.1.3.1 /lib64/libz.so.1.3.1

#进入lib64目录下创建软链接

[root@20240322-1149-test1 lib]# cd /lib64

[root@20240322-1149-test1 lib64]# ln -snf libz.so.1.3.1  /lib64/libz.so

[root@20240322-1149-test1 lib64]# ln -snf libz.so.1.3.1  /lib64/libz.so.1

3、安装pam、pam-devel

#将安装包放置在/usr/local下并执行安装命令

[root@20240322-1149-test1 ~]# cd /usr/local/

[root@20240322-1149-test1 ~]# rpm -ivh pam-1.1.8-23.el7.x86_64.rpm

[root@20240322-1149-test1 ~]# rpm -ivh pam-devel-1.1.8-23.el7.x86_64.rpm

4、安装openssh

#解压安装包

[root@20240322-1149-test1 ~]# tar -xzvf openssh-9.6p1.tar.gz

#进入openssh安装目录

[root@20240322-1149-test1 ~]# cd openssh-9.6p1

#编译安装

[root@20240322-1149-test1 openssh-9.6p1]# ./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

#执行安装

[root@20240322-1149-test1 openssh-9.6p1]# make && make install

#授权

[root@20240322-1149-test1 openssh-9.6p1]# chmod 600 /etc/ssh/ssh_host_rsa_key

[root@20240322-1149-test1 openssh-9.6p1]# chmod 600 /etc/ssh/ssh_host_ecdsa_key

[root@20240322-1149-test1 openssh-9.6p1]# chmod 600 /etc/ssh/ssh_host_ed25519_key

#相关操作配置