CentOS5、またはRedhat5系においてOpenSSH6.2を入れるやで
仕事で某所望サーバーが某社の某セキュリティチェックを実行し、OpenSSHが脆弱性がある(CVE-2010-5107)という指摘をもらったので対応なきゃいけなかったんですが…。
大体の場合、セキュリティチェックなんてyumでパッチ当てておけば大体誤検知(検出の根拠がバージョン番号だったりするので)なんですが…
そう、奥様のサーバーはCentOS5だったのです!
正解
CentOS5系はyum提供が4.3どまりなのでどうしようもないです、死にましょう!(^^)
先月新規で出てきたサーバーなのに、生まれた瞬間から死んでましたよ。いまさら理由もなくCentOS5とか本当におかしい。
(当然ながら)上の方の人は誰もそこらへん気にしないですからね、本当につらいし、知識のない世の中を恨みましたがどうしようもないですね。
ちゃんと新しいOSをいれてくれるようなまと(略)お金g(略)
正解のかわりに
しかたないのでOpenSSH 6.2いれましょう
横道
まあ、皆さんなら当然のようにCVEなんたらとか渡されて、それの対策してやっていわれるとおもいますし、まあ渡される前に直してるのが当然なんでしょうが、残念ながら新しいサーバーがCentOS5とかででてくるような所ではムリがありますね。
まずこの番号でググって各種ディストロのエラッタを当たるのが正しい道なのですが、なにせ○○バージョン以上で、といわれてもディストロ側ではメジャーバージョン上がらない&謎のパッチ番号でぱっと見では修正したかどうかがわからないのでCVEを各ディストロがどう対応したか(または、これどうでもいい脆弱性だし放置しよう、と結論したか)を調べる必要がありますね。
結論からいって、
http://www.cvedetails.com/cve/CVE-2010-5107/
このようなサイトが(他にもあるけど)便利であり、各ディストロのエラッタページにジャンプするのが一番である。
エラッタページでアップデートを知る
CentOSだと、REDHATのトラッカでしらべるわけだが、まあ大抵は治ってるのでそのバージョンにyumで上がっているか確認するだけの簡単なお仕事ですね。
同時に指示いただいたAprのバグなどはまあ治ってたので「ディストロのパッチで処理されてたやよ!」とレスって終わりになります。
ない場合、または放棄されている場合
残念ながらOpenSSHの上の脆弱性は、RHによって危険度LOWと判定され、パッチがでてない。
ということで別途で入れる必要がありますね…。
野良レポをつかう
野良ビルドの前に、野良レポという手もあります。remiとかね、ここでは細かく書かない、なかったので。
本題、CentOS5にスルニョーとOpenSSH6.2をいれるには?
wget 'http://mirror.esc7.net/pub/OpenBSD/OpenSSH/portable/openssh-6.2p2.tar.gz'
tar xvzf openssh-6.2p2.tar.gz
cp ./openssh-6.2p2/contrib/redhat/openssh.spec /usr/src/redhat/SPECS/
cp openssh-6.2p2.tar.gz /usr/src/redhat/SOURCES/cd /usr/src/redhat/SPECS
#以下の行、なぜ置換してるのかみなさん各自で意味をしらべましょう
perl -i.bak -pe 's/^(%define no_(gnome|x11)_askpass)\s+0$/$1 1/' openssh.spec
rpmbuild -bb openssh.speccd /usr/src/redhat/RPMS/x86_64/
# rpm -qa |grep askpass
# もしaskpassがあれば rpm -e openssh-askpass 的な
rpm -Uvh openssh-*.rpm
ssh -v
#祈りながら
/etc/init.d/sshd restart
#変に設定がかわってないか
diff /etc/ssh/sshd_config /etc/ssh/sshd_config.rpmnew
完了ですね、よかったですね。
正直これ一発で入ったので、拍子抜け感ありましたね。
はー、次のサーバーはちゃんと新しいOSで出てくるかなあ…。あの業者ちょっと前までOSに64bit選択できなかったもんなー…。