背景:在**单位内网私有云进行项目部署时,需要网络那边开通外网端口,以在外网访问应用。提申请时被告知需要对部署应用的机器进行漏洞扫描,结果扫描出来一堆漏洞,全是openssh相关的,查看openssh的版本为6.6,于是想到升级openssh版本到7.5,以解决漏洞。下面是具体的步骤,以及需要注意的问题。
一.升级准备-----所需软件包
由于是内网 ,不能连接到互联网,故需要提前准备好以下安装包:
1.telnet相关软件包
telnet-0.17-59.el7.x86_64.rpm
telnet-server-0.17-59.el7.x86_64.rpm
xinetd-2.3.15-12.el7.x86_64.rpm
2.pam,gcc,zlib,openssh,openssl相关包
pam-devel-1.1.8-12.el7_1.1.x86_64.rpm
openssl-1.0.2l.tar.gz
openssh-7.5p1.tar.gz
3.关闭selinux
vi /etc/sysconfig/selinux
修改 SELINUX=disabled
修改完成后重启机器生效
二. 安装telnet
由于安装过程中可能出现安装失败的情况导致无法通过ssh连接到远程服务器,故这里先安装telnet,安装后可以直接在windows cmd命令窗口执行相关安装包
上传telnet相关rpm包到指定目录下,依次执行如下命令:
rpm -ivh telnet-server-0.17-59.el7.x86_64.rpm
rpm -ivh telnet-0.17-59.el7.x86_64.rpm
rpm -ivh xinetd-2.3.15-12.el7.x86_64.rpm
启动服务
systemctl enable xinetd.service
systemctl enable telnet.socket
systemctl start telnet.socket
systemctl start xinetd
默认情况下,系统是不允许root用户telnet远程登录的。如果要使用root用户直接登录,需设置如下内容:
echo 'pts/0' >>/etc/securetty
echo 'pts/1' >>/etc/securetty
##设置完成后 重启服务 生效
service xinetd restart
安装完成后 打开cmd窗口 执行 :telnet ip地址
三. 升级openssl
卸载openssh相关的rpm包,即卸载旧版本的openssh,执行如下命令:
rpm -e --nodeps `rpm -qa|grep openss`
安装pam,zlib-devel,gcc,将相关软件包上传到指定目录,执行:
rpm -Uvh *.rpm --nodeps --force
解压缩openssl软件包:
tar -zxvf openssl-1.0.2l.tar.gz
进入解压路径:
cd openssl-1.0.2l
编译安装openssl:
./config --prefix=/usr --shared && make && make install
创建软链接:
ln -s /usr/lib64/libcrypto.so.1.0.0 /usr/lib64/libcrypto.so.10
ln -s /usr/lib64/libssl.so.1.0.0 /usr/lib64/libssl.so.10
验证版本信息:
openssl version -a
到此openssl升级完毕
四. 升级openssh
备份旧ssh配置文件 /etc/ssh :
mv /etc/ssh/ /home/ssh-bak
解压:
tar -zxvf openssh-7.5p1.tar.gz
进入解压路径:
cd openssh-7.5p1
编译安装:
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-zlib --with-md5-passwords
make && make install
复制pam的头文件:
cp contrib/redhat/sshd.pam /etc/pam.d/sshd
复制启动脚本:
cp contrib/redhat/sshd.init /etc/init.d/sshd
设置开机启动:
chkconfig sshd on
编辑ssh配置文件:
vim /etc/ssh/sshd_config
PermitRootLogin yes #允许root用户通过ssh登陆
PubkeyAuthentication yes #公钥授权
PasswordAuthentication yes #密码授权
验证版本信息:
ssh -V
重启ssh服务
service sshd restart
至此openssh升级完毕!