商城类网站和o2o网站,广告牌,成都设计公司创业园,优秀平面设计作品网站前言#xff1a; 服务器被安全扫描#xff0c;扫出了漏洞需要修复#xff0c;根据提示将openssh升级为9.8p1的版本#xff0c;同时需要升级openssl#xff0c;但是升级openssh可能会导致ssh连接失败#xff0c;从而无法继续操作#xff0c;特别是远程机房尤为危险#…前言 服务器被安全扫描扫出了漏洞需要修复根据提示将openssh升级为9.8p1的版本同时需要升级openssl但是升级openssh可能会导致ssh连接失败从而无法继续操作特别是远程机房尤为危险一不小心便要进入机房原地操作所以安装 telnet-server 做备用链接但是 telnet-server 不是安全链接所以升级完成后需要关闭 telnet-server
一、 安装包准备
1.1 openssl下载 https://openssl-library.org/source/1.2 openssh阿里云镜像下载https://mirrors.aliyun.com/openssh/ 选择需要更新的版本下载我这里openssl 是 3.0版本openssh 为 9.8p1的版本telnet-server 为 yum自动选择版本安装
二、 安装telnet-server 做备用链接如果是本地虚拟机或者不考虑ssh链接失败的可能可忽略这一步 安装前提醒说明一下Telnet本身是有如下缺陷的 没有口令保护远程用户的登陆传送的帐号和密码都是明文很容易截获没有强力认证过程只是验证帐户和密码。没有完整性检查。传送的数据没有办法知道是否完整的未被篡改过的传送的数据是明文。 为了避免不必要的安全风险在升级完成 openssh 后本文会引导卸载telnet-server。 2.1 使用 cat /etc/passwd 命令查看服务器是否有非root管理员账号如果没有则添加并将管理员账号并设置密码且允许该账号登录root账号 示例 sysadmin Sysadmin!123
# /etc/sudoers 文件 查看是否有其他非root账号
cat /etc/passwd# 没有则添加 sysadmin 账号
adduser sysadmin
# 设置账号密码为 Sysadmin!123
passwd sysadmin
# 会提示输入密码输入后会提示已修改密码成功# 允许 sysadmin 登录root账号 /etc/sudoers 文件 中需要有 sysadmin ALL(ALL:ALL) ALL
cat /etc/sudoers
# 没有登录需要的账号则添加 sysadmin ALL(ALL:ALL) ALL 已有请忽略
vi /etc/sudoers2.2 安装telnet
# 检查是否有安装
rpm -qa telnet
rpm -qa telnet-server
rpm -qa xinetd
# 安装对应包
yum install telnet-server
yum install telnet
yum install -y xinetd
# xinetd 是 telnet-server 的守护进程需要按照 xinetd 才能远程控制#telnet 是控制 23 端口防火墙释放 23端口
firewall-cmd --zonepublic --add-port23/tcp --permanent
# 重启防火墙
firewall-cmd --reload# 如果是新安装的 telnet-server 需要配置 telnet-server 参数
cat EOF /etc/xinetd.d/telnet
service telnet
{flags REUSEsocket_type streamwait nouser rootserver /usr/sbin/in.telnetdlog_on_failure USERIDdisable no
}
EOF# 启动 telnet-server
systemctl start telnet.socket
# 启动 xinetd
systemctl start xinetd# 验证 telnet 服务状态
systemctl status telnet.socket
# 验证 xinetd 服务状态
systemctl status xinetd -l服务都是已启动状态尝试远程使用 telnet 登录
2.3 远程访问我这儿是局域网 如果连不上检查是否是开启了防火墙需要将端口 23 加入防火墙白名单连上了请忽略
#查看所有放行的端口
firewall-cmd --list-ports --permanent
# 如果没有端口23开启端口 23
firewall-cmd --zonepublic --add-port23/tcp --permanent# 重启防火墙
firewall-cmd --reload成功登录 root 账号后可以完成命令操作则 telnet-server 安装完成
# 连接登录后需要输入账号
sysadmin
# 根据提示输入密码
Sysadmin!123
# 登入后切换到root账号注意root账号是最高权限操作需谨慎
su
# 输入 root 账号密码进入系统能成功进入系统表示备用链接已完成安装三、 升级 openssl
3.1 先使用 openssl version 命令查看OpenSSL版本版本符合要求则不升级 3.2 如需要升级将安装包放到 /usr/local/ 目录下解压
cd /usr/local/
tar -xvf openssl-3.4.0.tar.gz
# 解压完成后进入解压后的文件夹cd openssl-3.4.0配置config 说明--prefix指定安装目录
--openssldir指定配置文件目录
shared作用是生成动态连接库
zlib使用静态的zlib压缩库# 配置安装
./config --prefix/usr/local/openssl --openssldir/usr/local/openssl shared zlib如果报错查看缺少什么插件安装后继续
# 缺少 perl-IPC-Cmd 使用yum 安装
yum -y install perl-IPC-Cmd
# 缺少 perl-Data-Dumper
yum install perl-Data-Dumper
# 安装完成后重新执行配置
./config --prefix/usr/local/openssl --openssldir/usr/local/openssl shared zlib3.3 配置成功后按开始安装
# 开始安装
make
make install
# 可能会出现 缺少openssl开发依赖包则安装
yum -y install openssl-devel
# 执行完成后重新执行 make make install安装成功 - 3.4 备份旧版本配置
mv /usr/bin/openssl /usr/bin/old_241114_openssl
mv /usr/lib64/openssl /usr/lib64/old_241114_openssl
mv /usr/include/openssl /usr/include/old_241114_openssl
# 删除旧版本的库连接
rm -f /usr/lib64/libssl.so.10
rm -f /usr/lib64/libcrypto.so.103.5 配置启动
#依次执行
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/ssl/lib64/libssl.so.3 /usr/lib64/libssl.so.3
ln -s /usr/local/ssl/lib64/libcrypto.so.3 /usr/lib64/libcrypto.so.3echo /usr/local/ssl/lib64 /etc/ld.so.confldconfig# 创建软链接ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/include/openssl /usr/include/openssl
ln -s /usr/local/openssl/lib64/libssl.so.3 /usr/lib64/libssl.so.3
ln -s /usr/local/openssl/lib64/libcrypto.so.3 /usr/lib64/libcrypto.so.3
# 添加OpenSSL动态链接库 下面两个配置先执行第一个如果后续出问题再回来尝试第二个
echo /usr/local/openssl/lib /etc/ld.so.conf
# 如果按照openssh 找不到 ssl 库试试这一个 库的位置跟不同的 openssl 版本有关
# echo /usr/local/ssl/lib64 /etc/ld.so.conf
# 更新库缓存
ldconfig
# 查看OpenSSL版本验证安装是否成功
openssl versionopenssl 安装完成
四、 升级 openssh
4.1 将下载的openssh 包放在 /usr/local/ 目录下解压
cd /usr/local/
# 解压
tar -zxvf openssh-9.8p1.tar.gz4.2 卸载旧版本openSSH注意卸载完后千万不能断开断开就连不上了卸载后其他人也无法通过ssh链接真断开了就使用最开始安装的telnet连接也能继续操作
yum remove -y openssh# 清理残余文件,配置也会消失做好备份
rm -rf /etc/ssh/*4.3 编译安装
./configure --prefix/usr/local/openssh --with-zlib/usr/local/zlib --with-ssl-dir/usr/local/openssl
# 安装
make
make installconfigure 完成 make install 完成
4.4 以上操作都没有报错则可以开始配置登录
#ssh允许root登录、需要密码进行验证
echo PermitRootLogin yes /usr/local/openssh/etc/sshd_config
echo PubkeyAuthentication yes /usr/local/openssh/etc/sshd_config
echo PasswordAuthentication yes /usr/local/openssh/etc/sshd_config
# 修改默认端口 注意改回未升级时的端口如果是新端口则需要设置防火墙见第一步安装 telnet 时端口防火墙设置方法
echo Port 22 /usr/local/openssh/etc/sshd_config#将编译安装的新配置文件 拷贝到原路径下拷贝前记得对比 sshd_config 文件将原有设置尽可能保存
cp /usr/local/openssh/etc/sshd_config /etc/ssh/sshd_config
cp /usr/local/openssh/sbin/sshd /usr/sbin/sshd
cp /usr/local/openssh/bin/ssh /usr/bin/ssh
cp /usr/local/openssh/bin/ssh-keygen /usr/bin/ssh-keygen
cp /usr/local/openssh/etc/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub#拷贝启动脚本
cp -p contrib/redhat/sshd.init /etc/init.d/sshd
#给sshd添加可执行权限
chmod x /etc/init.d/sshd
#设置开机自启
systemctl enable sshd
#重新启动sshd服务
systemctl restart sshd
#查看sshd服务状态
systemctl status sshd注意 如果没有启动成功千万不要断开链接断开后就连不上了要排查哪儿错了解决问题后再启动成功再断开PS如果安装了第一步可以使用telnet连接
4.5 查看OpenSSH版本显示新版本就是升级成功了如果显示还是旧的话断开重连一下再查看版本可能没刷新重新登录还是没有重复安装步骤查看是否哪儿报错未及时处理
ssh -V版本都是你需要的版本则完成安装我这儿安装了两台不同需求的服务器截图的版本有些不能对应上请忽略
五、关闭 telnet-server 避免不安全的漏洞
为了避免elnet本身的缺陷对服务器引发不安全漏洞确定openssh安装完成后关闭telnet服务端。5.1 修改xinetd配置
# 修改为disableyes
vi /etc/xinetd.d/telnet 5.2 重启xinetd服务关闭telnet-server 连接
# 重启xinetd服务
systemctl restart xinetd.service# 检查telnet服务是否已关闭如已关闭则会显示telnet off
chkconfig --list |grep telnet# 检查23端口是否已关闭
netstat -tlun |grep 235.3 删除telnet-server包 可以只删除服务端保留用户端看实际需求
# 只删除服务端不删除客户端方便以后重新安装而且用户端可以连接其他 telnet 服务端
yum remove telnet-server -y
# 彻底删除所有依赖包
# rpm -e telnet-server--nodeps 5.4 测试外部主机链接 telnet 已经无法在连接 5.5 如果操作了防火墙需要移除端口 23 的白名单
# 移除指定端口
firewall-cmd --permanent --remove-port23/tcp# 重启防火墙
firewall-cmd --reload# 查看所有放行的端口中是否没有端口 23
firewall-cmd --list-ports --permanent完成
欢迎点赞收藏一键三连