「Asterisk pjsip ACL」の版間の差分
提供: VoIP-Info.jp
(→pjsip.conf) |
|||
(同じ利用者による、間の4版が非表示) | |||
1行目: | 1行目: | ||
+ | [[カテゴリ:Asterisk]] | ||
+ | [[カテゴリ:Pjsip]] | ||
AsteriskのPjSIPでACLを使用する場合の挙動 | AsteriskのPjSIPでACLを使用する場合の挙動 | ||
==ファイル== | ==ファイル== | ||
31行目: | 33行目: | ||
セクション名がACLの名前 | セクション名がACLの名前 | ||
==既知の問題点== | ==既知の問題点== | ||
− | たぶん現時点(Asterisk 16.0.0) | + | たぶん現時点(Asterisk 16.0.0)の仕様だと思われますが名前付きACLをendpoint等に定義した場合、CLIからリロードされません。 |
− | :pjsip_wizard.confのendpoint設定でendpoint/acl = myphonesを定義する | + | :pjsip_wizard.confやpjsip.confのendpoint設定でendpoint/acl = myphonesあるいはacl = myphonesを定義する |
:Asteriskを再起動して有効にする(pjsip show endpoint なんとか)で確認 | :Asteriskを再起動して有効にする(pjsip show endpoint なんとか)で確認 | ||
:acl.confを編集する | :acl.confを編集する | ||
39行目: | 41行目: | ||
::ところが挙動は正しくならない | ::ところが挙動は正しくならない | ||
:解決するにはAsteriskを再起動するしかない | :解決するにはAsteriskを再起動するしかない | ||
+ | |||
==一番簡単な方法== | ==一番簡単な方法== | ||
グローバルのACLだけで定義します。<br> | グローバルのACLだけで定義します。<br> | ||
47行目: | 50行目: | ||
permit = 192.168.1.0/24 | permit = 192.168.1.0/24 | ||
permit = 許可したいIPアドレス | permit = 許可したいIPアドレス | ||
+ | この方法の場合にはCLIからmodule reload res_pjsip.soだけで反映されます。<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:31時点における最新版
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の情報が更新されません。