- PR -

DNS(bind)のパーミッションについて

1
投稿者投稿内容
miura
会議室デビュー日: 2004/12/27
投稿数: 19
投稿日時: 2005-09-02 10:54
DNS(bind)のパーミッションについて、質問があります。

bindのバージョンは9です。

今まで DNS は、rootでログインし、 /usr/sbin/named -u doma として、ログインできないシェル、/bin/falseを与えたユーザdoma をつくり、
それで実行してました。しかし、rootでログインするのは
やめて、一般ユーザを作り、それで named を走らせたいと思います。
その際に、/usr/sbin/namedと/var/named/chroot/以下の
パーミッションはどうしたらよいのかと思っています。
一般ユーザがnamedを実行できるようにするのか、それともユーザdomaがnamedを実行できるようにするのかどちらなのでしょうか?
また、domaはシェルが/bin/falseなのでログインは出来ないので、所有者やグループ、又は他人扱いになるのでしょうか?ログインできないユーザの取り扱い方がよくわからないのです。
よろしくお願いいたします。


[ メッセージ編集済み 編集者: miura 編集日時 2005-09-02 15:29 ]

[ メッセージ編集済み 編集者: miura 編集日時 2005-09-02 15:30 ]
angel
ぬし
会議室デビュー日: 2005/03/17
投稿数: 711
投稿日時: 2005-09-02 11:29
こんにちは。

DNSで一般に使用する UDP/TCP 53番ポートは特権ポートなので、root でないと使用できません。( root としてポートを bind してから、一般ユーザ権限に切り替える … ip(7)参照 )
ということで、root で bind を起動するのは、至極妥当だと思います。

POSIXケイパビリティ ( capability ) を駆使すれば、良い方法もあるかもしれませんが…、今のところ整備・体系化されているノウハウは存じませんね。

以上、ご参考まで。

[ メッセージ編集済み 編集者: angel 編集日時 2005-09-02 11:39 ]
try
常連さん
会議室デビュー日: 2004/10/22
投稿数: 38
お住まい・勤務地: 神奈川/東京
投稿日時: 2005-09-02 11:33
いまいち状況が読み込めないのですが、

一般ユーザhogeでログイン後、rootユーザにならずに、BIND用のユーザdomaの権限でnamedを起動する。

といったことをやりたいのでしょうか?
やったことが無いので何ともいえませんが、参考までに・・・。

named自体は特権ポートを使用するからrootユーザで起動する必要があると思います。
なので上記場合はsudoを使用して一時的に権限を与える必要があるかと。


以下はちょっとツッコミを・・・。
/bin/bash はログインさせることが可能なシェルです。
/sbin/nologin や /bin/false がログインできないシェルと認識していますが・・・。


ログインできないユーザでも/etc/passwdにあれば所有権を与えることが出来ます。
なのでプロセスがログインできないユーザ権限で動いていれば、一般的なパーミッション設定をすれば大丈夫です。
progman
大ベテラン
会議室デビュー日: 2005/06/08
投稿数: 227
投稿日時: 2005-09-02 13:28
bindではないですが、昔同じようなことしました。

1 以下のようなCのプログラムをつくる
  1)setuid(0); する。
2)特権ユーザで実行したいシェルを起動する。

2 1で作成した実行ファイルの
  1)オーナーをrootとする。
2)オーナーのステイッキービットをオンにする。

これで一般ユーザから1で作成したプログラム経由で実行できるはずです。

miura
会議室デビュー日: 2004/12/27
投稿数: 19
投稿日時: 2005-09-02 15:27
angelさん
毎度、ありがとうございます。root で bind を起動する必要があるということが分かり助かりました。sudoを使用してやろうと思います。

tryさん
「一般ユーザhogeでログイン後、rootユーザにならずに、BIND用のユーザdomaの権限でnamedを起動する。」これをやりたいのです。sudo でやろうと思います。
ログインできないシェルは、/bin/false でした。スイマセン。

progmanさん
とりあえずは、sudo でやろうと思います。参考にさせていただきます。ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)