OpenSSH_7.4p1 升级 OpenSSH_8.1p1
升级背景:
OpenSSH 拒绝服务漏洞(CVE-2016-0778) | |
OpenSSH sshd 安全漏洞(CVE-2015-8325) | |
OpenSSH'ssh/kex.c'拒绝服务漏洞(CVE-2016-8858) |
详细描述 | OpenSSH(OpenBSD Secure Shell)是OpenBSD计划组所维护的一套用于安全访问远程计算机的连接工具。该工具是SSH协议的开源实现,支持对所有的传输进行加密,可有效阻止窃听、连接劫持以及其他网络级的攻击。sshd是其中的一个独立守护进程。 OpenSSH 7.2p2及之前版本的sshd中的session.c文件中的‘do_setup_env’函数存在安全漏洞。当程序启用UseLogin功能并且PAM被配置成读取用户主目录中的.pam_environment文件时,本地攻击者可借助/bin/login程序的特制的环境变量利用该漏洞获取权限。 |
升级前后版本查看:
#当前版本:
[root@datanode1 ~]# ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
#升级后版本:
[root@namenode ~]# ssh -V
OpenSSH_8.1p1, OpenSSL 1.0.2k-fips 26 Jan 2017
Openssh 安装包下载:
Index of /pub/OpenBSD/OpenSSH/portablehttp://ftp.jaist.ac.jp/pub/OpenBSD/OpenSSH/portable/
可根据自身需求进行安装包下载升级;
升级
升级注意事项 (以下有的操作默认为管理员权限,如果遇到权限问题每个指令以及指令组合都要在前面加sudo)
#系统版本:
cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
#免升级失败造成无法连接服务器:
#装telnet服务
yum list |grep telnet
yum install telnet-server.x86_64 -y
#装xinetd服务
yum list |grep xinetd
yum install xinetd.x86_64 -y
#entOS 6系列版本修改telnet配置文件(CentOS 7 以及以上版本跳过这一步)
vi /etc/xinetd.d/telnet (7以上版本很可能没这个文件)
#于默认centos不允许使用telnet登录,暂时修改为备份文件。
sudo mv /etc/securetty /etc/securetty.bak
#行telnet
#CentOS 7系列版本通过下面四个指令 开启Telnet
systemctl start telnet.socket
systemctl start xinetd
#测试是否可以telnet登录,确认可以登录后将旧版本openssh卸载
yum remove openssh* -y
#升级openssh8.1
#上传文件在下载好的openshh的文件在/usr/local/src 目录下(权限不足则放置在/home/目录下)
#解压文件openssh-8.1p1
tar zxvf openssh-8.1p1.tar.gz
cd openssh-8.1p1/
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-privsep-path=/var/lib/sshd
#避免在安装遇到因依赖环境引起的错误建议提前安装依赖环境
yum install openssl openssl-devel gcc -y
#避免编译时出现错误修改以下权限:
chmod 600 /etc/ssh/ssh_host_rsa_key
chmod 600 /etc/ssh/ssh_host_ecdsa_key
chmod 600 /etc/ssh/ssh_host_ed25519_key
make && make install
#查看升级状态:
ssh -V
OpenSSH_8.1p1, OpenSSL 1.0.2k-fips 26 Jan 2017
注意:默认是22端口,但是不能root直接登录。如果想直接使用root登录执行以下命令
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
#修改 ,将 #Port 22前面的“#“ 删除 ,改为Port 22
vi /etc/ssh/sshd_config
systemctl daemon-reload
systemctl restart sshd.service
#重启sshd centOS5和6用这个service sshd restart 。
CentOS7.2 systemctl restart sshd.service
#利用linux连接工具连接测试是否能连接成功。
mv /etc/securetty.bak /etc/securetty
#因安全问题,在ssh连接后卸载telnet服务 ,一定是能用ssh连接后卸载telnet服务!
yum remove -y telnet-server.x86_64
yum remove -y xinetd.x86_64