近期对机房服务器做了一次安全漏洞扫描,漏扫结果显示服务器的OpenSSH版本太低,存在漏洞隐患,安全部门建议升级到最新版本。特别需要注意的是:如果是通过ssh远程连接服务器后进行的版本升级操作,如果升级失败,则ssh便无法远程登录。为了防止此现象的发生,建议先安装部署telnet服务。
漏洞描述:
OpenSSH(OpenBSD Secure Shell)是OpenBSD计划组所维护的一套用于安全访问远程计算机的连接工具。该工具是SSH协议的开源实现,支持对所有的传输进行加密,可有效阻止窃听、连接劫持以及其他网络级的攻击。
OpenSSH 6.9及之前版本的sshd中的auth2-chall.c文件中的‘kbdint_next_device’函数存在安全漏洞,该漏洞源于程序没有正确限制处理单链接中的keyboard-interactive设备。远程攻击者可借助ssh -oKbdInteractiveDevices选项中较长且重复的列表利用该漏洞实施暴力破解攻击,或造成拒绝服务(CPU消耗)。
实验环境:
#查看selinux的状态,必须为关闭状态
[root@localhost ~]# getenforce
Disabled
#查看防火墙的状态,必须为关闭状态
[root@localhost ~]# service iptables status
iptables: Firewall is not running.
#查看操作系统版本
[root@localhost ~]# cat /etc/redhat-release
CentOS release 6.10 (Final)
#查看openssh版本
[root@localhost ~]# ssh -V
OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013
操作过程:
1.数据备份
[root@localhost ~]# cp -rf /etc/ssh/ /etc/ssh.bak
2.安装部署telnet服务
(1).安装telnet
[root@localhost ~]# yum install -y xinetd
[root@localhost ~]# yum install -y telnet
[root@localhost ~]# yum install -y telnet-server
(2).允许root用telnet登陆
默认情况下,linux不允许root用户以telnet方式登录linux主机
方法1:
#增加pts配置;如果登录用户较多,需要更多的pts/*
[root@localhost ~]# vim /etc/securetty
###################
在末尾添加:
pts/0
pts/1
方法2:
#验证规则设置在/etc/security文件中,该文件定义root用户只能在tty1-tty6的终端上记录,删除该文件或者将其改名即可避开验证规则实现root用户远程登录。
[root@localhost ~]# rm -rf /etc/securetty
(3).启动telnet服务
[root@localhost ~]# vim /etc/xinetd.d/telnet
###################
disable = no #开启telnet服务功能,否则telnet启动后,23端口起不来
#开启xinetd
[root@localhost ~]# service xinetd start
Starting xinetd: [ OK ]
#查看端口
[root@localhost ~]# netstat -antp|grep 23
tcp 0 0 :::23 :::* LISTEN 6133/xinetd
#设定开机自启
[root@localhost ~]# chkconfig xinetd on
测试:
[root@localhost ~]# telnet 172.16.3.1
小贴士:
一般不建议直接用root用户远程通过telnet登陆系统,因为telnet在数据传输过程采用明文方式,如果数据包被人截获,将会很容易获取root用户的登陆口令;建议以普通用户通过telnet远程登陆,然后利用su切换到root,这样相对比较安全。如果非要用root用户远程连接,建议采用SSH.
3.升级openssh
安装包: openssh-8.0p1.tar.gz
(1).查看openssh的版本信息
[root@localhost ~]# ssh -V
OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013
(2).卸载旧版本openssh
[root@localhost ~]# rpm -aq openssh
openssh-5.3p1-123.el6_9.x86_64
[root@localhost ~]# rpm -e `rpm -aq openssh` --nodeps
(3).安装新版本openssh
1.在官网上下载8.0版本的openssh 点击此处即可下载
[root@localhost ~]# ls
openssh-8.0p1.tar.gz
2.解压
[root@localhost ~]# tar zxf openssh-8.0p1.tar.gz
[root@localhost ~]# ls
openssh-8.0p1 openssh-8.0p1.tar.gz
3.configure配置
#安装依赖包
[root@localhost ~]# cd openssh-8.0p1
[root@localhost openssh-8.0p1]# yum install -y gcc zlib-devel openssl-devel
#configure配置
[root@localhost openssh-8.0p1]# ./configure --prefix=/usr --sysconfdir=/etc/ssh
4.编译与安装
[root@localhost openssh-8.0p1]# make && make install
(4).更改配置文件
[root@localhost ~]# vim /etc/ssh/sshd_config
###################
42 PermitRootLogin yes
48 PubkeyAuthentication yes
66 PasswordAuthentication yes
(5).开启sshd服务
#开启sshd服务
[root@localhost ~]# service sshd start
#设定开机自启
[root@localhost ~]# chkconfig sshd on
测试:
[root@localhost ~]# ssh -V
OpenSSH_8.0p1, OpenSSL 1.0.1e-fips 11 Feb 2013