Следующая версия | Предыдущая версия |
acl.conf [2016/07/06 13:33] – создано kov | acl.conf [2016/07/06 13:38] (текущий) – kov |
---|
Access Control List или ACL — список контроля доступа, который определяет, кто или что может получать доступ к конкретному объекту, и какие именно операции разрешено или запрещено проводить над объектом. | Access Control List или ACL — список контроля доступа, который определяет, кто или что может получать доступ к конкретному объекту, и какие именно операции разрешено или запрещено проводить над объектом. |
| |
Контексты | **Контексты** |
| |
Диалпланы разбиты на разделы, называемые контекстами. Контексты – это именованные группы добавочных номеров, которые выполняют несколько функций. | Диалпланы разбиты на разделы, называемые контекстами. Контексты – это именованные группы добавочных номеров, которые выполняют несколько функций. |
Контекст default | Контекст default |
Наиболее распространённой ошибкой администраторов Asterisk является неправильное использование контекста default. Контекст default следует использовать только в одном случае – если надо разрешить анонимные (гостевые) звонки, например, на адрес домена компании ([SIP domain dialing]). Однако, в большинстве случаев в контексте default администраторы описывают своих пользователей, планы набора и другие правила обработки вызова. Эта практика чревата тем, что злоумышленник сможет использовать такой сервер, бесплатно и безнаказанно совершая МГ/МН звонки, осуществляя DoS атаки и хулиганские выходки по отношению к внутренним пользователям. При разрешении гостевого звонка следует принять меры предосторожности в отношении перечисленных вопросов. Каким должен быть контект default по умолчанию? Очень простым: | Наиболее распространённой ошибкой администраторов Asterisk является неправильное использование контекста default. Контекст default следует использовать только в одном случае – если надо разрешить анонимные (гостевые) звонки, например, на адрес домена компании ([SIP domain dialing]). Однако, в большинстве случаев в контексте default администраторы описывают своих пользователей, планы набора и другие правила обработки вызова. Эта практика чревата тем, что злоумышленник сможет использовать такой сервер, бесплатно и безнаказанно совершая МГ/МН звонки, осуществляя DoS атаки и хулиганские выходки по отношению к внутренним пользователям. При разрешении гостевого звонка следует принять меры предосторожности в отношении перечисленных вопросов. Каким должен быть контект default по умолчанию? Очень простым: |
| |
| <code>exten = > _X.,1,Hangup</code> |
| |
| При такой настройке все попытки звонков, не прошедшие нормальную авторизацию, будут моментально завершаться. |
| Контексты каналов |
| Каждый тип канала имеет как контексты по-умолчанию, так и явно указанные для разных групп линий или пользователей. Следует помнить простое правило: если контекст в настройке линий или пира не указан, звонок попадет в тот контект, который указан в опции context секции general. Хорошей практикой является использования шаблонов, например: |
| |
| <code> |
| [user] (!) |
| type=friend |
| host=dynamic |
| context=users |
| nat=yes |
| qualify=yes |
| callgroup=1 |
| pickupgroup=1 |
| dtmfmode=rfc2833 |
| |
| [709] (user) |
| secret=as09TYInbd873K |
| mailbox=709 |
| callerid= «User» <709> |
| |
| [710] (user) |
| secret=udFls34Dssd2 |
| mailbox=710 |
| callerid= «User» <710> |
| </code> |
| |
| В приведённом примере, если забыть указать наследование шаблона (user), пир создан не будет. Таким образом, можно избежать необходимости указывать контекст в каждом пире. |
| Разделение входящих и выходящих контекстов |
| Не следует определять в одном контексте как правила для входящих, так и для исходящих звонков. Типичный пример некорректной настройки – это использование одного контекста для исходящих звонков пользоваталей, внутренних звонков и звонков, поступающих по городским линиям. Например: |
| |
| <code> |
| [default] |
| exten = > _7XX,1,Dial (SIP/${EXTEN}) //внутренние звонки |
| exten = > _9XXX.,1,Dial (SIP/g1/${EXTEN:1}) //внешние |
| // входящие по линии FXO |
| exten = > s,1,Answer |
| exten = > s,n,Background (hello-please-enter-number-you-wish-to-call) |
| exten = > s,n,WaitExten (5) |
| exten = > s,n,Queue (support|t) |
| </code> |
| |
| В приведённом примере по причине использования одного контекста звонящий по FXO линиям из города могут донабрать не только локального пользователя, но также использовать другие свободные линии в своих целях, например, для звонков в другой регион. Все что для этого надо сделать – набрать 9-ку и номер назначения. Правильным будет следующих план набора: |
| |
| <code> |
| [users] |
| include = > local-users |
| include = > numberplan |
| |
| [local-users] //внутренние |
| exten = > _7XX,1,Dial (SIP/${EXTEN}) |
| |
| [numberplan] //внешние |
| exten = > _9XXX.,1,Dial (Zap/g1/${EXTEN:1}) |
| |
| [fxo-in] //входящие FXO |
| include = > local-users |
| exten = > s,1,Answer |
| exten = > s,n,Background (hello-please-enter-number-you-wish-to-call) |
| exten = > s,n,WaitExten (5) |
| exten = > s,n,Queue (support|t) |
| </code> |
| |
| Все SIP пользователи должны иметь контекст users, в котором при помощи директивы include включаются правила внутрениих и внешних звонков. В настройках линий (dahdi.conf) следует указать контекст fxo-in, в котром включается контекст local-users. Таким образом, из IVR компании можно будет связаться только с внутренними пользователями, что чаще всего и требуется. |
| |
| Права пользователей |
| |
| Запуск Asterisk из-под не — root пользователя. По умолчанию Asterisk запускается из-под root, что может быть небезопасно. Для изменения пользователя раскомментируйте строки в файле /etc/init.d/asterisk. |
| |
| <code> |
| AST_USER= «asterisk» |
| AST_GROUP= «asterisk» |
| </code> |
| |
| Создайте группу и пользователя asterisk. |
| |
| <code> |
| /usr/sbin/groupadd asterisk |
| /usr/sbin/useradd -d /var/lib/asterisk -g asterisk asterisk |
| </code> |
| |
| Измените права на использование следующих файлов: |
| |
| <code> |
| chown --recursive asterisk:asterisk /var/lib/asterisk |
| chown --recursive asterisk:asterisk /var/log/asterisk |
| chown --recursive asterisk:asterisk /var/run/asterisk |
| chown --recursive asterisk:asterisk /var/spool/asterisk |
| chown --recursive asterisk:asterisk /usr/lib/asterisk |
| ## Если Вы мспользуете Zaptel |
| chown --recursive asterisk:asterisk /dev/zap |
| ## Если Вы используете DAHDI |
| chown --recursive asterisk:asterisk /dev/dahdi |
| #---------------------------------------------------- |
| chmod --recursive u=rwX,g=rX,o= /var/lib/asterisk |
| chmod --recursive u=rwX,g=rX,o= /var/log/asterisk |
| chmod --recursive u=rwX,g=rX,o= /var/run/asterisk |
| chmod --recursive u=rwX,g=rX,o= /var/spool/asterisk |
| chmod --recursive u=rwX,g=rX,o= /usr/lib/asterisk |
| ## Если Вы мспользуете Zaptel |
| chmod --recursive u=rwX,g=rX,o= /dev/zap |
| ## Если Вы используете DAHDI |
| chmod --recursive u=rwX,g=rX,o= /dev/dahdi |
| #---------------------------------------------------- |
| chown --recursive root:asterisk /etc/asterisk |
| chmod --recursive u=rwX,g=rX,o= /etc/asterisk |
| /etc/init.d/asterisk restart |
| </code> |
| |
| |
| [[http://voxlink.ru/kb/asterisk-configuration/some-security-aspects/|Ссылка на оригинал]] |