OpenSSH是一款开源的安全远程控制工具,也是Linux系统中最常用的服务之一,近年来频繁爆出高危漏洞,深受各大企业关注。掌握升级OpenSSH或许是每位运维人员必经的成长阶段,今天给大家分享一下从系统默认OpenSSH
5.3p1升级至最新版本OpenSSH 7.6p1的方法,希望能帮助刚入门的Linux运维朋友们。https://matt.ucc.asn.au/dropbear/dropbear.html
实验环境 |
实验平台:VMware虚拟机
操作系统:CentOS 6.5
旧版OpenSSH:5.3p1
旧版OpenSSL:1.0.1e
新版OpenSSH:7.6p1
新版OpenSSL:1.0.2n
Dropbear:2017.75
服务端篇 |
第一步 准备工作
禁用SElinux
- [root@Wanghualang ~]# setenforce 0
- [root@Wanghualang ~]# sed -ri ‘s#^(SELINUX=).*#\1disabled#g’ /etc/selinux/config
禁用防火墙
- [root@Wanghualang ~]# service iptables stop
- [root@Wanghualang ~]# service ip6tables stop
- [root@Wanghualang ~]# chkconfig iptables off
- [root@Wanghualang ~]# chkconfig ip6tables off
安装常用软件
- [root@Wanghualang ~]# yum -y install wget vim
第二步 安装远程工具
建议先临时使用其他远程工具,以防升级Openssh失败导致无法远程服务器。一般情况下,可以临时启动Telnet,若企业严禁使用Telnet,则可以Dropbear替代,两种远程工具二选一即可。
安装Telnet
- [root@Wanghualang ~]# yum -y install telnet-server
设置允许root用户登录
- [root@Wanghualang ~]# mv /etc/securetty /etc/securetty.bak
修改配置文件,把默认的disable=yes,修改为disable=no
- [root@Wanghualang ~]# vim /etc/xinetd.d/telnet
启动Telnet
- [root@Wanghualang ~]# service xinetd start
安装Dropbear
- [root@Wanghualang ~]# yum -y install gcc zlib-devel
- [root@Wanghualang ~]# cd /usr/local/src/
- [root@Wanghualang src]# wget –no-check-certificate https://dropbear.nl/mirror/dropbear-2017.75.tar.bz2
- [root@Wanghualang src]# tar xjf dropbear-2017.75.tar.bz2
- [root@Wanghualang src]# cd dropbear-2017.75
- [root@Wanghualang dropbear-2017.75]# ./configure
- [root@Wanghualang dropbear-2017.75]# make
- [root@Wanghualang dropbear-2017.75]# make install
生成证书
- [root@Wanghualang ~]# mkdir /etc/dropbear
- [root@Wanghualang ~]# /usr/local/bin/dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key
- [root@Wanghualang ~]# /usr/local/bin/dropbearkey -t rsa -s 4096 -f /etc/dropbear/dropbear_rsa_host_key
启动Dropbear,监听16888端口,使用Telnet或者Dropbear远程登录到服务器后,接下来正式开始升级Openssh。
- [root@Wanghualang ~]# /usr/local/sbin/dropbear -p 16888
第三步 备份旧程序
备份Openssh、库文件
- [root@Wanghualang ~]# service sshd stop
- [root@Wanghualang ~]# rpm -ql `rpm -qa |egrep openss[hl]` > Wanghualang.txt
- [root@Wanghualang ~]# tar czf OpensshBak.tar.gz -T Wanghualang.txt
- [root@Wanghualang ~]# tar czf LibBak.tar.gz /lib /lib64
第四步 卸载旧程序
在卸载OpenSSL后,Yum、Wget等等命令将无法正常使用,所以卸载之前,建议把相关开发包、源码包提前准备好。
- [root@Wanghualang ~]# yum -y install gcc zlib-devel pam-devel
- [root@Wanghualang ~]# cd /usr/local/src/
- [root@Wanghualang src]# wget –no-check-certificate https://openbsd.hk/pub/OpenBSD/OpenSSH/portable/openssh-7.6p1.tar.gz
- [root@Wanghualang src]# wget –no-check-certificate https://www.openssl.org/source/openssl-1.0.2n.tar.gz
卸载OpenSSL、Openssh
- [root@Wanghualang ~]# rpm -e `rpm -qa | grep openssl` –nodeps –allmatches
- [root@Wanghualang ~]# rpm -e `rpm -qa | grep openssh` –nodeps –allmatches
第五步 安装新程序
安装OpenSSL
- [root@Wanghualang ~]# cd /usr/local/src/
- [root@Wanghualang src]# tar xzf openssl-1.0.2n.tar.gz
- [root@Wanghualang src]# cd openssl-1.0.2n
- [root@Wanghualang openssl-1.0.2n]# ./config -fPIC –prefix=/usr enable-shared
- [root@Wanghualang openssl-1.0.2n]# make
- [root@Wanghualang openssl-1.0.2n]# make install
查看OpenSSL版本
- [root@Wanghualang ~]# openssl version -a
建立软链接,Yum、Wget等命令便可正常使用。
- [root@Wanghualang ~]# ln -s /usr/lib64/libssl.so.1.0.0 /usr/lib64/libssl.so.10
- [root@Wanghualang ~]# ln -s /usr/lib64/libcrypto.so.1.0.0 /usr/lib64/libcrypto.so.10
安装OpenSSH
- [root@Wanghualang ~]# cd /usr/local/src/
- [root@Wanghualang src]# tar xzf openssh-7.6p1.tar.gz
- [root@Wanghualang src]# cd openssh-7.6p1
- [root@Wanghualang openssh-7.6p1]# ./configure –prefix=/usr –sysconfdir=/etc/ssh –with-pam –with-zlib –with-md5-passwords
- [root@Wanghualang openssh-7.6p1]# make
- [root@Wanghualang openssh-7.6p1]# make install
查看OpenSSH版本
- [root@Wanghualang ~]# ssh -V
- OpenSSH_7.6p1, OpenSSL 1.0.2n 7 Dec 2017
设置开机启动
- [root@Wanghualang ~]# cp -rf /usr/local/src/openssh-7.6p1/contrib/redhat/sshd.init /etc/init.d/sshd
- [root@Wanghualang ~]# chmod +x /etc/init.d/sshd
- [root@Wanghualang ~]# chkconfig –add sshd
启动OpenSSH
默认情况下,新版的OpenSSH禁止使用root用户登录,为方便测试,现解除这个限制。
- [root@Wanghualang ~]# sed -i ‘s/#PermitRootLogin prohibit-password/PermitRootLogin yes/’ /etc/ssh/sshd_config
- [root@Wanghualang ~]# service sshd start
第六步 卸载其他远程工具
确认新版OpenSSH正常使用后,可以考虑卸载Telnet、Dropbear。
卸载Telnet
- [root@Wanghualang ~]# yum -y remove telnet-server
卸载Dropbear
查询进程号
- [root@Wanghualang ~]# ps aux | grep dropbear
结束进程
- [root@Wanghualang ~]# kill -9 进程号
删除程序
-
[root@Wanghualang ~]# find / -name dropbear* | xargs rm -rf