artem
14.11.2018
4781

Установка системы для захвата, анализа и мониторинга SIP и RTCP-трафика Homer 5.

Homer — это бесплатное решение, предназначенное для захвата, анализа и мониторинга SIP и RTCP-трафика с широкими возможностями масштабирования способное обрабатывать большие объёмы трафика свойственные VoIP-операторам малого или среднего размера. Эта система призвана облегчить инженерам поиск и устранение неисправностей в VoIP-сетях при помощи мощного анализа и визуализации SIP-диалогов между узлами и детальный просмотр всех SIP-сообщений. Решение позволяет сохранять выгружать SIP-трейсы вызовов в виде pcap дампов или текстовых файлов. Еще одним преимуществом решения является возможность разнесения компонентов системы по разным узлам, что позволяет масштабировать систему. Все описанные действия в статье необходимо выполнять от имени суперпользователя (root). Установка и настройка производилась на предустановленной системе CentOS 6.8 + Asterisk 13 + FreePBX 13.

1.Выполним подключение по SSH к серверу IP АТС Asterisk для выполнения дальнейшей настройки. В зависимости от используемой системы(Windows, Linux, MacOS), подключение по SSH можно выполнить с использованием различного дополнительного программного обеспечения(Putty), либо системного терминала.

Подключение по SSH через Putty

Авторизация на сервере.

Внимание, при авторизации на сервере, пароль в консоли не отображается.

SSH консоль подключения

      2.Выполним проверку активности Selinux, в случае если активен, то выполним отключение:

# sestatus

# sed -i ‘s/(^SELINUX=).*/SELINUX=disabled/’ /etc/selinux/config

SELinux (Security Enhanced Linux) — это система безопасности основанная на моделях мандатного и ролевого доступа. SELinux реализована как компонент ядра Linux начиная с версии ядра 2.6.

Отключение Selinux

    3.Установим демон синхронизации времени и произведем установку корректного часового пояса:

# yum install ntp
# chkconfig ntpd on

Установка демона синхронизации времени
Добавление демона синхронизации времени в автозагрузку

# tzselect

Выбор часового пояса
Проверка корректности текущего времени

    4.Прежде чем приступать к установке Homer 5, необходимо установить ряд зависимостей:

# yum -y install epel-release
# yum -y install git nano gcc bison pcre-devel libpcap-devel flex GeoIP-devel

Подключение Epel репозитория

Установка зависимостей

Если установка Homer 5 будет производиться на выделенный сервер или на сервер без FreePBX, то так же необходимо будет выполнить установку следующих зависимостей:

# yum -y install httpd mariadb mariadb-server mariadb-devel php php-mysql

    5.Приступим к установке Homer 5. Для этого в SSH консоли выполним ряд команд вида:

# cd /usr/src/
# git clone https://github.com/sipcapture/homer-ui.git
# git clone https://github.com/sipcapture/homer-api.git
# git clone https://github.com/sipcapture/homer-config.git


Скачивание Homer 5 из репозитория

    6.Выполним изменение дефолтных паролей доступа:

# nano /usr/src/homer-api/api/configuration_example.php

где ключевыми параметрами для изменения является:
DB_USERNAME — имя пользователя для подключения к БД MySQL
DB_PASSWORD – пароль пользователя  для подключения к БД MySQL

Редактирование конфигурационного файла Homer 5

# nano /usr/src/homer-api/sql/mysql/homer_user.sql

где ключевыми параметрами для изменения является:
homer_user —  имя пользователя для подключения к БД MySQL(указанное на прошлом шаге)
homer_password — пароль пользователя  для подключения к БД MySQL(указанное на прошлом шаге)
Редактирование файла создания пользователя и БД MySQL

Редактирование файла создания пользователя и БД MySQL

    7.Выполним копирование файлов web интерфейса Homer 5 в директорию Apache:

cp -R /usr/src/homer-ui /var/www/html
cp -R /usr/src/homer-api/api /var/www/html/homer-ui/api

Копирование web директории

    8.Для корректной работы с БД MySQL, а так же ротации данных необходимо выполнить следующие действия:

# mkdir /opt/homer
# cp /usr/src/homer-api/scripts/mysql/* /opt/homer
# chmod +x /opt/homer/*

Копирование файлов ротации Homer 5

    9.Выполним редактирование конфигурационного файла ротации данных:

# nano /opt/homer/rotation.ini

где ключевыми параметрами для изменения является:
user — имя пользователя для подключения к БД MySQL(указанное на шаге 6-том)
password —  пароль пользователя  для подключения к БД MySQL(указанное на шаге 6-том)
Редактирование настроек подключение к БД MySQL

    10.Переименуем конфигурационные файлы в WEB директории:

# cd /var/www/html/homer-ui/api
# mv preferences_example.php preferences.php
# mv configuration_example.php configuration.php

Переименование конфигурационных файлов

    11.Отредактируем конфигурационный файл API подключения:

    # nano /var/www/html/homer-ui/api/preferences.php

    где ключевыми параметрами для изменения является:
    RTCP_TABLE_PARTITION — необходимо изменить на «1»
    REMOTE_LOG_URL — необходимо указать IP сервера на который производится установка Homer 5
    EXTERNAL_AUTH_URI —  необходимо указать IP сервера на который производится установка Homer 5


    Редактирование конфигурационного файла

    Редактирование конфигурационного файла

      12.Изменим в конфигурационном файле директорию расположения сокета MySQL:

      # sed -i «s/run/mysqld/mysqld.sock/lib/mysql/mysql.sock/g» /opt/homer/rotation.ini

      Изменения директории расположения сокета MySQL

        13.Выполним создание базы данных:

      # cd /usr/src/homer-api/sql/mysql
      # mysql -u root -p < homer_databases.sql
      # mysql -u root -p < homer_user.sql
      # mysql -u root -p homer_data < schema_data.sql
      # mysql -u root -p homer_configuration < schema_configuration.sql
      # mysql -u root -p homer_statistic < schema_statistic.sql

      Создание базы данных
      Во время создание базы данных потребуется ввести пароль root пользователя.

          14.Добавим в Crontab скрипт ротации для возможности начала сбора данных:

      # crontab -e

      Добавим следующую строку:

      30 3 * * * root /opt/homer/homer_mysql_rotate > /dev/null 2>&1

      Добавление скрипта ротации в Crontab

      15.Добавим виртуальный хост в настройки Apache:

      # nano /etc/httpd/conf.d/homer.conf

      Внесем следующие строки:

      <VirtualHost *:80>
        ServerName homer

        # Indexes + Directory Root.
        DirectoryIndex index.php index.html index.htm
        DocumentRoot /var/www/html/homer-ui

        <Directory />

          Options FollowSymLinks
          AllowOverride None
        </Directory>

      <Directory /var/www/html/homer-ui >
          Options Indexes FollowSymLinks MultiViews
          AllowOverride All
          Order allow,deny
          allow from all
        </Directory>
      </VirtualHost>

      Добавление виртуального хоста

      # service httpd restart

      Применение изменений конфигураций Apache

                      16.Выполним проверку доступности WEB интерфейса Homer 5, для этого необходимо перейти в интернет обозревателе(Opera, Google Chrome, Firefox….) по ссылке вида: http://IP_адрес_сервера_homer и пройти авторизацию(по умолчанию Логин: admin Пароль: test123) …. В нашем примере ссылка будет иметь вид http://192.168.170.157:8080


      WEB интрефейс Homer 5

      WEB интрефейс Homer 5

                                                      17.Для начала сбора данных и отображения их в WEB панели Homer необходимо выполнить установку CapAgent:

      # yum -y install git gcc json-c-devel expat-devel libpcap-devel flex-devel automake libtool bison flex libuv-devel
      # cd /usr/src
      # git clone https://github.com/sipcapture/captagent.git
      # cd captagent
      # ./build.sh
      # ./configure
      # make && make install


      Установка зависимостей

      Скачивание и конфигурирование CapAgent

      Скачивание и конфигурирование CapAgent

      Homer 5 для сбора данных использует протокол Universal Homer Encapsulation Protocol (HEP), который можно активировать в следующем ПО: Asterisk 12+ (только для PJSIP), Freeswitch, Kamailio, OpenSIPS.

                                                      18.Произведем настройку CapAgent:

      # /usr/local/captagent/etc/captagent/socket_pcap.xml

      где ключевыми параметрами для изменения является:
      Включить в секции «RTCP Socket» enable=true
      Задать имя сетевого интерфейса name=»dev» value=»eth0« или оставить any в случае использования нескольких сетевых интерфейсов.

      Настройка CapAgent

      # nano /usr/local/captagent/etc/captagent/transport_hep.xml

      где ключевыми параметрами для изменения является:
      Задать IP адрес сервера Homer 5: name=»capture-host» value=»192.168.170.157″
      Задать порт подключения: name=»capture-port» value=»9020″


      Настройка CapAgent

                                                      19.Для работы с CapAgent, как со службой выполним следующие действия:

      cp /usr/src/captagent/init/el/6/captagent.init /etc/init.d/captagent
      cp /usr/src/captagent/init/el/captagent.sysconfig /etc/sysconfig/captagent
      chmod 755 /etc/init.d/captagent
      chkconfig —add captagent
      chkconfig captagent on
      service captagent start


      Настройка CapAgent

      Подписаться
      Уведомление о
      guest
      0 Комментарий
      Inline Feedbacks
      View all comments

      Остались вопросы?

      Я - Компаниец Никита, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.

      VoIP оборудование

      ближайшие курсы

      ближайшие Вебинары

      ONLINE

      10 доводов в пользу Asterisk

      Распространяется бесплатно.

      Asterisk – программное обеспечение с открытым исходным кодом, распространяется по лицензии GPL. Следовательно, установив один раз Asterisk вам не придется дополнительно платить за новых абонентов, подключение новых транков, расширение функционала и прочие лицензии. Это приближает стоимость владения станцией к нулю.

      Безопасен в использовании.

      Любое программное обеспечение может стать объектом интереса злоумышленников, в том числе телефонная станция. Однако, сам Asterisk, а также операционная система, на которой он работает, дают множество инструментов защиты от любых атак. При грамотной настройке безопасности у злоумышленников нет никаких шансов попасть на станцию.

      Надежен в эксплуатации.

      Время работы серверов некоторых наших клиентов исчисляется годами. Это значит, что Asterisk работает несколько лет, ему не требуются никакие перезагрузки или принудительные отключения. А еще это говорит о том, что в районе отличная ситуация с электроэнергией, но это уже не заслуга Asterisk.

      Гибкий в настройке.

      Зачастую возможности Asterisk ограничивает только фантазия пользователя. Ни один конструктор шаблонов не сравнится с Asterisk по гибкости настройки. Это позволяет решать с помощью Asterisk любые бизнес задачи, даже те, в которых выбор в его пользу не кажется изначально очевидным.

      Имеет огромный функционал.

      Во многом именно Asterisk показал какой должна быть современная телефонная станция. За многие годы развития функциональность Asterisk расширилась, а все основные возможности по-прежнему доступны бесплатно сразу после установки.

      Интегрируется с любыми системами.

      То, что Asterisk не умеет сам, он позволяет реализовать за счет интеграции. Это могут быть интеграции с коммерческими телефонными станциями, CRM, ERP системами, биллингом, сервисами колл-трекинга, колл-бэка и модулями статистики и аналитики.

      Позволяет телефонизировать офис за считанные часы.

      В нашей практике были проекты, реализованные за один рабочий день. Это значит, что утром к нам обращался клиент, а уже через несколько часов он пользовался новой IP-АТС. Безусловно, такая скорость редкость, ведь АТС – инструмент зарабатывания денег для многих компаний и спешка во внедрении не уместна. Но в случае острой необходимости Asterisk готов к быстрому старту.

      Отличная масштабируемость.

      Очень утомительно постоянно возвращаться к одному и тому же вопросу. Такое часто бывает в случае некачественного исполнения работ или выбора заведомо неподходящего бизнес-решения. С Asterisk точно не будет такой проблемы! Телефонная станция, построенная на Asterisk может быть масштабируема до немыслимых размеров. Главное – правильно подобрать оборудование.

      Повышает управляемость бизнеса.

      Asterisk дает не просто набор полезных функций, он повышает управляемость организации, качества и комфортности управления, а также увеличивает прозрачность бизнеса для руководства. Достичь этого можно, например, за счет автоматизации отчетов, подключения бота в Telegram, санкционированного доступа к станции из любой точки мира.

      Снижает расходы на связь.

      Связь между внутренними абонентами IP-АТС бесплатна всегда, независимо от их географического расположения. Также к Asterisk можно подключить любых операторов телефонии, в том числе GSM сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.