CentOS 7.2オフラインアップグレードopenssh-8.0 p 1、openssl-1.1 c

7331 ワード

CentOS 7.2オフラインアップグレードopenssh-8.0 p 1、openssl-1.11 cインストールパッケージダウンロード:1、openssl:https://www.openssl.org/source/openssl-1.1.1c.tar.gz 2、openssh:http://ftp5.usa.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.0p1.tar.gz 3、telnet:https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/telnet-0.17-64.el 7.x 86_64.rpm 4、telnet-server:https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/telnet server-0017-64.el7.x 86_64.rpm 5、xinetd:https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/xinetd-2.3.15-13 el7.x 86_64.rpm 6、pam-devel:http://rpm.pbone.net/index.php3?stat=26&dist=95&size=186740&name=pam-devel-1.1.8-1.2 el 7_1.1.x 86_64.rpm
一、準備作業:
1.1全体のプロセスは、元のopensslバッグとopensshのrpmパッケージをアンインストールする必要はありません。
#          
$ cp -rp /etc/ssh{,.backup`date "+%Y%m%d"`}

#   iptables selinux    
$ getenforce
$ iptables -L
$ sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
$ systemctl stop firewalld
$ systemctl disable firewalld
1.2 tensletサービスをオープンし、opensshサービスが故障で中断されることを避けることができる。
#  yum          yum         
$ yum install telnet telnet-server xinetd -y
#     yum    rpm   
$ rpm -ivh telnet-server-0.17-64.el7.x86_64.rpm
$ rpm -ivh telnet-0.17-64.el7.x86_64.rpm 
$ rpm -ivh xinetd-2.3.15-13.el7.x86_64.rpm 

#      
$ systemctl start telnet.socket
$ systemctl start xinetd
$ systemctl enable telnet.socket
$ systemctl enable xinetd
$ netstat -lntp|grep 23

#         test  ,      telnet   (  :Test@123)
$ useradd test
$ passwd test
  /etc/sudoers test   sudo  
$ visudo
  test  ALL=(ALL)  NOPASSWD: ALL
テストの下で他のサーバーを通過したtelnetは正常に登録できますか?
二、アップグレードopenssh(以下のアップグレード操作前に他のサーバーtelnetで登録してください。opensshのアップグレードに失敗して接続が中断されないように!!)
2.1依存パッケージのインストール
#   yum          yum         
$ yum install gcc zlib zlib-devel openssl-devel pam-devel -y
#     yum    rpm   
$ rpm -ivh pam-devel-1.1.8-12.el7_1.1.x86_64.rpm
2.2ソースアップグレードopenssl
$ cd /usr/local/src
$ wget https://www.openssl.org/source/openssl-1.1.1c.tar.gz
$ tar -zxf openssl-1.1.1c.tar.gz
$ cd openssl-1.1.1c
$ ./config --prefix=/usr/local/ssl --shared
$ perl configdata.pm --dump #      
$ make
$ make test
$ make install

#*************************************************
#****************************************
【    1】  make       :
make: *** [configdata.pm] Error 1
                 ,       2018 ,     2019 5 28    ,           ,        ,         ,    ,      make  。 
    :
[root@localhost ~]# date -s "2019-08-09 10:35:00"
[root@localhost ~]# hwclock -w
     make && make test && make install
#*****************************************
【    2】
[root@localhost openssl-1.1.1c]# cd /usr/local/ssl/bin/
[root@localhost bin]# ./openssl version #      ,     libssl.so.1.1 
./openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
[root@localhost bin]# ldd openssl  #     openssl      
	linux-vdso.so.1 =>  (0x00007ffe6e3ba000)
	libssl.so.1.1 => not found
	libcrypto.so.1.1 => not found
	libdl.so.2 => /lib64/libdl.so.2 (0x00007f76823de000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f76821c2000)
	libc.so.6 => /lib64/libc.so.6 (0x00007f7681df4000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f76825ec000)
#*******************************************
#*************************************************

$ echo "/usr/local/ssl/lib" >> /etc/ld.so.conf
$ ldconfig
#     :
[root@localhost bin]# ldd openssl
	linux-vdso.so.1 =>  (0x00007ffce4de0000)
	libssl.so.1.1 => /usr/local/ssl/lib/libssl.so.1.1 (0x00007f241a417000)
	libcrypto.so.1.1 => /usr/local/ssl/lib/libcrypto.so.1.1 (0x00007f2419f30000)
	libdl.so.2 => /lib64/libdl.so.2 (0x00007f2419d2c000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f2419b10000)
	libc.so.6 => /lib64/libc.so.6 (0x00007f2419743000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f241a6b2000)
#     openssl  :
[root@localhost bin]# openssl version
OpenSSL 1.0.2k-fips  26 Jan 2017
mv /usr/bin/openssl{,.old}
mv /usr/include/openssl{,.old}
ln -s /usr/local/ssl/include/openssl /usr/include/openssl
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl

#*************************************************
#****************************************
【    3】          :
error while loading shared libraries: libcrypto.so.1.1: cannot open shared object file: No
  :
$ ln -s /usr/local/ssl/lib/libssl.so.1.1 /usr/lib/libssl.so.1.1      
$ ln -s /usr/local/ssl/lib/libcrypto.so.1.1 /usr/lib/libcrypto.so.1.1
$ chmod -R o+rx /usr/local/ssl  #         
$ openssl version
OpenSSL 1.1.1c  28 May 2019
#*************************************************
#************************************************************
三、ソースのアップグレードopenssh-80.p 1
#     openssh
[root@localhost ~]# mv /etc/ssh{,.old}
[root@localhost ~]# cd /usr/local/src 
[root@localhost src]# wget http://ftp5.usa.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.0p1.tar.gz   
[root@localhost src]# tar zxvf openssh-8.0p1.tar.gz
[root@localhost src]# cd openssh-8.0p1
[root@localhost openssh-8.0p1]# ./configure --prefix=/usr/local --with-zlib --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/ssl --with-md5-passwords --with-pam
[root@localhost openssh-8.0p1]# make
[root@localhost openssh-8.0p1]# make install

#      
[root@localhost ~]# cp /etc/ssh/sshd_config{,.backup`date "+%Y%m%d"`}
[root@localhost ~]# sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin\ yes/g' /etc/ssh/sshd_config
[root@localhost ~]# sed -i 's/#PasswordAuthentication yes/PasswordAuthentication\ yes/g' /etc/ssh/sshd_config
[root@localhost ~]# sed -i 's/#UseDNS no/UseDNS no/g' /etc/ssh/sshd_config

**************************************************************
【  】  /etc/ssh/sshd_config
PermitRootLogin yes  (    root ssh  ,   yes;     no)
PasswordAuthentication yes (        ,   yes;      )
Port 22 (    ssh 22  ,    ,     ssh       )
UseDNS no
        ,  UsePAM yes
  sftp    ,  /etc/ssh/sshd_config
#Subsystem      sftp    /usr/local/libexec/sftp-server
Subsystem sftp internal-sftp
********************************************************************

[root@localhost ~]# cp -p /usr/bin/ssh /usr/bin/ssh.`date "+%Y%m%d"`
[root@localhost ~]# cp -p /usr/sbin/sshd /usr/sbin/sshd.`date "+%Y%m%d"`
[root@localhost ~]# cp -p /usr/local/bin/ssh /usr/bin/ssh
[root@localhost ~]# cp -pf /usr/local/sbin/sshd /usr/sbin/sshd

[root@localhost ~]# chkconfig --add sshd
[root@localhost ~]# chkconfig sshd on
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl restart sshd.service
[root@localhost ~]# systemctl enable sshd
[root@localhost ~]# systemctl status sshd
[root@localhost ~]# ssh -V  #    
OpenSSH_8.0p1, OpenSSL 1.1.1c  28 May 2019
四、アップグレード後の関連処理
もしsshがアップグレードされたら、ssh遠隔登録ができ、tenteサービスをクローズする。
systemctl disable telnet.socket
systemctl disable xinetd
systemctl stop telnet.socket
systemctl stop xinetd

rpm -e telnet-server-0.17-64.el7.x86_64
rpm -e telnet-0.17-64.el7.x86_64
rpm -e xinetd-2.3.15-13.el7.x86_64
一時アカウントのtestを削除します。
[root@localhost ~]# userdel test
削除/etc/sudoers内のtestに関する配置:
[root@localhost ~]# visudo
#  test  ALL=(ALL)  NOPASSWD: ALL