openssh 7.4 java使用_centos7.5升级openssh7.4到7.9

漏洞扫描工具扫描出openssh用户枚举漏洞,搜索资料得知无补丁和升级包,解决这个漏洞得安装漏洞修复之后的版本version>7.8。

环境

linux版本:CentOS Linux release 7.5.1804

ssh版本:OpenSSH_7.4p1

升级前准备

备份

备份ssh配置

mkdir -p /bak

cp -ar /etc/ssh /bak

备份老版本的openssh软件包

[root@localhost soft]# rpm -qa|grep openssh

openssh-7.4p1-16.el7.x86_64

openssh-server-7.4p1-16.el7.x86_64

openssh-clients-7.4p1-16.el7.x86_64

可以去网上下载,这里上传的云盘:

下载openssh7.4.zip, 将这些文件全部上传至要升级的服务器。

安装telnet服务,防止ssh升级后登录不上

网盘里telnet.zip解压安装即可:

[root@localhost telnet_dir]# ls

telnet-0.17-64.el7.x86_64.rpm telnet-server-0.17-64.el7.x86_64.rpm xinetd-2.3.15-13.el7.x86_64.rpm

[root@localhost telnet_dir]# rpm -iv --force --nodeps *.rpm

[root@localhost telnet_dir]# chkconfig xinetd on

注意:正在将请求转发到“systemctl enable xinetd.service”。

[root@localhost telnet_dir]# chkconfig telnet on

注意:正在将请求转发到“systemctl enable telnet.socket”。

Created symlink from /etc/systemd/system/sockets.target.wants/telnet.socket to /usr/lib/systemd/system/telnet.socket.

[root@localhost telnet_dir]# systemctl start telnet.socket

[root@localhost telnet_dir]# systemctl start xinetd

# 测试telnet是否连接正常,默认配置不支持root登录,最好建一个普通用户登录,再su到root,升级完成再userdel -r 删除用户即可,也可以更改配置允许root通过telnet登录。

[root@localhost telnet_dir]# useradd tom

[root@localhost telnet_dir]# passwd tom

进行远程telnet连接测试

构建openssh7.9p1的rpm包

这里为了更省事,防止网络等环境问题,构建openssh的rpm包进行安装。上面从我的网盘链接里下载了openssh.zip文件的可以忽略这一步,因为openssh.zip里面已经构建好了openssh7.9p1的rpm包,直接进行升级安装即可。

[root@localhost ~]# mkdir -p /usr/src/redhat/{SOURCES,SPECS}

[root@localhost ~]# cd /usr/src/redhat/SOURCES/

[root@localhost SOURCES]# wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-7.9p1.tar.gz

[root@localhost SOURCES]# tar -zvxf openssh-7.9p1.tar.gz openssh-7.9p1/contrib/redhat/openssh.spec

[root@localhost SOURCES]# mv openssh-7.9p1/contrib/redhat/openssh.spec ../SPECS/

[root@localhost SOURCES]# chown sshd:sshd /usr/src/redhat/SPECS/openssh.spec

[root@localhost SOURCES]# cp /usr/src/redhat/SPECS/openssh.spec /usr/src/redhat/SPECS/openssh.spec_def

[root@localhost SOURCES]# sed -i -e "s/%define no_gnome_askpass 0/%define no_gnome_askpass 1/g" /usr/src/redhat/SPECS/openssh.spec

[root@localhost SOURCES]# sed -i -e "s/%define no_x11_askpass 0/%define no_x11_askpass 1/g" /usr/src/redhat/SPECS/openssh.spec

[root@localhost SOURCES]# mkdir -p ~/rpmbuild/SOURCES/

[root@localhost SOURCES]# cp /usr/src/redhat/SOURCES/openssh-7.9p1.tar.gz ~/rpmbuild/SOURCES/

[root@localhost SOURCES]# cd /usr/src/redhat/SPECS/

[root@localhost SPECS]# rpmbuild -ba openssh.spec

[root@localhost SPECS]# ll /root/rpmbuild/RPMS/x86_64/openssh-*

-rw-r--r-- 1 root root 496204 1月 17 13:31 /root/rpmbuild/RPMS/x86_64/openssh-7.9p1-1.el7.x86_64.rpm

-rw-r--r-- 1 root root 548576 1月 17 13:31 /root/rpmbuild/RPMS/x86_64/openssh-clients-7.9p1-1.el7.x86_64.rpm

-rw-r--r-- 1 root root 2508852 1月 17 13:31 /root/rpmbuild/RPMS/x86_64/openssh-debuginfo-7.9p1-1.el7.x86_64.rpm

-rw-r--r-- 1 root root 391696 1月 17 13:31 /root/rpmbuild/RPMS/x86_64/openssh-server-7.9p1-1.el7.x86_64.rpm

参考:https://blog.csdn.net/qq_42609381/article/details/82855043

# 编译过程遇到的错误:

错误:构建依赖失败: openssl-devel < 1.1 被 openssh-7.9p1-1.el7.x86_64 需要

解决:[root@localhost SPECS]# vim openssh.spec 注释掉 BuildRequires: openssl-devel < 1.1 这一行

错误:configure: error: PAM headers not found

RPM 构建错误: /var/tmp/rpm-tmp.OB3GHI (%build) 退出状态不好

解决: yum install pam-devel

错误:坏文件:/root/rpmbuild/SOURCES/x11-ssh-askpass-1.2.4.1.tar.gz: 没有那个文件或目录

解决:

wget http://ftp.riken.jp/Linux/momonga/6/Everything/SOURCES/x11-ssh-askpass-1.2.4.1.tar.gz

cp x11-ssh-askpass-1.2.4.1.tar.gz  /root/rpmbuild/SOURCES/

升级

卸载当前版本的openssh

rpm -e `rpm -qa |grep openssh`

如果有依赖:

rpm -e `rpm -qa |grep openssh` --nodeps

删除/etc/ssh/下所有文件(注意检查是否备份)

rm -rf /etc/ssh/*

rpm安装openssh7.9p1

unzip openssh.zip

rpm -iv --force --nodeps *.rpm

配置服务

设置开机启动:

chkconfig sshd on

编辑ssh配置文件:

vim /etc/ssh/sshd_config

配置: PasswordAuthentication yes

如果要允许root用户ssh登录需要配置:PermitRootLogin yes

服务重启

service sshd restart

验证连接和版本

ssh -V

可以直接恢复之前的ssh配置文件看能否成功,我这里直接恢复之前的配置文件可以启动但无法连接,我注释掉GSS和PAM后可以连接。

#GSSAPIAuthentication yes

#GSSAPICleanupCredentials no

#UsePAM yes

卸载telnet

升级完成之后如果需要卸载telnet,进行如下步骤即可(卸载之前确保ssh连接已经没有问题):

systemctl stop xinetd

systemctl stop telnet.socket

chkconfig xinetd off

chkconfig telnet off

rpm -e `rpm -qa|egrep "telnet|xinetd"`

# 最后删除之前测试telnet新建的普通用户

userdel -r tom

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值