Linux升级openssl、openssh

您所在的位置:网站首页 sshd什么意思 Linux升级openssl、openssh

Linux升级openssl、openssh

#Linux升级openssl、openssh| 来源: 网络整理| 查看: 265

在项目中,我们经常会发现Linux系统中Open SSH、Open SSL存在高危漏洞,如OpenSSL“心脏出血”漏洞,利用该漏洞,黑客可以获取约30%的https开头网址的用户登录账号密码,其中包括购物、网银、社交、门户等类型的知名网站等。 以及OpenSSH漏洞,如“OpenSSH远程代码执行漏洞CVE-2016-10009”, sshd服务可以利用转发的agent-socket文件,欺骗本机的ssh-agent来加载一个恶意的PKCS#11模块,从而可以远程执行代码,黑客利用漏洞实现远程命令执行,严重情况下可能会导致数据泄露。 我们一般通过升级openssh和openssl来解决系统中存在的相关高危漏洞。

升级说明

openSSL升级至openssl 1.1.1k版本 openssl version -a #当前查看版本 openssl下载地址:https://ftp.openssl.org/source/

openSSH升级至openssh 8.6版本 ssh -V #当前查看版本 openssh下载地址:https://ftp.riken.jp/pub/OpenBSD/OpenSSH/portable/ ,以 p1.tar.gz结尾的即可,选择自己想要的版本

一、安装telnet (以防升级失败,连不上服务器,建议弄) # 查看是否安装telnet服务 rpm -qa | grep telnet rpm -qa | grep xinetd # 若无安装,yum安装 yum -y install telnet* yum -y install xinetd #将服务开机自启(此处根据自身情况考虑) systemctl enable xinetd.service systemctl enable telnet.socket #开启服务 systemctl start telnet.socket systemctl start xinetd #安装好后,更改配置文件,允许telnet远程连接,Linux7中可能不需要: vi /etc/xinetd.d/telnet 将disable = yes改为 disable = no,退出保存。 vi /etc/securetty #在最后添加两行 pts/0 pts/1 systemctl restart xinetd netstat -plnt |grep 23 # 确认下是否启动成功 二、升级OpenSSl 1、查看原版本 openssl version -a 2、安装依赖包 #安装openssl 依赖包 yum -y install perl gcc gcc-c++ glibc make zlib 3、解压安装 #我们将ssl安装在/usr/local/openssl目录下 tar -zxvf openssl-1.1.1k.tar cd openssl-1.1.1k ./config --prefix=/usr/local/openssl #检查环境 ./config -t make #编译 make install #编译安装 4、修改配置 #更新函数库 cd /usr/local ldd /usr/local/openssl/bin/openssl #检查函数库 echo "/usr/local/openssl/lib" >> /etc/ld.so.conf #添加所缺函数库 ldconfig -v #更新函数库 openssl/bin/openssl version #查看新安装的版本 #移出旧版本 which openssl #查看旧版本openssl命令在哪里 mv /usr/bin/openssl /usr/bin/openssl.old #将旧版本openssl移除 ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl #新版本制作软链接 openssl version 最后查看版本,更新完毕 在确保Openssl版本为1.0.1后,可以升级Openssh了,升级方法如下。 三、升级openssh 1、解压,安装依赖包 ssh -V #查看ssh版本 #解压: tar -zxvf openssh-8.6p1.tar #安装依赖包 yum -y install openssl-devel pam-devel 2、移除旧版本 #可以提前备份一下: cp /usr/sbin/sshd /usr/sbin/sshd.bak cp /etc/ssh/ssh_config /etc/ssh/ssh_config.bak cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak cp /etc/ssh/moduli /etc/ssh/moduli.bak cp /etc/pam.d/sshd /etc/pam.d/sshd.bak mv /etc/ssh /etc/ssh.old ### 需要注意,移除之后,不能退出当前终端,若退出就无法ssh连接了,只能通过telnet连了。 3、编译安装 cd openssh-8.6p1/ # 配置安装目录为/usr/local/openssh ./configure --prefix=/usr/local/openssh --sysconfdir=/etc/ssh --with-pam --with-ssl-dir=/usr/local/openssl --with-md5-passwords --mandir=/usr/share/man --with-zlib=/usr/local/zlib --without-hardening 或者 --without-openssl-header-check 报错1: 在安装的过程中如遇到以下错误,请安装:yum -y install openssl-devel 报错2:configure: error: PAM headers not found 请安装 yum -y install pam-devel 我升级的时候只遇到这两个错,如遇到别的错,请自行解决。 然后编译安装 make && make install 4、修改启动脚本 # 拷贝启动脚本 cd openssh-8.6p1/ cp ./contrib/redhat/sshd.init /etc/init.d/sshd # 修改启动脚本 vi /etc/init.d/sshd # 按如下图修改,需要注意,此路径是你安装新版本的openssh路径,根据你的实际情况修改 SSHD=/usr/local/openssh/sbin/sshd ### 注意根据自身情况修改路径 /usr/local/openssh/bin/ssh-keygen –A /sbin/restorecon /etc/ssh/ssh_host_key.pub /sbin/restorecon /etc/ssh/ssh_host_rsa_key.pub /sbin/restorecon /etc/ssh/ssh_host_dsa_key.pub /sbin/restorecon /etc/ssh/ssh_host_ecdsa_key.pub start() { #Create keys if necessary /usr/local/openssl/bin/ssh-keygen -A if [ -x /sbin/restorecon ]; then /sbin/restorecon /etc/ssh/ssh_host_key.pub /sbin/restorecon /etc/ssh/ssh_host_rsa_key.pub /sbin/restorecon /etc/ssh/ssh_host_dsa_key.pub /sbin/restorecon /etc/ssh/ssh_host_ecdsa_key.pub fi 5、修改sshd配置文件/etc/ssh/sshd_config chkconfig --add sshd 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 echo "PermitRootLogin yes" >> /etc/ssh/sshd_config #直接用root登录终端(此处根据自身情况考虑) echo "PasswordAuthentication yes" >> /etc/ssh/sshd_config #是否允许密码验证 echo "PubkeyAuthentication yes" >> /etc/ssh/sshd_config #允许pubKey(id_rsa.pub)登录 echo 'X11Forwarding yes' >> /etc/ssh/sshd_config #设置是否允许X11转发 或者:vi /etc/sshd_config # 在末尾加入账号远程配置, 输入 :wq 保存退出 PermitRootLogin yes PubkeyAuthentication yes PasswordAuthentication yes X11Forwarding yes 6、卸载原有ssh(先安装后卸载,也是怕升级失败,如果有把握,可先卸载) for i in $(rpm -qa |grep openssh);do rpm -e $i --nodeps ;done 提示警告: 将警告中被修改的文件名字再改回来 mv /etc/ssh/sshd_config.rpmsave /etc/ssh/sshd_config mv /etc/ssh/ssh_config.rpmsave /etc/ssh/ssh_config mv /etc/ssh/moduli.rpmsave /etc/ssh/moduli 7、替换相关命令,并重启sshd服务 cp -arp /usr/local/openssh/bin/* /usr/bin/ #替换相关命令 service sshd restart #重启sshd服务 chkconfig --add sshd chkconfig sshd on # 验证升级、让其他人测试连接后再退出 ssh -V 和 telnet 验证 8、设置开机自启 chkconfig --add sshd chkconfig --level 2345 sshd on chkconfig --list 升级完成后,为了安全起见,建议关闭telnet #关闭服务(此处根据自身情况考虑) systemctl stop telnet.socket systemctl stop xinetd #关闭服务开机自启(此处根据自身情况考虑) systemctl disable xinetd.service systemctl disable telnet.socket


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3