Asteriskのパーミッション設定
Asteriskをroot起動するのは一番、簡単な方法ですがセキュリティの観点からは、あまり好ましくありません。そこでAsteriskを特定のUID/GIDで起動する方法について解説します。
目次
ユーザ/グループの作成
ディストリビューションにあった方法で、ユーザとグループを作成してください。ここでは、それぞれの名前をいずれも asterisk と仮定して説明します。
Zaptelの調整
AsteriskがZaptelデバイスにアクセスするためユーザ/グループがasteriskで/dev/zap配下にアクセスできなくてはいけません。Zaptel udevのページを参照してください。
udevを使用していない場合には単純に以下の方法で/dev/zap下のパーミッションを変更しておきます。
# chown -R asterisk:asterisk /dev/zap
DAHDIの調整
DAHDIのパーミッション調整はDAHDIインストールのページを見てください。
ディレクトリ/ファイルのパーミッション
以下のようにして変更しておきます。
# chown -R asterisk:asterisk /var/lib/asterisk # chown -R asterisk:asterisk /var/log/asterisk # chown -R asterisk:asterisk /var/spool/asterisk # chown -R asterisk:asterisk /etc/asterisk # chmod -R u=rwX,g=rX,o= /var/lib/asterisk # chmod -R u=rwX,g=rX,o= /var/log/asterisk # chmod -R u=rwX,g=rX,o= /var/spool/asterisk # chmod -R u=rwX,g=rX,o= /etc/asterisk
Asteriskの起動
起動時にオプションをつけて行います。以下のようにします。
asterisk -U asterisk -G asterisk
-Uがユーザ名、-Gがグループ名です。もし、フォアグラウンド起動する場合には以下のようにします。
asterisk -U asterisk -G asterisk -vvvc
ディレクトリのパーミッションを変更した後には間違えてroot起動しないように注意してください。起動してしまうと/var/log/asterisk下のファイルのオーナがrootになってしまったりと困った事が起こります。その際にはパーミッション設定をやり直しましょう。
/var/runディレクトリの扱い
asterisk:asterisk で動作させる場合、/var/run ディレクトリの書き込み権が問題になる場合があります。この場合には以下のようにして対処します。
- /var/run/asteriskを作ります
mkdir /var/run/asterisk
- ディレクトリのパーミッションを asterisk に変えます
chwon asterisk:asterisk /var/run/asterisk
- Asteriskの設定ファイルを修正します。
/etc/asterisk/asterisk.confを修正し、以下のようにastrundirを変えます。
astrundir => /var/run/asterisk
CLI
CLIで接続する場合には、rootで繋ぎに行っても問題はありません。