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

LazyCat2222 2024-07-15 10:37:03 阅读 65

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的版本

<code>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

 如果报错找不到库

则更新缓存库

<code>#更新缓存库

sudo ldconfig

#查看版本

openssl version

9. 更新bin文件

<code># 查看旧版本的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

<code>#开启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命令行

<code>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)、进入解压缩文件目录

<code>/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)、构建程序及安装

<code># 构建程序

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)

<code># 开启允许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

<code>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服务

<code>yum -y remove telnet telnet-server



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。