转一篇关于open ssh漏洞修复的文章

客户及上级主部门经常会使用到某绿的扫描器对服务器进行扫描,经常出现open ssl版本漏洞,解决方案接只能升级,今天参照csdn博客上的某位大佬文章对客户服务器进行了加固,升级完成之后扫描漏洞消失。该文章仅做记录

重装openSSH更高级的版本解决安全漏洞问题,会导致我们常用的链接会断掉,有两种解决方案,一种是多开几个ssh的链接,因为openSSH断开后就不会新建链接[没测试过];另一个方案就是安装telnet替换,因为telnet的安全性问题,升级SSH成功后,最好将telnet服务关掉。
安装telnet服务
1、安装未安装的软件
安装telnet-server、telnet
查询是否安装
rpm -qa | grep telnet-server
rpm -qa | grep telnet
telnet-server.x86_64 1:0.17-64.el7
telnet.x86_64 1:0.17-64.el7
rpm -qa | grep xinetd
xinetd.x86_64 2:2.3.15-13.el7
1.1 在线安装
yum -y install xinetd
yum -y install telnet
yum -y install telnet-server

1.2 下载离线包
yum -y install --downloadonly --downloaddir=/home nfs-utils
这个指令,如果您的系统已经下载了相关安装包,那么这些rpm包是无法下载保存的
yum install --downloadonly --installroot=/tmp/createrepo --releasever=/ --downloaddir=/root/createrepo-rpms createrepo
这个指令可以解决上个指令的问题
两个指令均会下载相应的依赖包
downloadonly指出本次下载仅仅下载
downloaddir指定了保存的目录
Installroot 设置安装root

安装 rpm -ivh telnet.rpm
2、修改telnet文件
cd /etc/xinetd.d

Xinetd 托管服务。又名:超级守护进程,可以把一些小服务放到xinetd里进行托管。拖管后的好处就是可以使用xinetd强大的参数来控制这些服务,并且增强安全性。
修改telnet文件为:

default: yes

description: The telnet server servestelnet sessions; it uses \

unencrypted username/password pairs for authentication.

service telnet
{
flags = REUSE
socket_type = stream
wait = no
user = root
server =/usr/sbin/in.telnetd
log_on_failure += USERID
disable = no
}

3、启动telnet和依赖的xinetd服务
systemctl restart xinetd.service
查看启动ps -ef | grep xinetd 查看进程

chkconfig --list
[莫名其妙的就不能识别了!]
netstat -tunlp

4、添加23端口或关闭防火墙
关闭防火墙
systemctl stop firewalld.service

添加
firewall-cmd --zone=public --add-port=23/tcp --permanent (–permanent永久生效,没有此参数重启后失效)
重新载入
firewall-cmd --reload
查看
firewall-cmd --zone= public --query-port=23/tcp
删除
firewall-cmd --zone= public --remove-port=23/tcp --permanent

5、设置服务开机启动
chkconfig --level 35 xinetd on
systemctl enable xinetd.service

Error:telnet下root登录,密码正确,总提示:Login incorrect

解决1:注释/etc/pam.d/remote的第一行,
即:auth required pam_securetty.so
https://www.cnblogs.com/ilinuxer/p/5087447.html 介绍了pam

                                                                                   升级openSSH

1、查询当前的ssh版本
ssh -V
OpenSSH_6.6.1p1, OpenSSL 1.0.1e-fips 11 Feb 2013

rpm -qa | grep openssh
openssh-6.6.1p1-31.el7.x86_64
openssh-server-6.6.1p1-31.el7.x86_64
openssh-clients-6.6.1p1-31.el7.x86_64

2、卸载当前的ssh
2.1、停止ssh服务
/bin/systemctl stop sshd.service

2.2、卸载openSSh
【yum remove openssh -y 】 可选 没测试

rpm -qa |grep openssh
openssh-6.6.1p1-31.el7.x86_64
openssh-server-6.6.1p1-31.el7.x86_64
openssh-clients-6.6.1p1-31.el7.x86_64

[root@localhost /]# rpm -e --nodeps openssh-server
[root@localhost /]# rpm -e --nodeps openssh-clients
[root@localhost /]# rpm -e --nodeps openssh

rpm -e --nodeps rpm -qa |grep openssh [–nodeps 强制卸载 不考虑其他软件的依赖关系]

2.3、备份原来的ssh配置文件
mv /etc/ssh /etc/ssh_bak

3、编译安装openssh
3.1 tar -zxvf openssh-7.9p1.tar.gz
3.2安装依赖包:
yum install gcc openssl-devel zlib-devel

离线安装:
yum install --downloadonly --installroot=/tmp/createrepo --releasever=/ --downloaddir=/root/openssh gcc openssl-devel zlib-devel

rpm -Uvh *.rpm --nodeps --force
[root@oracle openssh2]# rpm -Uvh *.rpm --nodeps –force
安装时,这两个包没装成功,不影响,注:centos包装了后会影响版本号
centos-release-7-6.1810.2.el7.centos.x86_64
filesystem-3.2-21.el7.x86_64

3.3 配置,安装
(1)./configure --sysconfdir=/etc/ssh/ --with-md5-passwords
缺省安装路径为:/usr/local/bin/ssh
make && make install

(2)./configure --prefix=/usr/local/openssh --sysconfdir=/etc/ssh --with-pam --with-zlib --with-md5-passwords --without-hardening
–prefix=/usr/local/openssh 安装路径
–sysconfdir=/etc/ssh 配置文件路径
–with-pam 认证模块 在/etc/pam.d/目录下管理,启用PAM,需要有一个控制文件,按照提示的路径找到redhat/sshd.pam,并复制到/etc/pam.d/sshd,在/etc/ssh/sshd_config中打开UsePAM yes --with-md5-passwords 使用md5加密 --without-hardening 加强

3.4 拷贝ssh服务文件
cp ./contrib/redhat/sshd.init /etc/init.d/sshd
chmod +x /etc/init.d/sshd

3.5修改SSHD服务文件
vim /etc/init.d/sshd
修改以下内容
SSHD=/usr/sbin/sshd 为 SSHD=i
/usr/sbin/ssh-keygen -A 为 /usr/local/bin/ssh-keygen -A
保存退出

在$SSHD $OPTIONS && success || failure这句话前面加一句:
OPTIONS="-f /etc/ssh/sshd_config"

3.6 配置开机启动
chkconfig --add sshd
chkconfig sshd on

/etc/ssh openSSH配置文件路劲
/etc/init.d/
[独立运行的守护进程由init脚本负责管理,所有独立运行的守护进程的脚本在/etc/rc.d/init.d/目录下]

ERROR:Ssh服务器拒绝了密码

————————————————
版权声明:本文为CSDN博主「wuxianfeng1987」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wuxianfeng1987/article/details/88101116

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值