Linux 7.0 SSH 版本升级实施技术方案 | 资料
【摘要】本文通过项目中的实施总结,对Linux 7.0以上OpenSSH、OpenSSL版本升级过程进行整理,以减少小伙伴SSH版本升级失败进行“避坑“。
【作者】陈勇,一名从事IT行业10多年的老兵,熟悉各类UNIX及Linux系统 (AIX / Solaris / HP-UNIX / Tru64 Unix),曾分别获得IBM CATE、HP CSA、SUN SCSA、VMware VCP、HUAWEI HCNP等多项专业认证。
一、前言
在项目实施、运维过程中,经常会通过漏洞扫描工具检查发现Open SSH、Open SSL存在高危漏洞,如OpenSSL“心脏出血”漏洞,利用该漏洞,黑客可以获取约30%的https开头网址的用户登录账号密码,其中包括购物、网银、社交、门户等类型的知名网站等。
以及OpenSSH漏洞,如“OpenSSH远程代码执行漏洞CVE-2016-10009”, sshd服务可以利用转发的agent-socket文件,欺骗本机的ssh-agent来加载一个恶意的PKCS#11模块,从而可以远程执行代码,黑客利用漏洞实现远程命令执行,严重情况下可能会导致数据泄露。
通过项目中进行实施总结,对Linux 7.0以上OpenSSH、OpenSSL版本升级过程进行整理,以减少小伙伴SSH版本升级失败进行“避坑”。
二、实施准备
1.升级规划
由于主机运行业务系统的重要性,升级前检查主机Linux操作系统版本,搭建测试环境进行验证,不可盲目操作,以防导致业务系统不可访问。同时在升级时,要考虑回退方案,开启Telnet服务,确保主机可管理。
2.环境检查
检查Linux版本信息
检查Telnet服务是否安装,如没有安装,需准备操作系统ISO介质文件进行安装。
3.介质准备
Open SSH官方网站安装包下载:
登录http://www.openssh.com/portable.html,下载最新版open ssh安装包。
Open SSL官方网站安装包下载:
本文以openssh-7.9p1、openssl-1.0.2n版本升级为例进行介绍。
ssh 登录主机,拷贝Linux 7.0 ISO、openssh-7.9p1.tar.gz、openssl-1.0.2n.tar.gz安装介质到需要安装的机器。
cd /tmp
4.搭建本地yum源
1)、mount ISO镜像文件
mkdir /mac
mount -o loop /tmp/rhel-server-7.0-x86_64-dvd.iso /mac
2)、配置yum文件
cd /etc/yum.repos.d/
vi base.repo
内容如下:
[base]
name=local yum
baseurl=file:///mac
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
3)、检查yum 配置是否正确
yum list
5.安装telnet服务
安装Telnet服务,防止ssh更新时网络断开无法连接:
1)、 安装telnet-server
yum -y install telnet-server.x86_64
2)、 安装xinetd
yum install xinetd.x86_64
3)、关闭防火墙
systemctl status firewalld.service
systemctl stop firewalld.service
systemctl disable telnet.socket
4)、启动服务
systemctl start telnet.socket /启动telnet服务
systemctl status telnet.socket /查看服务状态
#ss -tnlp | grep 23 /查看侦听端口
5)、安装完成后,将xinetd服务加入开机自启动:
systemctl enable xinetd.service
将telnet服务加入开机自启动:
systemctl enable telnet.socket
6)、Telnet 远程登录测试
三、实施步骤
1、部署配置Open SSL安装包
1)安装openssl 依赖包
yum install perl gcc
2)解压openssl包
cd /tmp
tar -zxvf openssl-1.0.2n.tar.gz
3)安装openssl
cd openssl-1.0.2n
./config shared
make
make install
4)配置SSL
mv -f /usr/bin/openssl /usr/bin/openssl.OFF
mv -f /usr/include/openssl /usr/include/openssl.OFF
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 -v
/sbin/ldconfig
openssl version -a >>/tmp/ssh.log
5)验证ssl 最新版本OpenSSL 1.0.2n
openssl
version
2、部署配置Open SSH安装包
1)解压介质,安装依赖包
cd /tmp
tar -zxvf openssh-7.9p1.tar.gz
yum install -y pam* zlib*
2)配置openssh
cd openssh-7.9p1
./configure -prefix=/usr -sysconfdir=/etc/ssh -with-ssl-dir=/usr/local/ssl -with-md5-passwords -mandir=/usr/share/man -with-pam=enable
3)删除原ssh信息
rm -rf /etc/ssh/*
4)编译文件
make
make install
5)SSH参数配置
ssh -V >>/tmp/ssh.log
rm -rf /etc/init.d/sshd
cp -p /tmp/openssh-7.9p1/contrib/redhat/sshd.init /etc/init.d/sshd
cp -p /tmp/openssh-7.9p1/contrib/redhat/sshd.pam /etc/pam.d/sshd.pam
chmod +x /etc/init.d/sshd
chkconfig --add sshd
systemctl enable sshd.service
echo 'X11Forwarding yes' >> /etc/ssh/sshd_config
sed -i "s/#PermitRootLogin prohibit-password/PermitRootLogin yes/g" /etc/ssh/sshd_config
sed -i "s/#UsePAM no/UsePAM yes/g" /etc/ssh/sshd_config
service sshd restart
sed -ie '/ulimit -n 20480/d' /etc/profile
sed -ie '/ulimit -n 20480/d' /etc/rc.local
sed -ie '/service sshd restart/d' /etc/rc.local
6)重新登录,确认升级后版本, 升级完成,也可以重启机器测试。
如有任何问题,可点击文末阅读原文,到社区原文下评论交流 觉得本文有用,请转发或点击“在看”,让更多同行看到
资料/文章推荐:
Linux系统巡检报告
http://www.talkwithtrend.com/Document/detail/tid/152241
Linux最强秘籍
http://www.talkwithtrend.com/Document/detail/tid/152235
欢迎点击阅读原文关注社区 “系统运维”技术主题 ,将会不断更新优质资料、文章,您也可以前往提出疑难问题,与同行切磋交流。地址:http://www.talkwithtrend.com/Topic/199
下载 twt 社区客户端 APP
与更多同行在一起
高手随时解答你的疑难问题
轻松订阅各领域技术主题
浏览下载最新文章资料
长按识别二维码即可下载
或到应用商店搜索“twt”
*本公众号所发布内容仅代表作者观点,不代表社区立场