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パッケージをアンインストールする必要はありません。
二、アップグレードopenssh(以下のアップグレード操作前に他のサーバーtelnetで登録してください。opensshのアップグレードに失敗して接続が中断されないように!!)
2.1依存パッケージのインストール
もしsshがアップグレードされたら、ssh遠隔登録ができ、tenteサービスをクローズする。
一、準備作業:
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