问题描述

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");

upload successful

在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



安全      openssh

本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!