openssh漏洞相关

1. 查看当前openssh版本

[root@centos7 ~]# ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
[root@centos7 ~]#

2. 下载安装包和依赖包

相关依赖: yum install perl perl-Test-Harness perl-Test-Simple

3. 安装zlib

下载:

zlib: wget http://www.zlib.net/zlib-1.2.12.tar.gz

解压:

tar -xzvf zlib-1.2.12.tar.gz

安装:

cd zlib-1.2.12
./configure --prefix=/usr/local/zlib
make
make test # 这一步出错不要继续 # 看到ok字样表示成功
make install

images

4. 安装openssl

安装依赖:

yum install perl perl-Test-Harness perl-Test-Simple

下载:

wget https://www.openssl.org/source/openssl-1.1.1o.tar.gz

解压

tar -xzvf openssl-1.1.1o.tar.gz

安装:

cd openssl-1.1.1o
./config --prefix=/usr/local/openssl
make
make test
make install

常见问题:

BEGIN failed–compilation aborted at .././
Parse errors: No plan found in TAP output

原因: 没有安装步骤0中的依赖
解决: yum install perl perl-Test-Harness perl-Test-Simple

看到如下表示安装成功
images

5. openssh安装

依赖

yum install openssl-devel pam-devel

备份相关文件(删除源文件)

mv /etc/ssh{,.back}
mv /etc/pam.d/sshd{,.back}

下载

wget https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/openssh-8.8p1.tar.gz

解压

tar -xzvf openssh-8.8p1.tar.gz

安装

cd openssh-8.8p1
./configure \
--prefix=/usr/local/openssh \
--with-zlib=/usr/local/zlib/ \
--sysconfdir=/etc/ssh \
--with-ssl-dir=/etc/ssh \
--with-pam \
--with-md5-passwords
make
make tests
make install

make tests 这里时间较长
看到如下表示成功
images

安装完之后会有三个warning
修改相关文件权限
chmod 600 /etc/ssh/ssh_host_rsa_key
chmod 600 /etc/ssh/ssh_host_ecdsa_key
chmod 600 /etc/ssh/ssh_host_ed25519_key

注意: 安装完不可直接systemctl去重启sshd, 可能会造成服务器无法连接
请在有ssh之外远程到服务器上的权限再去升级ssh, 避免升级过程中导致ssh无法连接

修改sshd配置文件

编辑sshd配置文件: vim /etc/ssh/sshd_config
添加: PermitRootLogin yes

复制sshd的pam配置文件

cp openssh-8.8p1/contrib/redhat/sshd.pam /etc/pam.d/sshd

使用systemctl管理sshd

配置启动脚本
cp sshd.init /etc/init.d/sshd
修改sshd的service配置文件
vim /usr/lib/systemd/system/sshd.service

[Unit]
Description=OpenSSH server daemon
Documentation=man:sshd(8) man:sshd_config(5)
After=network.target sshd-keygen.service
Wants=sshd-keygen.service

[Service]
Type=forking
ExecStart=/etc/rc.d/init.d/sshd start
ExecStop=/etc/rc.d/init.d/sshd stop
Restart=/etc/rc.d/init.d/sshd stop
[Install]
WantedBy=multi-user.target

重载systemctl
systemctl daemon-reload

mv /usr/bin/ssh{,.back}
mv /usr/sbin/sshd{,.back}
ln -s /usr/local/openssh/sbin/sshd /usr/sbin/sshd
ln -s /usr/local/openssh/bin/ssh /usr/bin/ssh

重启sshd
systemctl restart sshd

启动报错

相关问题:
error: *** working libcrypto not found
解决: yum install openssl-devel

error: PAM headers not found
解决: yum install pam-devel