LoginSignup
5
6

More than 5 years have passed since last update.

openssl を入れ替えようとしたら ssh が死んで通信ができなくなった話

Last updated at Posted at 2014-06-09

サマリー

やろうとしたこと

admin1, admin2 サーバの openssl の入れ替えを yum で行おうとしたらyumのパッケージが古かった。

しかたなくソースから入れよう

やってしまったこと

srcをとってきてからrpmにしてっていう手順を調べていたら
webで丁度いい例を発見。

盲目的にコマンド連打。

opensslのバージョンアップ成功!確認もOK!

安心して同じ作業を別のサーバでやろうとして
rpm を admin2 に scp しようとしたら
できない。。

※このサーバはsshが死ぬと物理的にそこまでいかないといけない。
そしてだいぶ遠くにある。。

なんとかした方法

rsync プロトコルで通信

openssl のバージョンを元に戻すことに成功

詳細

失敗に至るまで

openssl を入れ替えるぞー
[root@admin01 src]# wget https://www.openssl.org/source/openssl-0.9.8za.tar.gz
[root@admin01 src]# yum install rpm-build -y
[root@admin01 src]# rpmbuild -ta openssl-0.9.8za.tar.gz
[root@admin01 src]# rpm -Uvh --nodeps /usr/src/redhat/RPMS/x86_64/*.rpm
準備中... ########################################### [100%]
1:openssl ########################################### [ 33%]
2:openssl-devel ########################################### [ 67%]
3:openssl-doc ########################################### [100%]

入れ替え確認
[root@admin01 src]# openssl version
OpenSSL 0.9.8za 5 Jun 2014

よし入れ替わった!

apache が再起動できない。
[root@admin01 src]# /usr/local/apache2/bin/apachectl restart
/usr/local/apache2/bin/httpd: error while loading shared libraries: libssl.so.6: cannot open shared object file: No such file or directory

wget もできない。
[root@admin01 src]# wget yahoo.co.jp
wget: error while loading shared libraries: libssl.so.6: cannot open shared object file: No such file or directory

yum できない
[root@admin01 src]# yum
Traceback (most recent call last):
File "/usr/bin/yum", line 4, in ?
import yum
File "/usr/lib/python2.4/site-packages/yum/__init__.py", line 50, in ?
import config
File "/usr/lib/python2.4/site-packages/yum/config.py", line 27, in ?
from parser import ConfigPreProcessor
File "/usr/lib/python2.4/site-packages/yum/parser.py", line 3, in ?
import urlgrabber
File "/usr/lib/python2.4/site-packages/urlgrabber/__init__.py", line 53, in ?
from grabber import urlgrab, urlopen, urlread
File "/usr/lib/python2.4/site-packages/urlgrabber/grabber.py", line 412, in ?
import keepalive
File "/usr/lib/python2.4/site-packages/urlgrabber/keepalive.py", line 339, in ?
class HTTPSHandler(KeepAliveHandler, urllib2.HTTPSHandler):
AttributeError: 'module' object has no attribute 'HTTPSHandler'

よく見たら依存関係無視オプションがついていた!!!
rpm -Uvh --nodeps /usr/src/redhat/RPMS/x86_64/*.rpm

完全に孤立した。。

解決策

サーバ自体は死んでいない。
sshができないだけ。
opensslだけ元のバージョンに戻してやればOKのはず。
だがsshができないと大体の通信コマンドが死んでしまう。。

そこで、
rsync プロトコル!
隣のサーバからモジュールを渡す!
[root@admin01 src]# vi /etc/rsyncd.conf
uid=root
gid=root
[export]
path=/tmp
comment= export path
read only=false
[root@admin01 src]# rsync --daemon -v --config=/etc/rsyncd.conf

admin2 にてopnesslの思しきバージョンを取得。
[root@admin02 src]# wget http://ftp.riken.jp/Linux/centos/5/updates/x86_64/RPMS/openssl-0.9.8e-27.el5_10.3.x86_64.rpm
[root@admin02 src]# wget http://ftp.riken.jp/Linux/centos/5/updates/x86_64/RPMS/openssl-devel-0.9.8e-27.el5_10.3.x86_64.rpm

admin2 から admin1 へ rsync !
[root@admin02 src]# rsync openssl-*.rpm rsync://admin1/export/

取得確認!
[root@admin01 src]# ll /tmp/openssl*
openssl-0.9.8e-27.el5_10.3.x86_64.rpm
openssl-devel-0.9.8e-27.el5_10.3.x86_64.rpm

rpm でバージョンダウン!
[root@admin01 src]# rpm -Uhv --oldpackage /tmp/openssl-0.9.8e-27.el5_10.3.x86_64.rpm
準備中... ########################################### [100%]
1:openssl ########################################### [100%]
[root@admin01 src]# rpm -Uhv --oldpackage /tmp/openssl-devel-0.9.8e-27.el5_10.3.x86_64.rpm
準備中... ########################################### [100%]
1:openssl-devel ########################################### [100%]

さっきダメだった wget を再度確認する。
[root@admin01 src]# wget yahoo.co.jp
--2014-06-06 17:24:17-- http://yahoo.co.jp/
10.105.128.16:8080 に接続しています... 接続しました。
Proxy による接続要求を送信しました、応答を待っています... 301 Moved Permanently
場所: http://www.yahoo.co.jp/ [続く]
--2014-06-06 17:24:17-- http://www.yahoo.co.jp/
10.105.128.16:8080 に接続しています... 接続しました。
Proxy による接続要求を送信しました、応答を待っています... 200 OK
長さ: 特定できません [text/html]
index.html に保存中
[ <=>
2014-06-06 17:24:17 (4.81 MB/s) - `index.html' へ保存終了 [22276]

wget が生き返った!!!

あとは openssl-0.9.8za を別ディレクトリにインストールし、apache2.2 を再コンパイル!
1時間ほどごにょごにょやって apache2.2 + openssl の入れ替え完了!

オチ

[2014/06/06 18:42:54] 松井: 完了しました!
[2014/06/06 19:21:06] おりたさん : ありがとうございます!
[2014/06/06 19:29:05] おりたさん : ちなみに松井さんはyum updateでよかったらしいです
https://rhn.redhat.com/errata/RHSA-2014-0624.html
[2014/06/06 19:30:17] おりたさん: openssl-0.9.8e-27.el5_10.3.x86_64.rpm
これCVE-2014-0224対応済みのパッケージ

5
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6