问题描述
OpenSSH(OpenBSD Secure Shell)是OpenBSD计划组所维护的一套用于安全访问远程计算机的连接工具。该工具是SSH协议的开源实现,支持对所有的传输进行加密,可有效阻止窃听、连接劫持以及其他网络级的攻击。
OpenSSH 7.7及之前版本中存在用户枚举漏洞,该漏洞源于程序会对有效的和无效的用户身份验证请求发出不同的响应。攻击者可通过发送特制的请求利用该漏洞枚举用户名称。
环境
红帽企业版7.5,安装选项 基础GUI界面,没有安装开发包
修复过程
下载openssh 最新版8.8
下载地址
http://www.openssh.com/portable.html
安装开发包
开发包列表
cpp-4.8.5-28.el7.x86_64.rpm
gcc-4.8.5-28.el7.x86_64.rpm
gcc-c++-4.8.5-28.el7.x86_64.rpm
glibc-devel-2.17-222.el7.x86_64.rpm
glibc-headers-2.17-222.el7.x86_64.rpm
kernel-headers-3.10.0-862.el7.x86_64.rpm
keyutils-libs-devel-1.5.8-3.el7.x86_64.rpm
krb5-devel-1.15.1-18.el7.x86_64.rpm
libcom_err-devel-1.42.9-11.el7.x86_64.rpm
libkadm5-1.15.1-18.el7.x86_64.rpm
libmpc-1.0.1-3.el7.x86_64.rpm
libselinux-devel-2.5-12.el7.x86_64.rpm
libsepol-devel-2.5-8.1.el7.x86_64.rpm
libstdc++-devel-4.8.5-28.el7.x86_64.rpm
libverto-devel-0.2.5-4.el7.x86_64.rpm
openssl-devel-1.0.2k-12.el7.x86_64.rpm
pam-devel-1.1.8-22.el7.x86_64.rpm
pcre-devel-8.32-17.el7.x86_64.rpm
zlib-devel-1.2.7-17.el7.x86_64.rpm
systemd-devel-219-57.el7.x86_64.rpm
修改源码
默认不修改,安装后执行重启命令会卡住出现僵死,会不断的重启sshd进程,因为sshd没有向systemd发送启动完成的信号,systemd不断的重复杀进程,启动进程,表现就是远程连接一会能连一会不能连
解压源码包
tar zxvf openssh-8.8p1.tar.gz
cd openssh-8.8p1
修改sshd.c 文件
在sshd文件找到 server_accept_loop 函数调用的地方,在上方添加如下代码
sd_notify(0, "READY=1");
在include 部分增加 include
#include <systemd/sd-daemon.h>
修改Makefile
修改LIBS 变量为
LIBS=-lcrypto -ldl -lutil -lz -lcrypt -lresolv -lsystemd
编译安装
删除原有配置
rm -fr /etc/ssh/*
编译
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam
make && make install
修改配置
vi /etc/ssh/sshd_config
PermitRootLogin yes
PasswordAuthentication yes
UsePAM yes
重启服务
systemctl restart sshd
验证
客户端
ssh -V
打印版本号为8.8
服务端
windows telnet 到22端口,banner显示ssh版本为8.8
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!