美文网首页
Liunx系统下,内网升级OpenSSL

Liunx系统下,内网升级OpenSSL

作者: 洛奇lodge | 来源:发表于2019-11-15 11:55 被阅读0次

1、下载相关的安装包

  • zlib-1.2.11.tar.gz
  • openssl-1.0.2t.tar.gz
  • openssh-8.1p1.tar.gz

依赖包zlib下载地址:http://www.zlib.net/
依赖包openssl下载地址:https://www.openssl.org/source/
最新的Openssh下载地址:https://mirrors.sonic.net/pub/OpenBSD/OpenSSH/portable/
(后面执行报错需要安装此依赖)下载PAM模块地址 http://www.linux-pam.org/library/

2、查看当前版本和服务状态

2.1、查看openssh版本
ssh -V

2.2、查看openssl版本
openssl version

2.3、查看zlib版本
find /usr/ -name zlib.pc   # 找出zlib.pc的文件路径
cat /path/zlib.pc  # 查看里面内容,有zlib版本显示

2.4、确认telnet服务正常开启(防止ssh升级失败,无法连接终端)
telnet 192.168.226.123

2.5、查看端口22情况
netstat -ntulp |grep 22

2.6、sshd服务情况
ps -ef | grep sshd

2.7、查看sshd文件位置(后面重启时候可能会用到,需要执行该脚本文件重启sshd)
locate sshd

3、安装步骤

  • 在安装之前要确认当前版本,如果依赖包zlib和openssl版本是当前最新,则不需要重新安装依赖包

3.1、zlib安装

1、解压
tar -zxvf zlib-1.2.11.tar.gz

2、进入zlib解压目录
cd zlib-1.2.11

3、执行脚本(perfix参数是指定安装路径)
./configure --prefix=/usr/local/zlib

4、编译
make

5、安装
sudo make install

6、进入临时root操作界面
sudo -i

7、共享库注册
echo '/usr/local/zlib/lib' >> /etc/ld.so.conf.d/zlib.conf

8、更新缓存,使新添加的lib 被系统找到
ldconfig 

3.2、openssl安装

1、备份原先的openssl的文件
sudo mv /usr/bin/openssl /usr/bin/openssl.old

2、解压
tar -zxvf openssl-1.0.2t.tar.gz

3、进入zlib解压目录
cd openssl-1.0.2t

4、执行脚本
./config --prefix=/usr/local/ssl --shared zlib

5、编译
make

---------------------------执行make这步,可能会出现下面错误----------------------------------
报错内容:c_zlib.c:25:19: fatal error: zlib.h: No such file or directory
                  Makefile:287: recipe for target 'build_crypto' failed
                  make: *** [build_crypto] Error 1
解决方式:1、复制软件包到指定目录 sudo cp zlib-1.2.11 /usr/local/src/zlib-1.2.11 -r
           2、构建静态库
              sudo -i
              ./configure
              make test
              make install
           3、构建共享库
              make clean
              ./configure --shared
              make test
              make install
              cp zutil.h /usr/local/include
              cp zutil.c /usr/local/include 
-------------------------------------------------------------------------------------------

6、测试(测试通过之后,后面执行ssh升级,可以找到ssl,否则后面ssh会安装失败)
make test

7、安装
sudo make install

8、进入临时root操作界面
sudo -i

9、建立软连接(由于安装时候默认安装目录为 /usr/local/ssl/)
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/ssl/include/openssl /usr/include/openssl

10、将openssl 的lib 库添加到系统
echo "/usr/local/ssl/lib" > /etc/ld.so.conf.d/openssl.conf

11、使新添加的lib 被系统找到
ldconfig

3.3、Openssh安装

1、备份原先的openssh的文件
sudo mv /etc/init.d/ssh /etc/init.d/ssh.old
sudo mv /etc/ssh /etc/ssh.old

2、解压
tar -zxvf openssh-8.1p1.tar.gz

3、进入openssh解压目录
cd openssh-8.1p1

4、卸载原openssh
- 如果是原ssh以apt安装的卸载方式:sudo apt-get remove openssh-server openssh-client
- 如果是源码安装的:sudo  make uninstall


5、执行脚本
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/ssl 
--with-zlib=/usr/local/zlib --with-md5-passwords

--------------------------------执行这步之后,可能会出现下面错误---------------------------
报错内容:configure: error: PAM headers not found
解决方式:1、下载pam模块
          2、 进入下载的目录下,依次执行下面命令
          3、 ./configure
          4、 make
          5、 sudo make install
-------------------------------------------------------------------------------------------

6、编译
make

7、安装
sudo make install

8、修改默认配置文件根据之前配置修改,保证配置相同
- 8.1、 vi /etc/ssh/sshd_config
- 8.2、打开sshd_config文件, 复制下面一句话
   (因为更新ssh,sftp-server文件文件位置也可能会更新的)
    ''' Subsystem       sftp    /usr/libexec/sftp-server '''
- 8.3、sudo cp /etc/init.d/ssh.old /etc/init.d/ssh
- 8.4、sudo cp /etc/ssh.old/sshd_config /etc/ssh/
- 8.5、sudo vi /etc/ssh/sshd_config
- 8.6、将8.2步骤复制那句话,替换上去

9、重启服务
systemctl restart ssh

----------------------------重启服务可能会出现下面错误--------------------------------------
报错内容: Failed to restart ssh.service: Unit ssh.service is masked
解决方式: /usr/sbin/sshd 或 /etc/init.d/sshd
--------------------------------------------------------------------------------------------

4、升级后的问题

4.1 ssh升级后,可能会遇到以前经常连接服务器的客户端发出服务器的密钥已经被更改,执行下面命令
rm -rf ~/.ssh/known_hosts
4.2 服务端会出现输不了中文,以中文命名的文件会乱码

解决方式:

sudo vi /etc/profile

将下面几行写在最低行

export LC_NAME=zh_CN.UTF-8
export LC_TELEPHONE=zh_CN.UTF-8
export LC_IDENTIFICATION=zh_CN.UTF-8
export LC_MEASUREMENT=zh_CN.UTF-8
export LANG=en_US.UTF-8
export LC_TIME=zh_CN.UTF-8
export LC_NAME=zh_CN.UTF-8

使文件生效

source /etc/profile

相关文章

网友评论

      本文标题:Liunx系统下,内网升级OpenSSL

      本文链接:https://www.haomeiwen.com/subject/coewbctx.html