虽然说CentOS8的Openssl和OpenSSH的版本已经算是比较新的了,但是因为公司的信息安全建设的要求,在经过商业漏洞扫描软件扫描之后,还是需要进行升级操作(由于CentOS8的Openssl已经是比较新的1.1.1版本了,此次就不升级它了)。

安装包准备

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# 配置编译环境
cd
yum update -y
yum install rpm-build zlib-devel openssl-devel gcc perl-devel pam-devel unzip -y
mkdir -p ~/rpmbuild/{SOURCES,SPECS}
# 下载安装包
wget https://openbsd.hk/pub/OpenBSD/OpenSSH/portable/openssh-8.1p1.tar.gz
wget http://ftp.riken.jp/Linux/momonga/6/Everything/SOURCES/x11-ssh-askpass-1.2.4.1.tar.gz
cp openssh-8.1p1.tar.gz x11-ssh-askpass-1.2.4.1.tar.gz ~/rpmbuild/SOURCES
tar zxvf openssh-8.1p1.tar.gz
cp openssh-8.1p1/contrib/redhat/openssh.spec ~/rpmbuild/SPECS/
# 修改编译文件,去掉X11环境依赖和openssl依赖
sed -i -e "s/%define no_x11_askpass 0/%define no_x11_askpass 1/g" ~/rpmbuild/SPECS/openssh.spec p
sed -i -e "s/%define no_gnome_askpass 0/%define no_gnome_askpass 1/g" ~/rpmbuild/SPECS/openssh.spec
sed -i -e "s/BuildRequires: openssl-devel < 1.1/#BuildRequires: openssl-devel < 1.1/g" ~/rpmbuild/SPECS/openssh.spec
# 开始编译rpm包
rpmbuild -bp openssh.spec
rpmbuild -ba openssh.spec
# yum本地安装新编译的包
yum localinstall -y ~/rpmbuild/RPMS/x86_64/openssh-*
# 修改相关公钥权限
chmod 0400 /etc/ssh/ssh_host_ecdsa_key
chmod 0400 /etc/ssh/ssh_host_ed25519_key
chmod 0400 /etc/ssh/ssh_host_rsa_key
# 修改配置文件
sed -i -e "s/UsePAM yes/UsePAM no/g" /etc/ssh/sshd_config
# 重置服务
systemctl restart sshd
# 查看新版本信息
openssh -V

批量分发

1
2
3
4
# 上传文件到本地YUM仓库之后建立索引
createrepo /var/www/repos/cnpe/8/x86_64/
# 安装
ansible all -m yum -a 'name=* state=latest' -b -K