0


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

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

  1. 查看当前ssh、ssl的版本
openssl version
openssh -V

4.安装相关依赖

#执行命令,安装相关依赖
yum -y install gcc pam-devel zlib-devel openssl-devel net-tools
  1. 安装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

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

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

  1. 升级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
    ![](https://img-blog.csdnimg.cn/direct/da9473b8d5ab4241a5f7754d0023fb24.png)

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
  1. 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

执行结果

   ![](https://img-blog.csdnimg.cn/direct/52423d1204da4961b1986f7e3c94b434.png)

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
标签: ssh 运维 centos

本文转载自: https://blog.csdn.net/apple12655/article/details/138305982
版权归原作者 LazyCat2222 所有, 如有侵权,请联系我们删除。

“OpenSSH 安全漏洞,Centos7升级ssh服务”的评论:

还没有评论