linux centeros6\7漏洞 openssh 离线修复

linuxcenteros6\7漏洞   openssh  离线修复

安全漏扫发现好多关于openssh漏洞,因为不是专业漏洞检查人员,漏洞详细解释里边推荐我去一大堆网址里边找下载补丁,全英文也看不懂,谷歌翻译了也跟天书一样,点下载补丁包直接就跳转页面,全都是C语言的,我就一脸懵,你不知道你现在有没有遇见这种问题。

     后来发现这就是因为openssh版本过低出现的漏洞,只要更新openssh就好了,去网上找了好多资料,后来花了一百多进了CSDN这个坑。我开始写博客了,我技术也不是很好,各位大神多多海涵。

     下面进入正题,如果你使用的服务器可以联网,那么你是比较幸运的了,直接可去网上搜一下在线升级openssh的yum命令升级到最新版本就行,openssh官方会对每一个漏洞进行解释,也可以参考官方解释,查一下你发现的漏洞有没有修改

    如果你是用的服务器在某某专网区域,不能连接互联网,请下载此网盘地址中的资源

连接:https://pan.baidu.com/s/1Fnx639niTQ1f5EpyyELvTQ

提取码:p97u

资料中一些yum命令,这些包我已经下载好了,可以直接使用。如果担心版本问题可以使用yum install --downloadonly(只下载)命令自行下载,下载的安装包可能不好找,可以去百度这个命令下载的文件大概所在位置(此命令下载的安装包只有大概路径,随机储存在子文件夹中)

重要!重要!重要!:操作前先查清楚openssh的操作禁忌,建议升级openssh时,必须开启tenlet服务,防止不能远程终端,建议先创建一台同版本的虚拟机测试一下真实效果

把package上传到家目录

以下是操作步骤

注:以下内容包含centeros6和centeros7,请核对后进行再执行命令。

 

 

1.安装telnet服务和客户端

1.1按顺序执行

cd ~/package/telnet

rpm -Uvh xinetd-2.3.15-13.el7.x86_64.rpm

rpm -Uvh telnet-server-0.17-64.el7.x86_64.rpm

rpm -Uvh telnet-0.17-64.el7.x86_64.rpm

1.2启用telnet服务

centeros6:

vi /etc/xinetd.d/telnet

将其中disable字段的yes改为no以启用telnet服务

centos7:

systemctl enable telnet.socket

1.3默认情况下,系统是不允许root用户telnet远程登录的。如果要使用root用户直接登录,需设置如下内容:

echo 'pts/0' >>/etc/securetty

echo 'pts/1' >>/etc/securetty

注释该行

vi /etc/pam.d/remote

#auth required pam_securetty.so

1.4启动并设置开机自启

centos6:

service xinetd start

chkconfig xinetd on

centos7:

systemctl start telnet.socket

1.5测试是否能连接。通过其他linux机器或者Windows cmd窗口,需要安装telnet客户端

telnet ip

补充:输入用户名密码正确的情况下提示Login incorrect

修改/etc/pam.d/remote,注释掉:auth required pam_securetty.so

再重启xinetd

centos6:

service xinetd restart

centos7:

systemctl restart telnet.socket

2.安装ftp服务

2.1.安装vsftp

cd ~/package/vsftp

rpm -Uvh vsftpd-3.0.2-25.el7.x86_64.rpm

rpm -Uvh ftp-0.17-67.el7.x86_64.rpm

报错error: Failed dependencies:libcrypto.so.10()(64bit) is needed by vsftpd-2.2.2-24.el6.x86_64

该服务器上没有安装openssl,先安装openssl-1.0.1e-57.el6.x86_64.rpm,可以先执行步骤3.3安装依赖包

2.2.关闭selinux,先临时关闭,再永久关闭

临时关闭:

setenforce 0

永久关闭:

vi /etc/sysconfig/selinux

SELINUX=enforcing 改为 SELINUX=disabled

2.3.先备份原有vsftpd.conf

mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.old

增加和修改配置

vi /etc/vsftpd/vsftpd.conf

local_root=/home/cent

allow_writeable_chroot=YES

2.4.增加ftp账户

这里设置的账户名为“cent”,密码为“cent”,密码需要输入两遍

useradd cent -s /sbin/nologin

passwd cent

Qwer1234.

2.5.编辑user_list文件,允许cent用户访问FTP

vi /etc/vsftpd/user_list

最后一行添加一个用户cent

2.6.开启vsftpd服务并设置开机自启

centos6:

service vsftpd start

chkconfig vsftpd on

centos7:

systemctl enable vsftpd

systemctl start vsftpd

2.7测试是否能够上传文件

测试工具有xftp,连接时选择ftp方式,端口号21,用户名和密码都是cent

ftp工具filezilla

必须要保证能够上传文件

文件会上传到local_root=/home/cent

 

3.升级openssh

3.1断开当前连接的ssh窗口,使用telnet方式连接服务器,需要验证用户名和密码

telnet ip

3.2停止ssh服务,卸载当前openssh,一定要确保telnet和ftp两个服务跑起来并设置了开机自启以防止服务器突然关机导致连不上机器

centos6:

service sshd stop

rpm -e --nodeps `rpm -qa|grep openssh`

centos7:

systemctl stop sshd

rpm -e --nodeps `rpm -qa|grep openssh`

以前的配置文件,安装完后可以恢复它

warning: /etc/ssh/ssh_config saved as /etc/ssh/ssh_config.rpmsave

warning: /etc/ssh/sshd_config saved as /etc/ssh/sshd_config.rpmsave

3.3安装依赖包,进入文件夹~/package/openssh/dependencies2

cd ~/package/openssh/dependencies2
rpm -Uvh *.rpm --nodeps --force

 

3.4解压

进入文件夹

cd ~/package/openssh

tar -zxf openssh-8.2p1.tar.gz

3.5编译和安装

进入解压的目录

cd openssh-8.2p1

./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-zlib --with-md5-passwords

make && make install

centos7:

报错sshd: no hostkeys available -- exiting.

用这两文件就chmod,没有就生成,百度查一下

chmod 600 /etc/ssh/ssh_host_dsa_key

chmod 600 /etc/ssh/ssh_host_rsa_key

在执行命令make && make install

3.6复制pam文件,复制启动脚本,设置开机自启

cp contrib/redhat/sshd.pam /etc/pam.d/sshd

cp contrib/redhat/sshd.init /etc/init.d/sshd

centos6:

chkconfig sshd on

centos7:

systemctl enable sshd

3.7配置ssh_config

vi /etc/ssh/sshd_config
PermitRootLogin yes #允许root用户通过ssh登陆

PubkeyAuthentication yes #公钥授权

PasswordAuthentication yes #密码授权

3.8验证版本信息

ssh -V

3.9启动ssh服务

centos6:

service sshd start

centos7:

systemctl start sshd

3.10测试ssh服务是否正常

使用xshell尝试连接服务器

再重启ssh服务

service sshd restart

断开连接再重新连接服务器

4.关闭telnet

4.1关闭telnet,关闭开机自启

centos6:

service xinetd stop

chkconfig xinetd off

centos7:

systemctl stop telnet.socket

systemctl disable telnet.socket

4.2删除用户组pts/0和pts/1

vi /etc/securetty

最后两个pts/0和pts/1删除

4.3如果修改了/etc/pam.d/remote

打开注释

vi /etc/pam.d/remote
auth required pam_securetty.so

 

5.关闭ftp并删除用户

5.1打开selinux,如果原来就是关闭的,就不用管它

setenforce 1

vi /etc/sysconfig/selinux
SELINUX=disabled 改为 SELINUX=enforcing

5.2关闭ftp服务,禁止开机自启

centos6:

service vsftpd stop

chkconfig vsftpd off

centos7:

systemctl stop vsftpd

systemctl disable vsftpd

5.3删除用户cent和该用户家目录

userdel -r cent

资源免费,仅供参考,应用到实际情况中可能需要小调整

 

     

你可能感兴趣的:(openssh漏洞,离线修复漏洞)