Openssh升级漏洞修复

0.前言
公司采用三方漏洞扫描时发现大量openssh漏洞,最终修复漏洞方案为将openssh升级到官方最新版本。


image.png

1. 环境

操作系统: Centos7.2
网络状况: 可以访问外网
Openssh版本: OpenSSH_6.6.1p1, OpenSSL 1.0.1e-fips 11 Feb 2013

2. 安装telnet

2.1 安装目的及意义

    为了防止在openssh更新过程中出现问题,导致无法远程远程登陆服务器,因此需要安装telnet服务进行预防。无论openssh是否更新成功,都还可以通过telnet远程连接服务器。

2.2. 安装步骤

(1) 查看当前是否安装了telnet

rpm -qa | grep telnet
rpm -qa | grep xinetd

(2) 安装

yum -y install xinetd
yum -y install telnet
yum -y install telnet-server

(3) 配置telnet

centos6修改配置文件:

修改配置文件/etc/xinetd.d/telnet 将里面的”disable= yes”改成” disable=no” ,修改后结果


openssh.png

centos7修改配置文件

在/etc/securetty文件末尾增加一些pts终端,直接加在末尾就可以了

vim /etc/securetty
pts/0
pts/1
pts/2
pts/3

(4) 开机自启telnet(重要)

centos6

chkconfig --add xinetd
chkconfig --add telnet
chkconfig xinetd on 
chkconfig telnet on

centos7

systemctl enable xinetd
systemctl enable telnet.socket
systemctl start xinetd
systemctl start telnet.socket

(5)火墙开启23端口或者直接关闭火墙

防火墙开启23号端口,当然也可以直接关闭防火墙 ,这里选择关闭防火墙

开启23号端口
iptables -I INPUT -p tcp --dport 23 -jACCEPT 
iptables -I INPUT -p udp --dport 23 -jACCEPT 

保存 
service iptables save

重启防火墙 
service iptables restart 

关闭防火墙!
#centos6
service iptables stop

centos7
systemctl stop firewalld.service

查看防火墙状态
centos6
service iptables status
centos7
firewall-cmd --state

(6)测试telnet

telnet ip
或直接用远程连接工具选择telnet协议以及23号端口连接

3. 备份现有openssh

3.1 备份的目的及意义

在升级过程中出现问题后可以最快将系统恢复到更新之前的正常状态,将对生产的影响降低到最小。

3.2 备份的步骤

(1)查看当前openssh的版本

ssh -V

(2)备份前准备

设置开机自启动

centos6
chkconfig --add sshd
chkconfig sshd on
centos7
systemctl enable sshd
查看SElinux是否为强制状态,如果是则修改为非强制状态
获取SElinux状态:
getenforce
如果结果为enforcing,则进行修改
setenforce 0

或修改配置文件,永久生效。

配置文件位置:/etc/sysconfig/selinux 以及 /etc/selinux/config

内容修改为
SELINUX=permissive

(3)备份

先创建备份目录

mkdir /back_up

将还原脚本restore.sh上传到/back_up中

cd /back_up
vim restore.sh
#!/bin/bash
tar -xzpvf /back_up/backup.tgz -C /;
restorecon -Rv /;
reboot;

执行打包备份命令

tar -czpvf /back_up/backup.tgz /etc /usr 2>>/back_up/tar.errors.log 
#可能会有点久

(4)安装依赖包

yum install  -y gcc gcc-c++ glibc make autoconf openssl openssl-devel pcre-devel  pam-devel
yum install  -y pam* zlib*
  1. 安装Openssl
    4.1 软件下载地址
    https://www.openssl.org/source/

4.2 换成telnet登录服务器
其换成telnet登录服务器,更新过程ssh连接会断,导致无法连接

4.3 安装Openssl步骤
(1)替换会被备份的文件

mv /usr/bin/openssl /usr/bin/openssl_bak
mv /usr/include/openssl /usr/include/openssl_bak

(2)解压软件包并且进入目录进行编译

mkdir -p /server/tools
cd /server/tools
tar xf openssl-1.1.1i.tar.gz
cd openssl-1.1.1i
mkdir /usr/local/openssl
./config --prefix=/usr/local/openssl
make
make install

(3)创建软连接

ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/include/openssl /usr/include/openssl

(4)验证文件

cd /usr/local/openssl
ldd /usr/local/openssl/bin/openssl

(5)修改配置文件

vim /etc/ld.so.conf
在最后追加一行:
/usr/local/openssl/lib 
然后执行:
ldconfig /etc/ld.so.conf
查看是否成功:
openssl version
  1. 安装ssh
    5.1 下载地址
    https://openbsd.hk/pub/OpenBSD/OpenSSH/portable/

5.2 安装步骤
(1)解压压缩包

tar xf openssh-8.4p1.tar.gz

(2)修改目录权限

chown -R root.root openssh-8.4p1

(3)备份会替换的文件

mv /etc/ssh /etc/ssh_back

(4)执行编译安装

cd openssh-8.4p1/
./configure --prefix=/usr/ --sysconfdir=/etc/ssh  --with-openssl-includes=/usr/local/openssl/include --with-ssl-dir=/usr/local/openssl   --with-zlib   --with-md5-passwords   --with-pam  && make && make install
#执行完成后,查看是否编译安装成功
 echo $?
 #如果输出0表示没有问题

(5)修改配置文件

vim /etc/ssh/sshd_config
在配置文件中添加:PermitRootLogin yes(限定root用户通过ssh的登录方式,允许) 和 UseDNS no(ip反解,关闭),自己看情况是否需要这样做

(6)文件替换

cp -a /server/tools/openssh-8.4p1/contrib/redhat/sshd.init /etc/init.d/sshd
cp -a /server/tools/openssh-8.4p1/contrib/redhat/sshd.pam /etc/pam.d/sshd.pam
chmod +x /etc/init.d/sshd

(7)添加开机自启动

#centos6
chkconfig --add sshd
chkconfig sshd on 

#centos7
systemctl enable sshd
#centos7还得多做一步,把原先的systemd管理的sshd文件删除或者移走或者删除,不移走的话影响我们重启sshd服务
mv  /usr/lib/systemd/system/sshd.service  /back_up/

(8)重启ssh

#centos6
service sshd restart
#centos7
systemctl daemon-reload
systemctl restart sshd.service
  1. 失败回滚
    如果失败了,那么就将系统还原。

脚本添加运行权限,然后运行

chmod +x /back_up/restore.sh
nohup /back_up/restore.sh &

注意:在运行这个脚本的时候备份文件必须要是/back_up/backup.tgz,如果备份的时候叫其他名称,请自行修改脚本。还有脚本不能运行为前台且跟终端相关进程,因为经测试发现在还原的时候ip会被冲掉。所以远程连接会断掉

最后需要注意的是执行脚本会重启机器

  1. 卸载telnet
    telnet只可以作为临时远程连接方案,因此在opnessh升级之后,为了保证系统的安全,需要删除telnet服务

查看版本

rpm -qa | grep telnet

删除安装包

rpm -e telnet-0.17-66.el7.x86_64
rpm -e telnet-server-0.17-66.el7.x86_64
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
禁止转载,如需转载请通过简信或评论联系作者。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,185评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,652评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,524评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,339评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,387评论 6 391
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,287评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,130评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,985评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,420评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,617评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,779评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,477评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,088评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,716评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,857评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,876评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,700评论 2 354

推荐阅读更多精彩内容