SVX日記
2014-04-08(Tue) CVE-2014-0160 The Heartbleed Bug Killed
我が艦これサーバがモロにヒットであった。まだ一般公開しているサーバではないが、SSLポートは開けていることだし、パッケージリリースを待たずに、自ら対処することにする。
/root # yumdownloader --source openssl
/root # rpm -ivh openssl-1.0.1e-37.fc20.src.rpm
/root # cd rpmbuild/SPECS/
/root/rpmbuild/SPECS # vi openssl.spec
/root/rpmbuild/SPECS # diff openssl.spec.org openssl.spec
24c24
< Release: 37%{?dist}
---
> Release: 38%{?dist}
268c268,269
< --with-krb5-dir=/usr shared ${sslarch} %{?!nofips:fips}
---
> --with-krb5-dir=/usr shared ${sslarch} %{?!nofips:fips} \
> -DOPENSSL_NO_HEARTBEATS
/root/rpmbuild/SPECS # yum install rpm-build
/root/rpmbuild/SPECS # yum install krb5-devel zlib-devel
/root/rpmbuild/SPECS # yum install gcc
/root/rpmbuild/SPECS # rpmbuild -ba openssl.spec
/root/rpmbuild/SPECS # cd ../RPMS/x86_64/
/root/rpmbuild/RPMS/x86_64 # rpm -Fvh *
上記は、Fedora20での実施例だが、Fedora18でもいけるはず。ちなみに、もひとつ運用しているサーバはFedora16なので、対象外だった。しっかし、GIGAZINEのこの記事、間違っちゃあいないが、ワザワザ誤解を招くようなタイトル付けてんじゃねーよ。
アップデートしてから、apacheを再起動する前に、http://filippo.io/Heartbleed/でチェックしてみた(神経質な人はこのサイトすら疑うべきだが)。
案の定、アウト。しかし、最初に試したときは「not affected」の判定だった。サイトトップにも書いてあるが、どうも負荷によってはタイムアウトが起きて、セーフの判定になるらしい。アカンやん。ま、あまり当てにしないほうがいいようだ。
しかし「Heartbleed」というネーミングといい、破けた心臓のアイコンといい、ウィットを感じるなぁ……と、なにげに「DragonBreed」で遊びたくなってしまったではないか……カモン、バハムート!
2014-04-16(Wed) ruby-kakasiを再召喚
主に、Ruby2.0対応とFedora20対応なのだが、さほど大きな書き直しが必要なわけでもなく、日々、実用に供しながら、楽しく機能追加、バグ取りを続けている。オイラの仕事の時間の半分以上がメールの読み書きであるから、少しでも効率よく、気分よくメール操作できることは、人生の最重要テーマのひとつといっても過言ではないのだ。もはやライフワークと断言できる。
ところが、改めてrubyからkakasiを呼び出すライブラリを導入しようと思ったら、いつの間にか、ウェブ上のどこにも見当たらない……こっ、困る。メールの件名をローマ字でインクリメンタルサーチする(いわゆるmigemoっぽい)機能が使えない。致命的。死ぬ。いますぐ。
慌てて自宅サーバの中を探しまくったらどうにか出てきた……が、Ruby2.0で動くのか? ……そのままではコンパイルが通らん。長らくRubyを使ってきたが、バイナリライブラリの自作には手を出したことがないんだよな。
/root # tar xvfz kakasi-020928.tar.gz
/root # cd kakasi-020928/
/root/kakasi-020928 # ruby extconf.rb
mkmf.rb can't find header files for ruby at /usr/share/include/ruby.h
/root/kakasi-020928 # yum install ruby-devel
/root/kakasi-020928 # ruby extconf.rb
/root/kakasi-020928 # yum install kakasi kakasi-libs kakasi-dict kakasi-devel
/root/kakasi-020928 # make
kakasi.c:31:21: エラー: ‘struct RString’ は ‘len’ という名前のメンバを持っていません
kakasi.c:37:46: エラー: ‘struct RString’ は ‘ptr’ という名前のメンバを持っていません
……上記のエラーが大量に出てアセる……
/root/kakasi-020928 # mv kakasi.c kakasi.c.org
/root/kakasi-020928 # cat kakasi.c.org | sed "s/RSTRING\(([^)]*)\)->len/RSTRING_LEN\\1/" | sed "s/RSTRING\(([^)]*)\)->ptr/RSTRING_PTR\\1/" > kakasi.c
……が、単にRuby2.0で書き方が変わっただけみたい。/usr/include/ruby/ruby.hのマクロ定義を見て、表現を単純に置換する
/root/kakasi-020928 # make
……通った
/root/kakasi-020928 # ruby test.rb
2002-09-28
KAKASHI nanodesu
……動いた
/root/kakasi-020928 # mkdir -p /usr/local/lib64/ruby/site_ruby
/root/kakasi-020928 # mv kakasi.so /usr/local/lib64/ruby/site_ruby
……インストールして完了
元のruby-kakasiパッケージを転載しておく。
2014-04-17(Thu) 桜とソースと私と
帰り道には、桜並木がある。オイラは、やや少女趣味なので、ピンク色が好きなこともあり、サクラが大好き。特に、花吹雪の中を歩くのが好きだ。しかし、この季節、花粉症が出ることもあり、ワザワザ花吹雪を狙って出かけることはない。
が、まさに今日、最後の散りぎわながら、真昼にほどよい花吹雪の中を通り抜けることができた。なんだろねぇ、いいよねぇ……歳をとったのかねぇ……と、ふと、庭にマイ桜の木があったらなぁ、と思い描いた。というか、日本人なら、こういう時は盆栽なのか? というか、さすがに桜の盆栽なんてないのか? と思ったら、あるのね。
……って、あれ? 盆栽とプログラミングって、もしかして同じかも? 毎日のように、手元のカワイイ子の枝ぶりを眺めては、ときどき少し修正したりして、気長にその成長を楽しむ。もし、飽きてしまったら、そこで終わり。
Linuxカーネルの巨木(ソースツリー)にくらべれば、我がmaveなどは、まさに盆栽レベルだが。これでいいのだ。だって、盆栽なんだもん。
2014-04-26(Sat) 「ダラダラと仕事する」という提督の決断
ゴールデンウィークを目前にしたこの時期、非常に憂鬱な仕事がある。ヤダヤダと思うと、どうしても後回しになってしまい、終いには後ろが詰まって、土曜日である今日、やることになってしまった。といっても、xrdpのおかげで、自宅で、なのだが。
オイラは、普段の仕事内容は、さほど苦にも思わず、割とサクサクこなせているのだが、この仕事はウンウンうなって考えても遅々として前に進まない。うーむ、どうしたらいいんだ。なんかコツでもあるんかいな。向いていないといえばそれまでなのだろうけど。
考えてもすぐに行き詰まるので、ついつい余計なニュースサイトとかを見てしまう……が、そんなことをしていると、ふと思いついて、少し前に進む……の繰り返し。ん? となると、この仕事は、あらかじめ時間に余裕をみて、ダラダラとやるのがよいのではないか。
■ とおりすがり [10周年おめでとうございます。]
■ 横須賀のアランプロスト [土曜日に海自でカレーグランプリというのがあって 2万人くらいキタらいしいッス]