「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)の仕様だと思われますが名前付きACLをpjsip_wizard.confで定義した場合、CLIからリロードされません。
+
たぶん現時点(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の情報が更新されません。