openSSH升级解决安全漏洞问题

       重装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

openSSH升级解决安全漏洞问题_第1张图片

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
 openSSH升级解决安全漏洞问题_第2张图片
解决1:注释/etc/pam.d/remote的第一行,
即:auth required pam_securetty.so
https://www.cnblogs.com/ilinuxer/p/5087447.html  介绍了pam

openSSH升级解决安全漏洞问题_第3张图片

                                                                                       升级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服务器拒绝了密码
 openSSH升级解决安全漏洞问题_第4张图片

openSSH升级解决安全漏洞问题_第5张图片

你可能感兴趣的:(Linux)