前两天安全扫描,列出一堆SSH 7.4版本漏洞,要求升级到9.7以上。
看了一下,操作系统为 centos 7.6, openssh 7.4p1 。
网上OPENSSH 7.4升级到7.8的比较多,7.8是2018年出来的,9.7是 2024年03月11日出来的,能否直接升级到9.7呢,而且目前OPENSSH最新版本为9.9,能否直接升级到9.9呢?
答案是肯定的,CENTOS 7.6上面的OPENSSH 7.4可以直接升级到9.9,与操作系统版本没有墙依赖性。
下面是具体步骤:
1.安装telnet-server
考虑到ssh升级失败,无法操作,因此,事先先安装telnet-server
使用OS 的安装介质即可安装 telnet-server
yum install telnet-server
systemctl enable telnet-server
systemctl start telnet-server
验证root用户无法登录。
tail -f /var/log/secure
。。。
Nov 21 17:37:26 dbs01 login: pam_securetty(remote:auth): access denied: tty 'pts/1' is not secure !
Nov 21 17:37:34 dbs01 login: pam_succeed_if(remote:auth): requirement "uid >= 1000" not met by user "root"
Nov 21 17:37:35 dbs01 login: FAILED LOGIN 1 FROM ::ffff:172.17.6.240 FOR root, Authentication failure
。。。
把 pts/1 加入 /etc/securetty 即可
echo pts/1 >> /etc/securetty
也可以把 /etc/securetty 更名也可以达到同样效果
2.下载OPENSSH 9.9P1介质
https://mirrors.aliyun.com/pub/O ... penssh-9.9p1.tar.gz
3.检查当前系统版本情况
[root@dbs01 setup]# ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
4.下载 OPENSSL 1.1.1W
阅读 openssh 9.9p1的文档,提示 openssl 需要是 1.1.1以上版本,当前系统的OPENSSL 的版本为1.0.2,因此需要先升级 openssl 的版本。
https://github.com/openssl/opens ... enssl-1.1.1w.tar.gz
5.安装 openssl 1.1.1w
[root@dbs01 setup]# tar -xvf openssl-1.1.1w.tar.gz
[root@dbs01 setup] cd openssl-1.1.1w
[root@dbs01 openssl-1.1.1w]# ./config --prefix=/usr/local/openssl
[root@dbs01 openssl-1.1.1w]# make && make install
--备份原文件
mv /usr/bin/openssl /usr/bin/openssl.bak
ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
--设置生效
ldconfig -v
--查看版本
openssl version
[root@dbs01 openssl-1.1.1w]# openssl version
OpenSSL 1.1.1w 11 Sep 2023
6.安装ssh 9.9p1
tar -xzvf openssh-9.9p1.tar.gz
cd openssh-9.9p1
./configure --prefix=/usr/local/openssh --with-ssl-dir=/usr/local/openssl --sysconfdir=/etc/ssh --with-zlib
make -j 16 && make install
有报错信息:
...
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0640 for '/etc/ssh/ssh_host_ed25519_key' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Unable to load host key "/etc/ssh/ssh_host_ed25519_key": bad permissions
Unable to load host key: /etc/ssh/ssh_host_ed25519_key
sshd: no hostkeys available -- exiting.
make: [check-config] Error 1 (ignored)
。。。
通过 修改权限解决
chmod -R 600 /etc/ssh
再去执行编译安装,不再报错。
7.更换 ssh 9.9
--备份文件
mv /usr/sbin/sshd /usr/sbin/sshd.bak
mv /usr/bin/ssh /usr/bin/ssh.bak
mv /usr/bin/ssh-keygen /usr/bin/sshk-keygen.bak
cp -rf /usr/local/openssh/sbin/sshd /usr/sbin/sshd
cp -rf /usr/local/openssh/bin/ssh /usr/bin/ssh
cp -rf /usr/local/openssh/bin/ssh-keygen /usr/bin/ssh-keygen
--修改参数
PermitRootLogin yes
PubkeyAuthentication yes
PasswordAuthentication yes
--去掉几个选项,通过注释掉配置文件中对应的选项即可
/etc/ssh/sshd_config line 79: Unsupported option GSSAPIAuthentication
/etc/ssh/sshd_config line 80: Unsupported option GSSAPICleanupCredentials
/etc/ssh/sshd_config line 96: Unsupported option UsePAM
--重启ssh
systemctl restart sshd
8.验证SSH9.9
ssh -V
[root@dbs01 openssh-9.9p1]# ssh -V
OpenSSH_9.9p1, OpenSSL 1.1.1w 11 Sep 2023
[root@dbs01 openssh-9.9p1]#
9.下载 telnet-server
telnet 是明文传输,不安全,最后卸载掉
systemctl disble telnet-server
systemctl stop telnet-server
yum remove telnet-server
|