ca6906d4b187525a3add715490e4c8469d7903d1
[asterisk/asterisk.git] / configs / acl.conf.sample
1 ;
2 ; Named Access Control Lists (ACLs)
3 ;
4 ; A convenient way to share acl definitions
5 ;
6 ; This configuration file is read on startup
7 ;
8 ; CLI Commands
9 ; -----------------------------------------------------------
10 ;   acl show                         Show all named ACLs configured
11 ;   acl show <name>                  Show contents of a particular named ACL
12 ;   reload acl                       Reload configuration file
13 ;
14 ;[general]
15 ;systemname=asterisksystem1          ; If a system name is specified, realtime
16 ;                                    ; ACLs will only be retrieved if they have
17 ;                                    ; a systemname field that matches this value.
18 ;                                    ; If it's less blank, the field is ignored.
19 ;
20 ; Any configuration that uses ACLs which has been made to be able to use named
21 ; ACLs will specify a named ACL with the 'acl' option in its configuration in
22 ; a similar fashion to the usual 'permit' and 'deny' options. Example:
23 ; acl=my_named_acl
24 ;
25 ; Multiple named ACLs can be applied by either comma separating the arguments or
26 ; just by adding additional ACL lines. Example:
27 ; acl=my_named_acl
28 ; acl=my_named_acl2
29 ;
30 ; or
31 ;
32 ; acl=my_named_acl,my_named_acl2
33 ;
34 ; ACLs specified by name are evaluated independently from the ACL specified via
35 ; permit/deny. In order for an address to pass a given ACL, it must pass both
36 ; the ACL specified by permit/deny for a given item as well as any named ACLs
37 ; that were specified.
38 ;
39 ;[example_named_acl1]
40 ;deny=0.0.0.0/0.0.0.0
41 ;permit=209.16.236.0
42 ;permit=209.16.236.1
43 ;
44 ;[example_named_acl2]
45 ;permit=0.0.0.0/0.0.0.0
46 ;deny=10.24.20.171
47 ;deny=10.24.20.103
48 ;deny=209.16.236.1
49 ;
50 ; example_named_acl1 above shows an example of whitelisting. When whitelisting, the
51 ; named ACLs should follow a deny that blocks everything (like deny=0.0.0.0/0.0.0.0)
52 ; The following example explains how combining the ACLs works:
53 ; <in another configuration>
54 ; [example_item_with_acl]
55 ; acl=example_named_acl1
56 ; acl=example_named_acl2
57 ;
58 ; Suppose 209.16.236.0 tries to communicate and the ACL for that example is applied to it...
59 ; First, example_named_acl1 is evaluated. The address is allowed by that ACL.
60 ; Next, example_named_acl2 is evaluated. The address isn't blocked by example_named_acl2
61 ; either, so it passes.
62 ;
63 ; Suppose instead 209.16.236.1 tries to communicate and the same ACL is applied.
64 ; First, example_named_acl1 is evaluated and the address is allowed.
65 ; However, it is blocked by example_named_acl2, so the address is blocked from the combined
66 ; ACL.
67 ;
68 ; Similarly, the permits/denies in specific configurations that make up an ACL definition
69 ; are also treated as a separate ACL for evaluation. So if we change the example above to:
70 ; <in another configuration>
71 ; [example_item_with_acl]
72 ; acl=example_named_acl1
73 ; acl=example_named_acl2
74 ; deny=209.16.236.0
75 ;
76 ; Then 209.16.236.0 will be rejected by the non-named component of the combined ACL even
77 ; though it passes the two named components.
78 ;
79 ;
80 ; Named ACLs can use ipv6 addresses just like normal ACLs.
81 ;[ipv6_example_1]
82 ;deny = ::
83 ;permit = ::1/128
84 ;
85 ;[ipv6_example_2]
86 ;permit = fe80::21d:bad:fad:2323