「Asterisk pjsip ACL」の版間の差分
提供: VoIP-Info.jp
(→既知の問題点) |
(→一番簡単な方法) |
||
50行目: | 50行目: | ||
この方法の場合にはCLIからmodule reload res_pjsip.soだけで反映されます。<br> | この方法の場合にはCLIからmodule reload res_pjsip.soだけで反映されます。<br> | ||
どのみちこのACLを抜けてこないと各endpointなどのACLは参照されません。<br> | どのみちこのACLを抜けてこないと各endpointなどのACLは参照されません。<br> | ||
+ | ==全許可しておき各endpointでACLを定義する== | ||
+ | pjsip.confにはACLを書かない。<br> | ||
+ | acl.confに以下のようなものを書く。<br> | ||
+ | [myphones] | ||
+ | type = acl | ||
+ | deny = 0.0.0.0/0.0.0.0 | ||
+ | permit = 192.168.1.0/24 | ||
+ | endpoint設定に以下のように書く | ||
+ | acl = myphones | ||
+ | この場合、Asteriskを再起動しないとACLの情報が更新されません。 |
2018年10月29日 (月) 12:20時点における版
AsteriskのPjSIPでACLを使用する場合の挙動
ファイル
- pjsip.conf
- type=aclで定義されるACL
- alc.conf
- Asteriskの名前付きACL
- '[ ]'で定義されるセクション名がACLの名前
- PjSIPの各所(endpointなど)から'acl=名前'で参照される
pjsip.conf
- グローバルなACLとして動作する
- 他で設定されたACL(endpointなど)よりも優先使用される(BASELINE)
- 何も設定されていない場合には『全許可』(ACLなし)
全拒否のACL
[acl] type = acl deny = 0.0.0.0/0.0.0.0
192.168.1.0/24だけ許可するACL
[acl] type = acl deny = 0.0.0.0/0.0.0.0 permit = 192.168.1.0/24
acl.confの名前付ACLをACLとして使用する場合
[acl] type = acl acl = inhouse-phones
acl.conf
Asteriskの名前付きACL
[inhouse-phones] deny=0.0.0.0/0.0.0.0 permit=192.168.1.0/24
セクション名がACLの名前
既知の問題点
たぶん現時点(Asterisk 16.0.0)の仕様だと思われますが名前付きACLをendpoint等に定義した場合、CLIからリロードされません。
- pjsip_wizard.confやpjsip.confのendpoint設定でendpoint/acl = myphonesあるいはacl = myphonesを定義する
- Asteriskを再起動して有効にする(pjsip show endpoint なんとか)で確認
- acl.confを編集する
- CLIでmodule reload acl を実行する
- CLIでacl show myphones を実行すると正しく変更されている
- ところが挙動は正しくならない
- 解決するにはAsteriskを再起動するしかない
一番簡単な方法
グローバルのACLだけで定義します。
pjsip.confの中で以下の例のように書くだけです。
[acl] type = acl deny = 0.0.0.0/0.0.0.0 permit = 192.168.1.0/24 permit = 許可したいIPアドレス
この方法の場合にはCLIからmodule reload res_pjsip.soだけで反映されます。
どのみちこのACLを抜けてこないと各endpointなどのACLは参照されません。
全許可しておき各endpointでACLを定義する
pjsip.confにはACLを書かない。
acl.confに以下のようなものを書く。
[myphones] type = acl deny = 0.0.0.0/0.0.0.0 permit = 192.168.1.0/24
endpoint設定に以下のように書く
acl = myphones
この場合、Asteriskを再起動しないとACLの情報が更新されません。