bind の -u オプション


03/12/24 に内向き DNS サーバを構築した。 named を起動する際、
namedを起動中: named: -u not supported on Linux kernels older than 2.3.99-pre3 or 2.2.18 when using threads
となった。
/etc/rc.d/init.d/named をごにょごにょして 立ち上げるようにはしたが、、、、
と書いているが、 この「”ごにょごにょ”を教えてください」と何度もメールをいただいた。

「XXしました」ってお教えしてもいいのだが、 その意義、危険性を理解せずに同じ方法を取られても困るので、 私なりに解説することにする。


まず、-u not supported といわれているのだから、 -u オプションが原因でエラーになるのは自明でしょう。
man named するなどして、 -u オプションと、関連する-t オプションあたりを調べてください。

-u オプションも -t オプションもつけずに named を起動していると、named からは、root 権限で、 全ファイルシステムがアクセスできる状態になっています。
named に何らかのセキュリティホールがあって、乗っ取られてしまった場合、 すべてのファイルシステムにアクセスされてしまうことになります。
万が一に備えるため、

  • 権限を制限(root 以外に変更)したり
  • アクセスできる範囲を制限(chroot )したり
    して、危険が及ぶ範囲をコントロールできるようになっているわけです。

    さて、named を動作させる方法ですが、 一番単純なのは、-u オプションを取ってしまうことです。
    でも、これでは上記の通りの危険性が残ります。
    あとは、どの範囲 (安全なネットワーク/危険なネットワーク) に公開するかで、別途対策を取る必要があるでしょう。

    そもそも信用できないネットワークに LinkStation/玄箱 を つないだ時点でアウト!っていう話もあります。
    カーネルは 2.4.17 だし、 ホゲのハゲはアチャーだし(意味不明)。


    LinkStation/玄箱 をハックしよう → write_ok,write_ng

    Copyright (C) 2004 Yasunari Yamashita. All Rights Reserved.
    yasunari @ yamasita.jp
    山下康成京都府向日市