升级openssl、openssh心得

升级openssl、openssh心得,报错解决处理方法

服务器版本:CentOS 6.7

环境:内网环境,无法访问互联网

升级至openssl 1.1.1版本

升级至openssh 7.8版本

重要提醒:升级openssh,openssl的版本必须是1.0.X才能正常升级,否则会出现一堆报错!!!

1.安装telnet服务

~]$ yum -y install telnet* xinetd
Telnet下载地址
http://www.rpmfind.net/linux/rpm2html/search.php?query=telnet-server(x86-64)

1.1,启用telnet服务

~]$ vi /etc/xinetd.d/telnet # 编辑文件修改配置
将其中disable字段的yes改为no以启用telnet服务
disable = no
按 esc
输入 :wq 保存退出
~]$ service xinetd start #启动telnet服务
~]$ service xinetd stop #关闭telnet服务
~]$ service xinetd restart #重启Telnet服务
~]$ chkconfig xinetd on #使telnet服务开机启动,

~]$ yum remove telnet-server xinetd //卸载Telnet
避免升级过程中服务器意外重启或者升级失败后无法远程登录系统

1.2.测试telnet能否正常登入系统

telnet 192.168.10.10   # 这里换成自己的服务器地址

2.升级openssh

2.1下载安装包,检查当前版本,

网址:http://openbsd.hk/pub/OpenBSD/OpenSSH/portable/
命令: ssh -V
在这里插入图片描述

2.2 安装依赖包

~]$ yum install gcc openssl-devel pam* zlib* -y

2.3 编译安装openssh

~]$ tar -zxvf openssh-7.8p1.tar.gz #解压安装包
~]$ cd openssh-7.8p1 #进入解压后的目录
(1)#编译安装
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-zlib --with-ssl-dir=/usr/local/ssl --without-hardening --with-pam && make && make install
(2) # 没有特别需求就用这条命令就行 ,默认目录是 /usr
./configure
#预编译及编译安装
make && make install

–prefix 安装目录
–sysconfdir 配置文件目录
–with-ssl-dir 指定 OpenSSL 的安装目录
–with-privsep-path 非特权用户的chroot目录
–with-privsep-user=sshd 指定非特权用户为sshd
–with-zlib 指定zlib库的安装目录
–with-md5-passwords 支持读取经过MD5加密的口令

待执行完成即可,如果升级完成后查看版本未更新,重新登录即可。

3.升级openssl

3.1 下载安装包,检查当前版本

~]$ openssl version -a
在这里插入图片描述
下载网站:https://www.openssl.org/source/
老版本的网站:https://www.openssl.org/source/old/

3.2 安装依赖包

~]$ yum -y install zlib zlib-devel

3.3 编译安装openssl

~]$ tar -zxvf openssl-1.1.1g.tar.gz #解压openssl
~]$ cd openssl-1.1.1g.tar.gz # 进入目录
~]$ ./config shared && make && make install # 编译安装,
~]$ mv /usr/bin/openssl /usr/bin/openssl.bak # 将原本的openssl重命名
~]$ find / -name openssl #查询openssl所有路径
~]$ ln -s /usr/local/bin/openssl /usr/bin/openssl # 将/usr/bin/下增加openssl快捷方式
~]$ echo “/usr/local/ssl/lib” >> /etc/ld.so.conf # 增加openssl环境变量
~]$ ldconfig # 更新 生效
~]$ openssl version -a #查看版本
安装完成

4 遇到问题并处理方法

4.1 安装openssh 报错

1 yum安装源指向问题

file:///media/repodata/repomd.xml: [Errno 14] Could not open/read
file:///media/repodata/repomd.xml
报错内容说,media下面没有repomd.xml文件,
查看media文件下面没有repodata/repomd.xml文件,是因为配置指向问题,
查看yum源配置:
/etc/yum.repos.d #这个文件下面有可能有多个.repo结尾的文件,
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-fasttrack.repo CentOS-Media.repo CentOS-Vault.repo CentOS-Local.repo

~]$ cat /etc/yum.repos.d/CentOS-Local.repo #
[base]
name=CentOS-Local
baseurl=file:///media
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
yum源配置指向确实是/media,但是我的/media文件时空的,因此需要处理,我在服务器上没有找到装有rpm包的文件,一般是 /Packages 文件(不知道什么原因)
于是,从其他服务器把这个装有rpm包的文件拷贝过来,
步骤:
进入tmp目录: cd /tmp
创建文件:mkdir test
文件赋权:chmod 777 test
#如果不是777 传输文件时报错,没有权限
拷贝命令:scp -r ./rpm_bak/* [email protected]:/tmp/test # rpm_bak 这个是装有rpm包组的文件
weihu用户@x.x.x.x服务器地址:/文件目录
修改yum配置:
~]# vi /etc/yum.repos.d/CentOS-Local.repo
[base]
name=CentOS-Local
baseurl=file:///test/ ##只改这里的文件路径就OK
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
修改后,保存退出。
再次安装就没问题了

4.2 由于先升级了openssl 导致openssh升级失败问题

前面说过,openssl的版本必须是1.0的版本,由于先升级了openssl导致版本过高,无法升级openssh。出现各种问题,

1. 在升级openssh时报错,找不到openssl库

报错信息:
checking OpenSSL header version… 1010107f (OpenSSL 1.1.1g 21 Apr 2020)
checking OpenSSL library version… not found
configure: error: OpenSSL library not found.
说找不到openssl 头部版本不对、库版本没有,找不到库等问题,网上找了N多方法都无效;最后无奈,重新安装openssl

2. 升级openssh失败,导致无法远程登录,

升级失败后们ssh无法登录,需要降级openssl,重新安装openssh,此时Telnet派上用处了,但是Telnet不能上传文件,于是安装ftp,
步骤如下:
1,安装vsftpd服务
~]# yum -y install vsftpd
显示Complete!时为成功
2,修改vsftpd配置
~]# vi /etc/vsftpd/vsftpd.conf
使用vi编辑器修改vsftpd.conf配置文件
按i进入编辑模式
将anonymous_enable=YES修改为 anonymous_enable=NO
然后按Esc按键退出编辑模式
键入:(冒号) 输入wq保存退出
3,启动(重启)vsftpd服务
~]# useradd -d /var/ftp/ftp1 test #为ftp创建一个名为test的用户,并绑定目录为/var/ftp/ftp1
~]# passwd test # 为test用户创建密码 需要输入两次
4,更新防火墙策略(开启防火墙21端口)
添加规则
~]# iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
保存规则
~]# service iptables save
重启防火墙
~]# service iptables restart

安装完成,找一个有ftp的软件的Windows服务器连接,输入用户名密码,把openssl-1.0.x 上传上去。
升级openssl、openssh心得_第1张图片

4.3,重新安装openssl

由于之前安装过1.1版本的openssl,所以后面降级版本也有点问题所以在此写一下安装步骤
上面升级1.1版本以后,降级安装的版本不是系统自带的版本,我在官网下载了一个比系统自带版本高一些的版本,系统是1.0.1的,本次降级安装的是1.0.2的版本。
网址:https://www.openssl.org/source/old/
编译与安装 OpenSSL
删除旧的配置文件:rm -rf /etc/ssl
解压:tar -zvxf openssl-1.0.2.tar.gz
进入目录:cd openssl-1.0.2.tar.gz
prefix 是安装目录,openssldir 是配置文件目录,另外建议安装两次,shared 作用是生成动态连接库。
编译:./config --prefix=/usr/local --openssldir=/usr/local/ssl
安装:make && make install
再次编译:./config shared --prefix=/usr/local --openssldir=/usr/local/ssl
清除上次安装:make clean
再次安装:make && make install

注:在上面安装的时候,会出现很多make到文件目录后没做什么就直接退出的信息,可以忽略。

将原本的openssl重命名:mv /usr/bin/openssl /usr/bin/openssl.bak
如果已经做过更名,系统会提示,可以忽略,
查询openssl所有路径:find / -name openssl
将/usr/bin/下增加openssl快捷方式:ln -s /usr/local/bin/openssl /usr/bin/openssl
增加openssl环境变量:echo “/usr/local/lib64/” >> /etc/ld.so.conf
生效:ldconfig
查看版本:openssl version -a

这里版本降级完以后,再升级openssh,之后再次升级openssl,方法一样。
以上内容是自己实际操作的,有很多内容都是网上找的方法,只是把这些罗列到这里,

你可能感兴趣的:(openssl,openssh升级心得,linux,centos,服务器)