aboutsummaryrefslogtreecommitdiffstats
path: root/SECURITY
blob: b31fb17abbc7a46c1573e0bde802dc18a40ea897 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
==== Security Notes with Asterisk ====

PLEASE READ THE FOLLOWING IMPORTANT SECURITY RELATED INFORMATION.  
IMPROPER CONFIGURATION OF ASTERISK COULD ALLOW UNAUTHORIZED USE OF YOUR
FACILITIES, POTENTIALLY INCURRING SUBSTANTIAL CHARGES.

First and foremost remember this:

USE THE EXTENSION CONTEXTS TO ISOLATE OUTGOING OR TOLL SERVICES FROM ANY
INCOMING CONNECTIONS.

You should consider that if any channel, incoming line, etc can enter an
extension context that it has the capability of accessing any extension
within that context. 

Therefore, you should NOT allow access to outgoing or toll services in
contexts that are accessible (especially without a password) from incoming
channels, be they IAX channels, FX or other trunks, or even untrusted
stations within you network.  In particular, never ever put outgoing toll
services in the "default" context.  To make things easier, you can include
the "default" context within other private contexts by using:

	include => default

in the appropriate section.  A well designed PBX might look like this:

[longdistance]
exten => _91NXXNXXXXXX,1,Dial(Zap/g2/${EXTEN:1})
include => local

[local]
exten => _9NXXNXXX,1,Dial(Zap/g2/${EXTEN:1})
include => default

[default]
exten => 6123,Dial(Zap/1)


DON'T FORGET TO TAKE THE DEMO CONTEXT OUT OF YOUR DEFAULT CONTEXT.  There
isn't really a security reason, it just will keep people from wanting to 
play with your asterisk setup remotely.