BIND-9.8.1 + OpenSSL-1.0.0 + chrootの問題
- OpenSSL-1.0.0を使用し, かつchroot環境下で使用する場合には, chrootディレクトリ以下にOpenSSLのengines/libgost.so が必要になった.
- initializing DST: openssl failure というエラーがsyslogに記録される.
- chroot後にライブラリがリンクされる.
- libgost.soはOpenSSL-0.9.8のlib/enginesには存在しない.
- libgost.soを適切なディレクトリにコピーするか,enginesディレクトリをまるごとbind mount (Solarisの場合 zone fs か lofs)でも動作する.
- bind mountの場合は/etc/fstabに以下のようなエントリを追加
- Solarisではlibgost.so の他に /lib/md5.so /lib/libmp.so もchroot下に必要.
- trussをとると, 既にリンクしたライブラリをもう一度探しに行って失敗しているため見づらいが, chroot後リンク失敗したライブラリの中に今までリンクしていないものがある.
- コンパイル時 configure の後にconfig.hの HAVE_OPENSSL_GOST=1 を書き換えてなかったことにする方法.
- https://lists.isc.org/pipermail/bind-users/2011-May/083753.html
- configure 内に --with-gost というパラメータを取るらしき判定がある.
- configure --help には --with-gost はない.
- named.confの directory で指定されているディレクトリは, 相対ファイル名の起点となるだけでなく, 起動時やkill -HUP時に tmp-ランダム文字列 という一時ファイルが作成される場所になっているらしい.