2016/11/16(水)OpenSSLとOpenSSHのバージョンアップメモ

はてブ数 2016/11/16 07:40 計算機な日記::ボクと計算機つーさ

家のNASのOpenSSLとOpenSSHのバージョンを上げた。
2017.04.20 - 1.0.2k に更新

$ tar xf openssl-1.0.2k.tar.gz
$ cd openssl-1.0.2k
$ ./config --prefix=/opt/local/openssl/1.0.2k --openssldir=/etc/ssl zlib -fPIC enable-tlsext shared
$ make -j
$ make install
$ cd /opt/local/openssl/
$ rm *
$ ln -s 1.0.2k/* .
$ tar xf openssh-7.3p1.tar.gz
$ cd openssh-7.3p1
$ ./configure --prefix=/opt/local/openssh/7.3p1 \\
  --with-tcp-wrappers --with-md5-passwords \\
  --sysconfdir=/etc/config/ssh \\
  --with-zlib=/opt/local/zlib --with-ssl-dir=/opt/local/openssl \\
  --without-stackprotect
$ make -j
$ make install
$ cd /opt/local/openssh/
$ rm *
$ ln -s 7.3p1/* .

最初 OpenSSHのconfigureで、 configure: error: OpenSSL version header not found. とか言われて、
config.log を見ると、 ./conftest がSegmentation fault ってた。
「……?」と思いながらも、 --without-openssl で試すと、今度は sizeof(short int) を調べようとしてセグフォ。
そんな馬鹿なと思って、自前で conftest 作ってオプションを色々試してたところ、
gcc に -fstack-protector-all と -fPIEをセットで渡すと int main() { return 0; } ですらセグフォで死ぬことがわかって、
--without-stackprotectをつけたら行けた。

gcc のバージョンもあげたら直るのかな……。
その前にNASを脱却して適当なPCにして適当なLinuxディストリ入れた方がいいよなーと思うのであった。