这几天因为安全漏洞扫描,扫描到时大量OPEN SSH漏洞,需安全加固,主要是升级版本,以前对于升级打补丁总是不在意的,可这次中间遇到一些小问题整理成册,希望对大家有点帮助,以下是具体实现方法:
主要方法:网上找的方法大都是下载源码包进行自己编译。我的做法是下载最新版的SUSE系统ISO文件挂载到REPOS,然后进行UPDATE升级。
一、下载最近版的SUSE 12 SP3 ISO文件
下载方法就不多讲了,自己去www.suse.com/zh_cn 下载就可以了
二、挂载ISO
zypper ar -c -t yast2 "iso:/?iso=/opt/IBM/SLE-12-Server-DV.iso" "SLES12-SP0"
用命令zypper lr 查看是否挂载成功
三、升级已经安装的和openssh有关的包
1、用命令
zypper se openssh zypper se openssl
查出所有已经安装的包:openssl 、openssh、openssh-askpass、openssl-certs
2、用命令
zypper up openssh zypper up openssl zypper up openssh-askpass zypper up openssl-certs
更新所有已经安装的包:openssl 、openssh、openssh-askpass、openssl-certs
当遇到下面的提示时选择 4 即可:
Solution 2: deinstallation of nscd-2.11.3-17.31.1.x86_64
Solution 3: do not install openssl-1.0.1i-2.12.x86_64
Solution 4: break openssl by ignoring some of its dependencies
Choose from above solutions by number or cancel [1/2/3/4/c] (c): 4
Resolving dependencies...
Resolving package dependencies...
3、验证:用ssh -v命令查看现在的版本号
[:/root]
ssh –V
ssh: error while loading shared libraries: libcrypto.so.1.0.0: cannot open shared object file: No such file or directory
结果会报一个找不到库文件的错,应该是依靠的库文件没有升级的原因。
用命令找出此文件
[:/]find ./ -name libcrypto.so*
./usr/lib64/libcrypto.so.0.9.8
./usr/lib64/libcrypto.so
./usr/lib/libcrypto.so.0.9.8
然后再用命令找到此文件要用的包
[:/] rpm –qf libcrypto.so.0.9.8
libopenssl0_9_8-32bit-0.9.8j-0.26.1
[:/]zypper se libopenssl0_9_8*
Loading repository data...
Reading installed packages...
S | Name | Summary | Type
--+-----------------------+---------------------------------------------+--------
i | libopenssl0_9_8 | Secure Sockets and Transport Layer Security | package
i | libopenssl0_9_8-32bit | Secure Sockets and Transport Layer Security | package
最后得知是libopenssl0_9_8和libopenssl0_9_8-32bit这二个文件没有升级。用下面的命令进行升级
[:/]zypper in libopenssl1_0_0 libopenssl1_0_0-32bit
再次验证
[:/]ssh -v
ssh: /lib64/libc.so.6: version `GLIBC_2.15‘ not found (required by ssh)
用相同的办法再升级zypper up glibc 即可!