Ubantu 升级 openssl和openssh
安全局扫描系统有一大堆openssl和openssh的漏洞,所以进行升级
参考了三位作者的文档:
https://blog.csdn.net/hexf9632/article/details/99820859
https://blog.51cto.com/xjsunjie/2347949?source=dra
https://blog.csdn.net/hexf9632/article/details/99820859
我用的是
zlib-1.2.11.tar.gz
openssl-1.1.1g.tar.gz
openssh-8.3p1.tar.gz
1. zlib-1.2.11.tar.gz # 官方下载地址: http://www.zlib.net/
2.openssl-1.1.1g.tar.gz # 官方下载地址: https://www.openssl.org/source/
3..openssh-8.3p1.tar.gz # 官方下载地址: https://fastly.cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/
安装包放入到u盘
如果是在线上的代码建议先备份ubantu
一:.挂载u盘
1.查看当前挂载
fdisk -l
2.新建一个目录来挂载硬盘 挂载到mnt/usb
root@h-Default-string:~# cd /mnt
root@h-Default-string:/mnt# mkdir /mnt/usb
3.挂载命令
root@h-Default-string:/mnt# mount /dev/sdb1 /mnt/usb 其中/dev/sdb1 是自己通过查看fdisk -l 得出的
4.不出问题就会挂载成功。
5.卸载u盘:在使用完u盘后,在拔出前需要先键入卸载U盘命令
umount /mnt/usb
备份
tar cvpzf backup.tgz --exclude=/proc --exclude=/lost+found --exclude=/mnt/usb/backup.tgz --exclude=/mnt --exclude=/sys /
还原
tar xvpfz backup.tgz -C /
二:.下面来升级 openssl和openssh
1.先建立文件吧安装包放到一起
记得在root权限下运行
cd / 回到根目录
sudo mkdir /openssl //根目录下创建文件
cd /mnt/usb //进入到挂载U盘的目录 看第一步
cp zlib-1.2.11.tar.gz /openssl //拷贝zlib-1.2.11.tar.gz到openssl目录下
cp openssl-1.1.1g.tar.gz /openssl //拷贝openssl-1.1.1g.tar.gz到openssl目录下
cp openssh-8.3p1.tar.gz /openssl //拷贝openssh-8.3p1.tar.gz 到openssl目录下
cd /openssl //进入openssl目录
tar -zxvf zlib-1.2.11.tar.gz //解压 zlib-1.2.11.tar.gz
tar -zxvf penssl-1.1.1g.tar.gz //解压 penssl-1.1.1g.tar.gz
tar -zxvf zopenssh-8.3p1.tar.gz //解压openssh-8.3p1.tar.gz
2.备份openssl和openssh 如果以后需要还原配置什么的,可以替换掉
备份原openssh文件
mv /etc/init.d/ssh /etc/init.d/ssh.old
cp -r /etc/ssh /etc/ssh.old
备份原来的openssl
mv /usr/bin/openssl /usr/bin/openssl.bak
mv /usr/include/openssl /usr/include/openssl.bak
先查看你自己的openssl版本和openssh版本看后面安装了是否发生变化
openssl version //查看openssl版本
ssh -v //查看ssh版本
重点来了:因为我要升级的是不能访问外网的环境下的系统会有两个版本,先说能在访问外网的环境下升级
1.卸载:旧的版本,多执行几下,我每次第一次执行都卸载不干净得第二次执行
执行完后再输入
openssl version //查看openssl版本
ssh -v //查看ssh版本
如果没有版本信息了就卸载成功了
apt-get remove openssl //如果连接不到外网就不要执行了
apt-get remove openssh-server openssh-client //如果连接不到外网就不要执行了
apt-get purge openssl //如果连接不到外网就不要执行了
cd zlib-1.2.11 //进入到解压的zlib-1.2.11目录
./configure
make
make install //如果这三步没报错,就安装完成了
cd .. //返回 /openssl 目录
cd openssl-1.1.1g 进入到解压的openssl-1.1.1g 目录
./config --prefix=/usr --shared //一定要加上--shared
make
make test
make intall
然后执行 openssl version 出现版本内容就成功了
cd .. //返回 /openssl 目录
cd openssh-8.3p1 //进入到解压的openssh-8.3p1目录
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-zlib --with-ssl-dir=/usr/local/openssl --with-privsep-path=/var/lib/sshd --with-pam
如果执行这一步出现什么RAW的错误,就先下载libpam0g-dev
apt-get install libpam0g-dev
如果连接不到外网我在百度云上传安装包然后你们下载下来放入 /openssl中执行:
sudo dpkg -i libpam0g_1.1.3-7ubuntu2.3_amd64.debsudo dpkg -i libpam0g-dev_1.1.3-7ubuntu2.3_amd64.deb
如果执行这一步出现
configure: error: Your OpenSSL headers do not match your
library. Check config.log for details.
If you are sure your installation is consistent, you can disable the check
by running “./configure --without-openssl-header-check”.
Also see contrib/findssl.sh for help identifying header/library mismatches.
错误,请一定要下载后缀为xg.tar.gz的版本,如果不行,请在官网下载其他版本
如果还有问题请私信,或者评论哦
make
make install
这样就成功了
然后你用ssh -v
发现显示不出来版本信息了,
你进入 cd /usr/sbin
目录下
执行 ./sshd -v
你就发现版本信息出来了
然后启动ssh有点变化:
server ssh start //启动ssh
server ssh stop //停止
service ssh restart 重启
启动ssh后查看ssh是否开启
ps -e | grep ssh
如果出现可sshd 就成功了
注意:连接的时候你可能用sftp连接不上:
先用scp连接看是否连接上,如果出现问题
sudo vi /etc/ssh/sshd_config
看 Port 22前面是否有个#号如果有去掉
然后看PermitRootLogin 和StrictModes前是否有#号去掉
PermitRootLogin 和StrictModes 后面面改成 yes //这个是开启root用户登录
然后退出,记得保存
然后执行service ssh restart
重启 一下
看下scp 是否能连接上
如果能连接上,就好,连接不上,私信我或者评论,我会经常在线
然后说说sftp连接不上的原因:
因为对ssh进行了更新,有些文件位置发生了改变,
vi /etc/ssh/sshd_config
文档最下边
Subsystem sftp 指定的位置你看看是否还有这个问题,不出以为没有!
然后执行 退出文档,执行
cd /
find / -name sftp-server
查找下这个文件的位置
然后执行
vi /etc/ssh/sshd_config
把 Subsystem sftp 修改为查找到的路径
然后执行service ssh restart
重启 一下
查看 ssh是否开启
ps -e | grep ssh
开启后,然后再用sftp连接下试试
如果有问题或者不明白的地方请评论或者私信