升级SSH服务处理安全扫描漏洞方案
一、已知:
1.1#绿盟扫描漏洞如下
1.2#检查实际系统环境
基于操作系统:CentOS6.5标准化安装
openssl版本:# openssl version OpenSSL 1.0.1e-fips 11 Feb 2013
openssH版本:# openssh version -bash: openssh: command not found
1.3#确认升级版本
OpenSSL 1.0.1e 升级到 openssl-1.0.2s
Openssh 升级到 openssh-8.0p1
辅助命令:netstat -antp | grep
卸载ssh rpm -e `rpm -qa|grep openssh` --nodeps
是否启动22端口
1.4 #挂载本地yum源
mount /dev/cdrom /mnt
二、安装Telnet服务并配置
2.1#安装telnet所需软件包
yum -y install telnet telnet-server xinetd
2.2#装好telnet服务之后,默认是不开启服务的,下面我们需要修改文件来开启服务。vim /etc/xinetd.d/telnet 修改 disable = yes 为 disable = no
2.3#备份securetty
cp /etc/securetty /etc/securetty.bak
或者 sed -i 's/\(.*\)disable\(.*\)/\ \ \ \ \ \ \ \ disable\ \ \ \ \ \ =\ no/g' /etc/xinetd.d/telnet 2.4#设置root用户远程登录telnet服务。
默认情况下,系统是不允许root用户telnet远程登录的。如果要使用root用户直接登录,需设置如下内容。更多的远程终端允许直接登录作为root 。
echo "pts/0" >>/etc/securetty
echo "pts/1" >>/etc/securetty
echo "pts/2" >>/etc/securetty
echo "pts/3" >>/etc/securetty
echo "pts/4" >>/etc/securetty
echo "pts/5" >>/etc/securetty
2.5#设置telnet服务启动与自启动
service xinetd start
chkconfig xinetd on
三、则需要先升级openssl
3.1#安装依赖包
yum install -y gcc*
yum install -y glibc make autoconf openssl openssl-devel pcre-devel pam-devel
yum install -y pam* zlib*
3.2#下载源码包
mkdir /usr/openssh_openssl/
cd /usr/openssh_openssl/ wget
https://www.openssl.org/source/openssl-1.0.2s.tar.gz
tar xzvf openssl-1.0.2s.tar.gz
cd openssl-1.0.2s/
3.3#对openssl命令进行备份
mv /usr/bin/openssl /usr/bin/openssl_bak
mv /usr/include/openssl /usr/include/openssl_bak
3.4#编译安装
cd /usr/openssh_openssl/openssl-1.0.2s/
./config shared && make && make install
3.5#将openssl命令软连接到/usr/bin/,注意,不同版本的openssl,命令路径可能不一样
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/ssl/include/openssl /usr/include/openssl
echo "/usr/local/ssl/lib" >> /etc/ld.so.conf
/sbin/ldconfig
3.6#查看升级后的版本信息
openssl version
四、安装openssh
4.1#下载源码包
cd /usr/openssh_openssl/
wget http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.0p1.tar.gz
tar xzvf openssh-8.0p1.tar.gz
cd /usr/openssh_openssl/openssh-8.0p1
4.2#可能需要的权限
chown -R root.root /usr/openssh_openssl/openssh-8.0p1
4.3#备份ssh
mv /etc/ssh/ /etc/ssh_bak/
4.4#编译安装
./configure --prefix=/usr/ --sysconfdir=/etc/ssh
--with-openssl-includes=/usr/include/openssl --with-ssl-dir=/usr/local/ssl
--with-zlib --with-md5-passwords --with-pam && make && make install
4.5#修改配置文件,登录权限,安装之前查看配置文件,设置为与之前版本一样
sed -i 's/#PermitRootLogin prohibit-password/#PermitRootLogin yes/g' /etc/ssh/sshd_config
sed -i 's/#UseDNS no/UseDNS no/g' /etc/ssh/sshd_config
4.6#启动相关配置
cp -a contrib/redhat/sshd.init /etc/init.d/sshd
cp -a contrib/redhat/sshd.pam /etc/pam.d/sshd.pam
chmod +x /etc/init.d/sshd
chkconfig --add sshd
/usr/lib/systemd/system/sshd.service /usr/openssh_openssl/
mv /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/sshd.service_bak
chkconfig sshd on
/etc/init.d/sshd restart
netstat -lntp
/etc/init.d/sshd start
4.7#查看openssh版本
ssh -V
五、测试
5.1# Root登录出现root用户ssh访问 密码错误问题
Root用户无法访问解决问题
echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config
5.2#其他辅助创建用户测试
5.2.1、用户列表文件:/etc/passwd/
添加用户: useradd -m 用户名
设置密码: passwd 用户名
删除用户: userdel -r 用户名
5.2.2、用户组列表文件:/etc/group
5.2.3、查看系统中有哪些用户:
cut -d : -f 1 /etc/passwd
5.2.4、查看可以登录系统的用户:
cat /etc/passwd | grep -v /sbin/nologin | cut -d : -f 1
六、卸载Telnet服务、
mv /etc/securetty.bak /etc/securetty
service xinetd stop
chkconfig xinetd off
yum remove telnet-server xinetd