OpenSSL + OpenSSH

OpenSSL + OpenSSH環境の備忘録。
環境: CentOS 5.6(32bit)


OpenSSLを新しいのにしたいけど、パッケージのは古い。
かといって、"yum remove openssl"をやると謎の依存関係により振り出しに戻ってしまう。
どうせopensslとopensshは削除しないのだから既存のものに上書きして死ぬまで使えばいい、ということで。


OpenSSL

最新の1.0.0dを導入する。
その前に設定するために必要なデータを集める

# whereis openssl
openssl: /usr/bin/openssl /usr/lib/openssl /usr/share/man/man1/openssl.1ssl.gz

パッケージのOpenSSLはおそらく --prefix=/usr で導入されたことがわかる

# openssl version -a
OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008
built on: Sun Mar 6 20:42:33 EST 2011
platform: linux-elf
options: bn(64,32) md2(int) rc4(idx,int) des(ptr,risc1,16,long) blowfish(idx)
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DKRB5_MIT -I/usr/kerberos/include -DL_ENDIAN -DTERMIO -Wall -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=generic -fasynchronous-unwind-tables -Wa,--noexecstack -DOPENSSL_USE_NEW_FUNCTIONS -fno-strict-aliasing -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DMD5_ASM -DRMD160_ASM -DAES_ASM
OPENSSLDIR: "/etc/pki/tls"
engines: padlock dynamic

対象プラットフォームは linux-elf, OPENSSLDIRは /etc/pki/tls らしい
sharedを入れておかないと、いろいろ不都合があるらしいので入れておく。


ダウンロードとビルドとインストール

wget http://www.openssl.org/source/openssl-1.0.0d.tar.gz
tar xzvf openssl-1.0.0d.tar.gz
cd openssl-1.0.0d

./Configure linux-elf shared --prefix=/usr --openssldir=/etc/pki/tls 

make 
make test
make install

ヘッダファイルのコピー

cp -R include/openssl /usr/include

OpenSSH

OpenSSHの導入状態を知る。

# whereis ssh
ssh: /usr/bin/ssh /etc/ssh /usr/share/man/man1/ssh.1 /usr/share/man/man1/ssh.1.gz

/etc/sshの中身を見てみたら設定ファイルっぽいのがたくさんあったので、
--prefix=/usr --sysconfdir=/etcだろう。
間違えていました。 --prefix=/usr --sysconfdir=/etc/ssh でした。
RPMパッケージから得られそうだがよくわかんないのでこのまますすめる。
tcp_wrappersは、オプションで指定する場合に必要。後は必須っぽい。

yum install -y tcp_wrappers
yum install -y libX11-devel pkgconfig krb5-devel zlib-devel pam-devel

wget http://ftp.jaist.ac.jp/pub/OpenBSD/OpenSSH/portable/openssh-5.8p2.tar.gz
tar xzvf openssh-5.8p2.tar.gz
cd openssh-5.8p2

./configure --prefix=/usr --sysconfdir=/etc/ssh  --with-md5-passwords --with-tcp-wrappers

make
make install


飯を作り食べながら作業してたから、記入漏れがありそう・・・。
rpmbuildが簡単らしいのだけど、僕には難しすぎました。