OpenSSH 安全漏洞,Centos7升级ssh服务

OpenSSH常见的安全漏洞,升级到 openssh-9.7p1可修复。

1.  下载 openssh-9.7p1.tar.gz 和 openssl-1.1.1w.tar.gz 两个安装文件

openssh下载地址:Index of /pub/OpenBSD/OpenSSH/portable/

openssl下载地址:Releases · openssl/openssl · GitHub

2. 将下载的文件上传到 /usr/local/,并解压到当前目录

3. 查看当前ssh、ssl的版本

openssl version
openssh -V

4.安装相关依赖

#执行命令,安装相关依赖
yum -y install gcc pam-devel zlib-devel openssl-devel net-tools

5. 安装ssl,进入ssl解压目录

#进入解压目录
cd /usr/local/openssl-1.1.1w/

6.创建安装目录

#创建目录
mkdir /opt/openssl

7.编译安装

#配置编译
./config --prefix=/opt/openssl
#构建程序
make
#安装编译
make install

 以上步骤无误,继续下一步操作

8.更新lib文件


ldd /opt/openssl/bin/openssl

echo "/opt/openssl/lib" >> /etc/ld.so.conf
# 更新库
ldconfig -v
# 绝对路径查看openssl版本
ldd /opt/openssl/bin/openssl

 如果报错找不到库

则更新缓存库

#更新缓存库
sudo ldconfig

#查看版本
openssl version

9. 更新bin文件

# 查看旧版本的openssl命令路径
which openssl
# 重命名openssl
mv /bin/openssl /bin/openssl.old  
# 使用软连接的方式更新openssl命令
ln -s /opt/openssl/bin/openssl /bin/openssl
# 查看版本
openssl version

以上openssl已更新完毕。继续下一步操作

10. 升级openssh服务,需要另外用telnet连接,连接到服务器进行openssh升级,首先必须先安装telnet服务,才可以进行telnet链接

1)、安装telnet 服务

#安装telnet服务软件包
sudo yum install telnet-server
#启动
sudo systemctl start telnet.socket
#设置开机自启
sudo systemctl enable telnet.socket
#检查telnet状态
sudo systemctl status telnet.socket

        

2)、配置端口:23

#开启telnet服务的端口:23。安全组也不要忘记配置
sudo firewall-cmd --zone=public --add-port=23/tcp --permanent
sudo firewall-cmd --reload

3)配置访问账号

#添加用户
sudo useradd newuser
#添加密码,newuser为用户名
sudo passwd newuser
#配置管理员权限
sudo usermod -aG wheel newuser

4)、用telnet进行连接,可以使用MobaXterm连接,也可以使用windows命令连接

windows命令行

telnet your__ip_address  ==> telnet xxx.xx.xx.xx

11. Telnet连接成功了,开始升级SSH服务。

1)、卸载openssh的rpm包

sudo bash -c 'for i in $(rpm -qa | grep openssh); do rpm -e $i --nodeps; done'

2)、进入解压缩文件目录

/usr/local/openssh-9.7p1/

3)、配置编译OpenSSH服务

./configure --prefix=/usr/local/openssh --sysconfdir=/etc/ssh --with-pam --with-ssl-dir=/opt/openssl --with-md5-passwords --mandir=/usr/share/man --with-zlib=/usr/local/zlib --without-hardening

4)、构建程序及安装

# 构建程序
make
# 安装编译
make install

如果make install 的过程中报错  Permissions 0640 for '/etc/ssh/ssh_host_ed25519_key' are too open. It is required that your private key files are NOT accessible by others. This private key will be ignored。 执行以下命令,再重新安装

#权限设置
sudo chmod 600 /etc/ssh/ssh_host_ed25519_key
#安装
make install

5)、复制并修改启动sshd.init脚本

sudo cp /usr/local/openssh-9.7p1/contrib/redhat/sshd.init /etc/init.d/

sudo cat /etc/init.d/sshd.init | grep SSHD

sudo sed -i "s/SSHD=\/usr\/sbin\/sshd/SSHD=\/usr\/local\/openssh\/sbin\/sshd/g" /etc/init.d/sshd.init

sudo cat /etc/init.d/sshd.init | grep SSHD

sudo cat -n /etc/init.d/sshd.init | grep ssh-keygen

sudo sed -i "s#/usr/bin/ssh-keygen -A#/usr/local/openssh/bin/ssh-keygen -A#g" /etc/init.d/sshd.init

sudo cat -n /etc/init.d/sshd.init | grep ssh-keygen

 执行结果

       

6)、修改配置文件(sshd_config)

# 开启允许X11转发
echo 'X11Forwarding yes' | sudo tee -a /etc/ssh/sshd_config 
# 开启允许密码验证
echo "PasswordAuthentication yes" | sudo tee -a /etc/ssh/sshd_config
# 开启root登录认证, 如果未启动root登录认证,root会报错无法登录
echo 'PermitRootLogin yes' | sudo tee -a /etc/ssh/sshd_config

7)、启动OpenSSH

sudo cp -arp /usr/local/openssh/bin/* /usr/bin/

sudo /etc/init.d/sshd.init  status --查看状态
sudo /etc/init.d/sshd.init  start  -- 启动openssh服务,否则无法通过ssh连接服务

#start|stop|restart|reload|condrestart|status 根据需要跟不同的参数
#sudo /etc/init.d/sshd.init {start|stop|restart|reload|condrestart|status}

#查看安装版本
ssh –V   
sudo chmod +x /etc/rc.d/rc.local
sudo sh -c 'echo "/etc/init.d/sshd.init start" >> /etc/rc.d/rc.local'

8)、查看OpenSSH运行状态

9)、使用ssh协议连接centos7,检查openssh服务

       也可用telnet验证:ssh username@ip地址,输入服务器的账户密码。

10)验证连接成功后,卸载telnet服务

yum -y remove telnet telnet-server

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值