
- •Содержание
- •Глава 1. Анализ исследуемой организации 6
- •Глава 2. Постановка задачи проектирования сети ip-телефонии 17
- •Глава 3. Внедрение сети ip-телефонии для организации 27
- •Введение
- •Глава 1. Анализ исследуемой организации
- •1.1 Общая характеристика организации
- •1.2 Информационные ресурсы компании
- •1.3 Исследование технической и программно-аппаратной структуры компании
- •1.4 Анализ главных технических требований к проекту
- •Глава 2. Постановка задачи проектирования сети ip-телефонии
- •2.1 Сравнение нескольких вариантов реализации сети ip-телефонии
- •2.2 Анализ оборудования для построения сети ip-телефонии
- •2) Диспетчер;
- •3) Монитор;
- •4) Маршрутизатор.
- •2.2.1 Шлюзы
- •2.2.2 Диспетчер
- •2.2.3 Монитор
- •2.2.4 Маршрутизатор
- •2.3 Постановка задачи для разработки сети
- •Глава 3. Внедрение сети ip-телефонии для организации
- •3.1 Выбор, внедрение и настройка нужного оборудования
- •3.1.1 Выбор сервера для ip-телефонии
- •3.1.2 Выбор абонентского оборудования
- •3.1.3 Настройка vlan
- •3.1.4 Подключение к оператору связи
- •3.1.5 Конфигурация программной атс Asterisk
- •3.2 Внедрение средств обеспечения безопасности проектируемой сети
- •3.2.1 Средства межсетевого экранирования
- •3.2.2 Шифрование srtp
- •3.2.3 Защита периферийных устройств сети
- •3.4 Разработка базы абонентов сети ip-телефонии
- •Заключение
- •Список использованных источников
3.1.4 Подключение к оператору связи
В качестве основного поставщика траффика выбран, используемый ранее на протяжении нескольких лет, провайдер Манго-Телеком.
На сайте оператора Манго-Телеком размещена инструкция для настройки серверов на базе Asterisk. Поскольку выбранная IP-ATC работает на его основе данные конфигурационные файлы совпадают.
Для подключения к Asterisk виртуальной АТС от Маго-Телеком, необходимо выполнить следующие шаги.
Входим в личный кабинет ≥ вкладка сотрудники ≥ добавить сотрудника. Появится поле добавления сотрудника, так как у нас будет подключение к Asterisk, то достаточно ввести в поле ФИО какой-нибудь идентификатор (например — user2). Нажимаем «Создать».
После нажатия кнопки «Создать» появится окно расширенных настроек.
Так как нам необходимо создать SIP-транк к Asterisk, то выбираем строку SIP (не задан) нажимаем «Добавить», появляется окно «Создание учетной записи SIP». Здесь мы задаем домен (желательно третьего уровня, например, mydomain.mangosip.ru), а также пароль, который можно сгенерировать. Имя пользователя, пароль и домен необходимы будут для создания sip-транка в Asterisk, поэтому записываем/запоминаем их.
Жмем «Добавить», затем «Сохранить». Убеждаемся, что наш user2 появился в списке сотрудников и у него присутствует в столбце «Способ связи по умолчанию» запись вида: user@domain.ru. Если есть необходимость формируем группы.
Настройка sip транка Asterisk:
Во FreePBX создаем новый SIP-транк, назовем его Mango. В PEER Details укажем:
username=user2
type=friend
secret=наш_пароль
nat=yes
insecure=very
host=mydomain.mangosip.ru
fromuser=user2
fromdomain=mydomain.mangosip.ru
dtmfmode=rfc2833
disallow=all
context=from-trunk
canreinvite=no
allow=g729&alaw&ulaw
и в строке регистрации:
user2:наш_пароль@mydomain.mangosip.ru.
3.1.5 Конфигурация программной атс Asterisk
Рассмотрим конфигурацию программной АТС Asterisk.
Схема организации сети телефонии приведена ниже.
Рисунок 3.3 - Схема организации сети телефонии
IP АТС Asterisk находится за маршрутизатором. Для связи с телефонной сетью общего пользования используется оператор Манго.
Устанавливаем Asterisk.
Скачиваем исходные коды Asterisk, распаковаем их и затем собираем Asterisk.
Для исследуемой конфигурации подойдет версия Asterisk 1.8. Устанавливаем версию 1.8 из стандартного репозитория Debian:
#aptitude install asterisk asterisk-core-sounds-ru asterisk-voicemail
После установки IP АТС Asterisk рекомендуется добавить автоматический запуск asterisk после перезагрузки:
#update-rc.d asterisk defaults
Для реализации на IP АТС Asterisk нужно минимум сконфигурировать три файла в директории где хранятся конфигурационные файлы /ets/asterisk.
Первый из них sip.conf, в этом файле настраиваются общие параметры сигнального протокола SIP, учетные записи IP-телефонов, а также подключения к внешней сети.
Второй файл voicemail.conf описывает настройки голосовой почты.
Третий файл extensions.conf, описывает сценарий работы IP АТС на языке дайлплана Asterisk в виде последовательности действий с вызовом.
Пример файлов конфигурации для настройки Asterisk приведен ниже.
Настроим каналы SIP, SIP-транки на оператора Манго и учетные записи IP телефонов, а также общие настройки SIP.
#cat /etc/asterisk/sip.conf
[general]
context=default; Контекст по умолчанию для входящих вызовов
allowoverlap=no
allowguest=no; отбивать все вызовы с неизветстный IP.
alwaysauthreject=yes; Присылать одно и тоже SIP сообщение вне зависимости неверный пароль или пользователь не существует.
;Опция усложняет взлом.
useragent=PBX; То что будет отображаться в UA вашего Asterisk.
defaultexpiry=360;Интервал обязательной перерегистрации абонентов.
callevents=no; Означает что RTP для всех вызовов должен проксироваться.
limitonpeer=yes; Считаем исходящие и входящие вызовы пиров вместе.
rtptimeout=10; Таймаут отсутствия RTP-трафика
language=ru
;Язык в системе по умолчанию. Например для голосовых файлов.
bindport=9966
;Заменяем стандартный порт SIP 5060 на нестандартный.
;9966 уменьшает вероятность нахождения сканнером порта SIP.
bindaddr=0.0.0.0 ;Слушаем на всех интерфейсах
srvlookup=yes
;Активировать поиск DNS SRV-записей для исходящих вызовов
disallow=all
;сначала запрещаем все кодеки затем, разрешаем только те, которые хотим использовать.
allow=ulaw
allow=alaw
allow=g729; можно использовать если очень узкий канал
allow=g722; для звонков между IP-телефонов, кодек с повышенным качеством звука
dtmfmode=auto
rtpholdtimeout=300
rtpkeepalive=5
externip=84.52.XX.XX;Указываем наш внешний IP, Asterisk за NAT.
localnet=192.168.2.0/255.255.255.0
Указываем внутреннюю сеть, где находятся IP-телефоны.
register => 00081111:pass@voice.telphin.com:5068/00081111
; номер 78123091111, регистрируем для входящих вызовов.
register => 00081112:рass2@voice.telphin.com:5068/00081112
; номер 78123091113, регистрируем для входящих вызовов.
[78123091111]; Первый номер.
context=inbound
type=peer
username=000115272
fromuser=000115272
secret=pass
host=voice.telphin.com
port=5068
promiscredir=yes
qualify=yes
insecure=port,invite
[000115272]
context=inbound
type=peer
username=000115272
host=voice.telphin.com
port=5068
qualify=yes
[78123091112] ; второй номер
context=inbound
type=peer
username=00083807
fromuser=00083807
secret=H3QJgzPN
host=voice.telphin.com
port=5068
promiscredir=yes
;qualify=yes
insecure=port,invite
[00083807]
context=inbound
type=peer
username=00083807
host=voice.telphin.com
port=5068
qualify=yes
На этом настройка каналов закончена.
Настроим голосовые почтовые ящики для наших абонентов.
#cat /etc/asterisk/voicemail.conf
[general]
format=wav49|gsm|wav
serveremail=root@asteriskserver.com
attach=yes ; прикрепить запись сообщения
maxmsg=100 ;максимальное кол-во сообщений для ящика.
maxsecs=180 ;максимальная длинна сообщения, 3 минуты макс.
minsecs=3 ;минимальная длина
maxgreet=60 ;Максимальное время приветствия
skipms=3000
maxlogins=3
moveheard=yes
charset=UTF-8
pbxskip=yes
fromstring=Voicemail server ; от этого "лица" будут приходить сообщения
emailsubject=Новое голосовое сообщение ${VM_MSGNUM} в ящике ${VM_MAILBOX}
; Subject электронного письма с оповещением
emailbody=Вам пришло новое голосовое сообщение длительностью ${VM_DUR} под номером ${VM_MSGNUM} \nв ящик ${VM_MAILBOX} от ${VM_CALLERID}, в ${VM_DATE}.
; текст сообщения электронного письма
emaildateformat=%A, %B %d, %Y at %r
pagerdateformat=%A, %B %d, %Y at %r
;mailcmd=/usr/sbin/sendmail –t
;если у вас какой-то особенный MTA агент, укажите его.
delete=yes
; Если голосовая почта отправляется только на email – yes,
;удаляется сразу же просле отправки
[zonemessages]
eastern=America/New_York|'vm-received' Q 'digits/at' IMp
central=America/Chicago|'vm-received' Q 'digits/at' IMp
central24=America/Chicago|'vm-received' q 'digits/at' H N 'hours'
military=Zulu|'vm-received' q 'digits/at' H N 'hours' 'phonetic/z_p'
european=Europe/Copenhagen|'vm-received' a d b 'digits/at' HM
Настройка закончена.
Все настройки сервера Asterisk хранятся в текстовых файлах, все файлы конфигурации Asterisk, располагаются в директории /etc/asterisk, при стандартной инсталляции. В стандартный дистрибутив входят файлы с примерами конфигураций, которые хорошо документируют использование почти всех параметров конфигурации.
Отдельного упоминания заслуживает алгоритм аутентификации IAX2 соединений. При входящем IAX2 звонке Asterisk выполняется следующие последовательности проверок.
Если присутствует поле username:
Ищет в файле конфигурации iax.conf (и включенных из него файлов) секцию, имя которой совпадает с username, в котрой type=user. Если совпадений не найдено, произойдет закрытие канала.
В найденной секции проверяется наличие параметров allow/deny, и если IP адрес звонящего совпадает с deny, или не проходит цепочку allow, звонок завешается.
Проверяется пароль. Если пароли не совпадают, звонок завершается.
Если во входящем звонке указан контекст назначения, Asterisk проверяет наличие в настройках пира записи context=требуемый контекст.
Если контекст не указан, звонок направляется на обработку в первую запись context=, наденную в настройках пира.
Если в заголовке сообщения нового звонка не содержится поле username, Asterisk выполняет следующее:
1. Выполняет поиск секции type=user, в которой нет поля secret, и есть атрибуты allow/deny. Если такой пир найден, звонок принимается, и именем username звонящего становится название совпавшей секции.
2. Выполняет поиск секции type=user, где нет поля secret, и нет атрибутов allow/deny. Если такая секция найдена, звонок принимается, и именем username звонящего становится название этой секции.
3. Если совпадений выше найдено не было, Asterisk ищет секцию type=user, с указанным паролем secret или RSA ключем одновременно с allow/deny фильтром. Если такая секция найдена, и все проверки пройдены, астериск принимает звонок, и устанавливает именем username название секции.
4. Выполнеяет поиск секции type=user с установленным паролем secret (или RSA ключем), но без фильтров allow/deny. Если проверка по паролю проходит, звонок принимается, и значение username устанавливается равным названию совпавшей секции.