| 前言 |
因项目安全防护要求,需要修复OpenSSH多项漏洞,比较直接的方式是升级到OpenSSH目前最新版本8.6p1。而项目在用系统为Ubuntu16.04.4(amd64),默认的OpenSSL版本是1.0.2g,默认的OpenSSH7.2。需要先对OpenSSL进行升级,再基于新版本OpenSSL进行OpenSSH的源码编译,最后对8.6p1版本的OpenSSH进行相关安全访问配置。 |
一、准备工作
1. 下载OpenSSH源码包

2. 下载OpenSSL安装包

二、安装OpenSSL
以下方法适用于通过Ubuntu官方源补充所需依赖,如已引用过第三方源,导致出现依赖不匹配,需另做分析解决。
直接安装下载好的libssl1.1和openssl1.1.0l的deb软件包。
sudo dpkg -i libssl1.1_1.1.0l-1~deb9u1_amd64.debsudo dpkg -i openssl_1.1.0l-1~deb9u1_amd64.deb
sudo apt-get updatesudo apt-get install -y libc6 debconf debconf-2.0
三、安装OpenSSH
sudo tar -zxf openssh-8.6p1.tar.gz -C /opt/cd /opt/openssh-8.6p1/sudo ./configure --prefix=/usrsudo make -j$(nproc)sudo make install
四、配置OpenSSH
1. 配置密钥认证的变化
不同于7.2版本的OpenSSH,新版本对用户目录下的.ssh文件夹和.ssh/authorized_keys许可公钥文件的权限有更严格的要求。如果不满足安全性要求,则使用ssh连接时无法进行密钥认证。使用ssh -v xxx@xxx 连接时可以看到调试信息明确显示public key认证失败。
确认.ssh文件夹及内容的所有者和分组无异常,如不合规则恢复正确的所有者和分组。
sudo chown -R $(id -u):$(id -g) ~/.ssh
确认.ssh文件夹权限为700,如不合规则重新调整权限。
chmod 700 ~/.ssh
确认.ssh/authorized_keys文件权限为600,如不合规则重新调整权限。
chmod 600 ~/.ssh/authorized_keys
2. 优化SSH建立连接时响应慢
编辑配置文件/usr/etc/sshd_config,确认UseDNS配置为no。
UseDNS = no
3. 配置服务端超时
编辑配置文件/usr/etc/sshd_config,如配置每60秒发送1次,最多发送10次,则可保持600秒。
ClientAliveInterval = 60
ClientAliveCountMax = 10




