Linux服务器漏洞修复—OpenSSH升级到9.8(CentOS 7.6)

离线安装包提取地址

链接:百度网盘 请输入提取码 
提取码:uaio

一:查看版本和下载

1.1所需安装包目录

1.2:查看系统openssh包

rpm -qa|grep openssh

1.3:查看版本

ssh  -V

1.4:下载地址

Index of /pub/OpenBSD/OpenSSH/portable/

二:安装telnet

建议安装,如果你升级到一半,VPN突然掉了,或者网络断开,你就连不上xshell了,如果安装了telnet后,就是网络和VPN断开,也可以进行下一步操作

2.1:卸载telnet可不操作

为了避免在生产上安装openSSH失败,安装telnet

检查telnet是否安装

rpm -qa | grep telnet

没有安装,如果安装,请先卸载后重新安装

例如:

关闭telnet服务

systemctl disable xinetd.service
systemctl stop xinetd.service
systemctl disable telnet.socket
systemctl stop telnet.socket

执行卸载

rpm -e --nodeps telnet-0.17-47.el6.x86_64
rpm -e --nodeps telnet-server-0.17-64.el7.x86_64

2.2:上传安装包

统一上传路径 /home/telnet

2.3:安装

注意: 需要先安装xinetd,然后安装telnet客户端,再安装telnet服务端,不然可能会报错

cd  /home/telnet
rpm -ivh xinetd-2.3.14-38.el6.x86_64.rpm
rpm -ivh telnet-0.17-47.el6.x86_64.rpm
rpm -ivh telnet-server-0.17-64.el7.x86_64.rpm

2.4:启动服务

systemctl start telnet.socket
systemctl start xinetd

2.5:设置开机自启

systemctl enable telnet.socket
systemctl enable xinetd.service

2.6:查看telnet服务是否启动

netstat -antupl | grep 23
cat /etc/services | grep -a 'telnet'

2.7:root用户登录测试

开放root用户的权限,编辑以下文件.

vim /etc/pam.d/remote

注释掉这一行

#auth       required     pam_securetty.so

然后关闭centos7防火墙 

停止firewalld、关闭firewalld开机自启

systemctl stop firewalld.service
systemctl disable firewalld.service

三:编译安装gcc

3.1:查看是否安装了gcc

gcc -v

表示需要安装gcc

3.2:强制安装

cd /home/openSSH/gcc/
rpm -ivh *.rpm --nodeps --force

 3.3:查看是否安装成功

gcc -v

四:编译安装(升级openSSL)

4.1:安装devel

  • 查看ssl版本号
openssl version

  • 安装devel文件夹里面必要组件
cd /home/openSSH/devel/
rpm -ivh *.rpm --nodeps --force

4.2:解压安装(openssl-3.3.1)

本人升级过程中,不同服务器遇到情况不一,可能有的系统安装3.3.1会报错,建议安装1.1.1版本

  • 解压
cd /home/openSSH
tar -zxvf openssl-3.3.1.tar.gz -C ./

cd /home/openSSH/openssl-openssl-3.3.1
./config shared && make && make install
  • 检测是否编译正确
echo $?
  • 查看下最后的make install是否有报错,0表示没有问题

  •  备份后做软链接

先进行备份、添加软链接

##根据需要安装的是3.3.1版本
cd /home/openSSH/openssl-openssl-3.3.1
ll /usr/bin/openssl
mv /usr/bin/openssl /usr/bin/openssl_bak

ln -s /usr/local/bin/openssl /usr/bin/openssl
ll /usr/bin/openssl

加载新配置

cd /home/openSSH/openssl-openssl-3.3.1

##如果之前升级过openssl,则下面操作建议用vim打开删除之前添加的配置
echo "/usr/local/lib64" >> /etc/ld.so.conf

/sbin/ldconfig

4.3:解压安装(openssl-1.1.1v)

注意:如果执行./config shared报错提示perl,则建议直接将openssl版本降至最低要求1.1.1

openssl-openssl-3.3.1]# ./config shared
Can't locate Params/Check.pm in @INC (@INC contains: /home/openSSH/openssl-openssl-3.3.1/util/perl /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 . /home/openSSH/openssl-openssl-3.3.1/external/perl/Text-Template-1.56/lib) at ...

cd /home/openSSH/
tar -zxvf openssl-OpenSSL_1_1_1v.tar.gz -C ./
cd openssl-OpenSSL_1_1_1v/
./config --prefix=/opt/openssl
make
make install
echo $?

添加软链接

ll /usr/bin/openssl
mv /usr/bin/openssl /usr/bin/openssl_bak
ln -s /opt/openssl/bin/openssl /usr/bin/openssl

 如果在建立映射文件过程中出现文件存在,直接删除、覆盖即可

如果之前升级过openssl,则下面操作建议用vim打开删除之前添加的配置 

echo "/opt/openssl/lib" >> /etc/ld.so.conf
ldconfig --verbose

4.4:验证

1:验证

openssl version

五:编译安装openSSH

5.1:解压、编译

cd /home/openSSH/
tar -zxvf openssh-9.8p1.tar.gz -C ./
cd ./openssh-9.8p1/

安装ssl-1.1.1版本的 

./configure --prefix=/usr/ --sysconfdir=/etc/ssh --with-openssl-includes=/opt/openssl/include/openssl --with-ssl-dir=/opt/openssl   --with-zlib --with-md5-passwords --with-pam && make && make install

安装ssl-3.3.1版本的(如果编译报错,"--with-ssl-dir"路径参数需要微调)

./configure --prefix=/usr/ --sysconfdir=/etc/ssh --with-openssl-includes=/usr/local/include/openssl --with-ssl-dir=/usr/local/ssl   --with-zlib --with-md5-passwords --with-pam && make && make install

编译过程中可能会出现报错,基本是ssl头文件路径配置问题

修改路径为:
--with-openssl-includes=/opt/openssl/include/openssl

或者添加" --without-openssl-header-check"

./configure --without-openssl-header-check --prefix=/usr/ --sysconfdir=/etc/ssh --with-openssl-includes=/opt/openssl/include/openssl --with-ssl-dir=/opt/openssl   --with-zlib --with-md5-passwords --with-pam && make && make install

 

 查看是否安装成功

echo $?

授予权限(如果不授权,会启动ssh失败)##授予文件可写的权限

chmod 600 /etc/ssh/ssh_host_rsa_key
chmod 600 /etc/ssh/ssh_host_ecdsa_key
chmod 600 /etc/ssh/ssh_host_ed25519_key

授予权限后,再次编译安装

此处需要配置sshd_config,见下文

六:编译安装openSSH和配置

6.1:配置root用户登录

vim /etc/ssh/sshd_config

取消注释#PermitRootLogin yes,给root登录放行

6.2:开机自启,服务启动

下面的文件根据启动需要看是否拷贝,如果启动报sshd:未识别的服务,就需要拷贝下列文件

1:拷贝目录

cd /home/openSSH/openssh-9.8p1/
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

把原先的systemd管理的sshd文件删除或者移走或者删除,不移走的话影响我们重启sshd服务(如果没有就算了)

mv /usr/lib/systemd/system/sshd.service /home/

2:开机自启

chkconfig sshd on

3:加入系统服务

chkconfig --add sshd
systemctl enable sshd

七:启动服务测试

7.1:启停服务,查看端口

1:停止ssh服务

/etc/init.d/sshd stop

2:查看端口

netstat -lntp

3:运行 sudo /usr/sbin/sshd -t -f /etc/ssh/sshd_config 检查配置是否正确,如果没有错误提示,就可以正常启动 SSH 服务了

sudo /usr/sbin/sshd -t -f /etc/ssh/sshd_config

提示哪个参数不支持,就把该参数注释掉

4:启动ssh服务

/etc/init.d/sshd start

5:再次查看端口是否开启

netstat -lntp

6:重启ssh服务

/etc/init.d/sshd restart

7.2:查看版本

ssh -V

7.3:恢复防火墙配置,重启系统

开启firewalld、开启firewalld开机自启

systemctl start firewalld.service
systemctl enable firewalld.service

重启系统 

reboot

重启后再连接,验证是否升级成功

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

罗曼蒂克笑往事

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值