准备工作
配置镜像源
如果是内网条件下,建议配置本地源,本地源的配置方式可以参考我的博客:CentOS7配置本地yum源_szw906689771的博客-CSDN博客
如果是外网条件,可以配置阿里云等的镜像源。
安装telnet
避免升级失败后无法ssh登录
#进行安装,客户端和服务器端
yum -y install telnet-server.x86_64
yum -y install telnet.x86_64
yum -y install xinetd.x86_64
#配置开机启动
systemctl enable xinetd.service
systemctl enable telnet.socket
#启动服务
systemctl start telnet.socket
systemctl start xinetd
#查看端口,看到23端口已打开
netstat -ntlp
#说明:如果提示-bash: netstat: 未找到命令,则安装一下netstat 命令,执行以下yum
yum -y install net-tools
#开启防火墙允许访问23端口(没开防火墙跳过此步骤)
firewall-cmd --add-port=23/tcp --permanent
firewall-cmd --reload
#默认root无法远程访问,修改/etc/securetty
vi /etc/securetty
在末尾添加
pts/0
pts/1
测试使用telnet登录服务器
测试Telnet
利用windows电脑进行测试:
升级OpenSSL版本
下载新版本到指定目录
备份证书文件和秘钥文件
mv /usr/bin/openssl /usr/bin/openssl.old&&mv /usr/include/openssl /usr/include/openssl.old
安装新版本openssl
#解压
cd /media/update_openssh_8.8/
tar -zxvf openssl-1.0.2r.tar.gz
#进入目录
cd openssl-1.0.2r
#预编译到指定安装路径,生成Makefile文件,-t参数可测试编译情况,–prefix:指定安装目录;–openssldir:指定openssl配置文件路径
./config --prefix=/usr/local/openssl
说明:执行上面语句,可能回抛出如下问题
需要我们安装一下Perl 5,首先下载安装包,上传至服务器。
#进入目录
cd /media/update_openssh_8.8/
#解压
tar -zxvf perl-5.28.0.tar.gz
#进入解压目录
cd perl-5.28.0
# Dprefix :指定安装目录
./Configure -des -Dprefix=/usr/local/perl5
执行上面命令,如果出现以下报错:
则执行:
yum install gcc
yum install gcc-c++
后续继续执行:
make
make install
至此Perl 5安装完成,我们继续安装openssl
#进入目录:
cd /media/update_openssh_8.8/openssl-1.0.2r/
#预编译到指定安装路径,生成Makefile文件,-t参数可测试编译情况,–prefix:指定安装目录;–openssldir:指定openssl配置文件路径
./config --prefix=/usr/local/openssl
#编译
make
#安装
make install
替换原有旧openssl文件
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/include/openssl /usr/include/openssl
#在/etc/ld.so.conf文件中写入openssl库文件的搜索路径
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
#使修改后的/etc/ld.so.conf生效
验证版本
openssl version
至此openssl安装完毕。
升级OpenSSH
下载OpenSSH
#进入文件存放的目录
cd /media/update_openssh_8.8/
#解压
tar -zxvf openssh-8.8p1.tar.gz
编译安装
cd openssh-8.8p1
#编译
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-tcp-wrappers --with-ssl-dir=/usr/local/openssl --with-zlib=/usr/local/lib64 --without-hardening
抛出下面的错误。
安装Zlip
yum -y install zlib zlib-devel
抛出:
执行:
yum -y install pam-devel
继续执行命令:
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-tcp-wrappers --with-ssl-dir=/usr/local/openssl --with-zlib=/usr/local/lib64 --without-hardening
#查看结果,输出为0代表正常
echo $?
安装
make
#查看结果,输出为0代表正常
echo $?
make install
#查看结果,输出为0代表正常
echo $?
配置SSH文件
#允许root账户登录
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
grep "^PermitRootLogin" /etc/ssh/sshd_config
echo "UseDNS no" >> /etc/ssh/sshd_config
grep "UseDNS" /etc/ssh/sshd_config
#复制文件到系统服务目录
cp -a contrib/redhat/sshd.init /etc/init.d/sshd
cp -a contrib/redhat/sshd.pam /etc/pam.d/sshd.pam
#添加执行权限
chmod +x /etc/init.d/sshd
#添加服务,配置开机启动
chkconfig --add sshd
systemctl enable sshd
chkconfig sshd on
#原来的服务移走,否则有时重启后ssh服务起不来
mv /usr/lib/systemd/system/sshd.service /home/
测试验证
测试服务是否正常:
/etc/init.d/sshd restart
抛出如下异常:
执行: systemctl status sshd.service
执行: journalctl -xe
于是执行:
chmod 0600 /etc/ssh/ssh_host_ed25519_key
查看端口
netstat -ntlp
#可以通过systemctl start/stop/restart sshd.service 启动/停止/重启sshd服务
#查看版本
ssh -V
关闭telnet
systemctl disable xinetd.service
systemctl stop xinetd.service
systemctl disable telnet.socket
systemctl stop telnet.socket
再次使用telnet就不能再登录了。
再次漏扫,漏洞消除!