Сервер VoIP для небольшой компании (FreePBX 14, Asterisk 15, Ubuntu 16.04) часть 1

Добрый день, вечер или ночь, все зависит от времени суток в который вам довелось прочитать мою статью. Начнем с начала. В нашей компании задумались о переходе на SIP и встал вопрос? как это реализовать.

Исходные данные:
  • 15 сотовых номеров, по количеству сотрудников и смартфонов;
  • 2 городских номер от Мегафон(реализован через SIP);
  • До 10 одновременных вызовов;
  • Отсутствие возможности перевода звонков между сотрудниками;
  • Необходимость частых междугородних звонков.


Были рассмотрены несколько вариантов:

  • Оставить всё как есть (сотовые телефоны);
  • Облачная АТС;
  • «Железное» решение;
  • Свой сервер VoIP.

В итоге приняли решение реализовать свой сервер VoIP.

Что мы имеем:

  • Сервер ESXi Dell PowerEdge R230 1xE3-1220v6 2×16Gb 2RUD x4 3×1Tb 7.2K 3.5";
  • Ubuntu Server 16.04 (минимальная конфигурация, 1Гб памяти, 128 Гб диск), установлен на ESXi 6.5;
  • SIP от zadarma и Мегафон;
  • Сотовые телефоны с SIP клиентами.

Небольшое отступление, по пунктам:

Ubuntu 16.04 у нас являться корпоративным стандартом, сервера Ubuntu Server 16.04, как рабочая OS Ubuntu Desktop 16.04. Основной же сервер построен на базе Zentyal 5.0. Сервера и рабочие ПК устанавливаются по сети по TFTP. Если будет интересно опишу все нюансы установки Zentyal (а их приличное количество).

Аппараты решили не покупать, у каждого сотрудника есть сотовый либо на Android, либо на iOS, так, что проблем с клиентами нет, сотрудники имеют доступ к рабочему Wi-FI. Так же клиенты SIP стоят на рабочих ПК. Так же есть доступ к SIP через Интернет, безопасность тоже учтена, порты подключения изменены, пароли для SIP достаточно сложны.

Переходим к самой сути. В сети полно документации по установке FreePBX 13 на Ubuntu 16.04, А вот каr установить FreePBX 14 нету, даже официальном wiki FreePBX есть только для CentOS 7 и Debian 8.8, но было большое желание и стремление сделать задуманное.

1. Установку Ubuntu Server 16.04 описывать не буду, это просто даже для новичка.

1.1. Все манипуляции я проводил по root sudo su

2. Обновим систему: apt update && apt upgrade -y , если требуется перезагрузка, перегружаемся.

3. Займемся PHP, для FreePBX 14 необходим PHP 5.6, по умолчанию в Ubunty 16.04 идет PHP 7.0

Удаляем весь PHP, если он есть в системе:

sudo apt purge `dpkg -l | grep php| awk '{print $2}' |tr "\n" " "`

Устанавливаем репозиторий PHP 5.6:

sudo add-apt-repository ppa:ondrej/php

Обновляемся и устанавливаем PHP:

sudo apt update
sudo apt install php5.6


4. Mysql который идет в репозитории не совместим с FreePBX 14, нам нужна MariaDB, добавим её в репозиторий:

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://mirror.mephi.ru/mariadb/repo/10.2/ubuntu xenial main'


5. Нам так же необходим nodejs:

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt install -y nodejs


6. Установим теперь всё необходимое:

sudo apt install -y build-essential linux-headers-`uname -r` openssh-server apache2 mariadb-server mysql-client bison flex sox libncurses5-dev libssl-dev libmysqlclient-dev mpg123 libxml2-dev libnewt-dev sqlite3 libsqlite3-dev pkg-config automake libtool autoconf git subversion unixodbc-dev uuid uuid-dev libasound2-dev libogg-dev libvorbis-dev libcurl4-openssl-dev libical-dev libneon27-dev libsrtp0-dev libspandsp-dev libopus-dev opus-tools libiksemel-dev libiksemel-utils libiksemel3 xmlstarlet

sudo apt install -y php5.6 php5.6-curl php5.6-cli php5.6-mysql php5.6-odbc php5.6-db php5.6-gd php5.6-xml curl libapache2-mod-php5.6 php5.6-mbstring

apt install -y php-pear

6.1. Пакета libmyodbc больше нет в репозиториях Ubuntu начиная с версии Xenial.

Скачиваем нужный коннектор:

wget https://downloads.mariadb.com/Connectors/odbc/connector-odbc-3.0.2/mariadb-connector-odbc-3.0.2-ga-debian-x86_64.tar.gz

Распакуем:
tar -zxvf mariadb-connector-odbc-3.0.2-ga-debian-x86_64.tar.gz

И скопируем в директорию /usr/lib/x86_64-linux-gnu/odbc/:

cd mariadb-connector-odbc-3.0.2-ga-debian-x86_64/lib
cp libmaodbc.so /usr/lib/x86_64-linux-gnu/odbc/

7. Теперь по рекомендациям FreePBX необходимо перезагрузиться, я этого не делал.

8. Убедимся, что mod_rewrite включен, чтобы избежать возможных атак.

a2enmod rewrite
service apache2 restart


9. Включим поддержку Console_Getopt

pear install Console_Getopt

10. Переходим к установке Asterisk 15 (фактически это часть wiki с FreePBX для Debina 8.8):

Скачиваем исходники:

cd /usr/src
wget http://sourceforge.net/projects/lame/files/lame/3.98.4/lame-3.98.4.tar.gz &&
wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz &&
wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-current.tar.gz &&
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-15-current.tar.gz &&
git clone https://github.com/akheron/jansson.git &&
wget http://www.pjsip.org/release/2.5.5/pjproject-2.5.5.tar.bz2


Скомпилируем и установим Lame (mp3):

cd /usr/src &&
tar zxvf lame-3.98.4.tar.gz &&
cd lame-3.98.4 &&
./configure &&
make &&
make install


Скомпилируем и установим DAHDI и LibPRI (Мы платы не используем, но кто знает, что захочется потом):

cd /usr/src &&
tar xvfz dahdi-linux-complete-current.tar.gz &&
tar xvfz libpri-current.tar.gz &&
rm -f dahdi-linux-complete-current.tar.gz libpri-current.tar.gz &&
cd dahdi-linux-complete-* &&
make all &&
make install &&
make config &&
cd /usr/src/libpri-* &&
make &&
make install


Скомпилируем и установим pjproject:

cd /usr/src &&
tar -xjvf pjproject-2.*.*.tar.bz2 &&
cd pjproject-* &&
CFLAGS='-DPJ_HAS_IPV6=1' ./configure --prefix=/usr --enable-shared --disable-sound\
--disable-resample --disable-video --disable-opencore-amr &&
make dep &&
make &&
make install


Скомпилируем и установим jansson:

cd /usr/src/jansson &&
autoreconf -i &&
./configure &&
make &&
make install


Если вы хотите использовать кодек Opus, перед началом компиляции Asterisk необходимо установить xmlstarlet:

sudo apt install xmlstarlet

Скомпилируем и установим Asterisk:

cd /usr/src &&
tar xvfz asterisk-15-current.tar.gz &&
rm -f asterisk-15-current.tar.gz &&
cd asterisk-* &&
./contrib/scripts/install_prereq install &&
./configure --with-pjproject-bundled --with-crypto --with-ssl=ssl --with-srtp &&
contrib/scripts/get_mp3_source.sh &&
make menuselect


Для себя я выбрал 'format_mp3' и 'res_config_mysql', а так же включил 'codec_opus'

Сохраняем изменения и продолжаем установку:

make &&
make install &&
make config &&
ldconfig
update-rc.d -f asterisk remove


Пока все собиралось я успел налить себе кофе и продолжил.

Настроим запуск от имени пользователя 'Asterisk'

Расcкомментируйте в /etc/default/asterisk:

AST_USER="asterisk"
AST_GROUP="asterisk"


Создаём пользователя Asterisk и задаём права пользователя:

useradd -m asterisk &&
chown asterisk. /var/run/asterisk &&
chown -R asterisk. /etc/asterisk &&
chown -R asterisk. /var/{lib,log,spool}/asterisk &&
chown -R asterisk. /usr/lib/asterisk


11. Переходим к FreePBX 14

Настроим Apache:

sed -i 's/\(^upload_max_filesize = \).*/\256M/' /etc/php/5.6/apache2/php.ini &&
sed -ie 's/\;date\.timezone\ \=/date\.timezone\ \=\ "Asia\/Yekaterinburg"/g' /etc/php/5.6/apache2/php.ini &&
cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf_orig &&
sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/apache2/apache2.conf &&
sed -i 's/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.conf &&
systemctl restart apache2


Настроим ODBC:

cat >> /etc/odbcinst.ini << EOF
[MySQL]
Driver=/usr/lib/x86_64-linux-gnu/odbc/libmaodbc.so
UsageCount=2

EOF


cat >> /etc/odbc.ini << EOF
[MySQL-asteriskcdrdb]
Description=MySQL connection to 'asteriskcdrdb' database
driver=MySQL
server=localhost
database=asteriskcdrdb
Port=3306
Socket=/var/run/mysqld/mysqld.sock
option=3

EOF


Скачаем и установим FreePBX:

cd /usr/src
wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-14.0-latest.tgz
tar vxfz freepbx-14.0-latest.tgz
rm -f freepbx-14.0-latest.tgz
cd freepbx
touch /etc/asterisk/ari.conf
./start_asterisk start
./install -n


11.1. Для русификации FreePBX необходима локаль ru_RU.UTF-8:

echo "russian ru_RU.UTF-8" >> /etc/locale.alias
locale-gen ru_RU
systemctl restart apache2

12. Создадим скрипт запуска для systemd:

В файл /etc/systemd/system/freepbx.service вставляем:

[Unit]
Description=FreePBX VoIP Server
After=mariadb.service

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/sbin/fwconsole start -q
ExecStop=/usr/sbin/fwconsole stop -q

[Install]
WantedBy=multi-user.target


Активируем сервис:

systemctl enable freepbx.service

Эпилог.

На этом установка и первоначальная настройка закончена. Будут вопросы, всегда готов ответить.
Поделиться публикацией
AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее
Реклама
Комментарии 67
  • НЛО прилетело и опубликовало эту надпись здесь
    • 0
      Я уже как пару лет не использую домашний телефон, на сотовой подключен городской, в семье все телефоны на одном договоре, так что использовать в домашних условиях не стал.
      • НЛО прилетело и опубликовало эту надпись здесь
        • 0
          У меня рабочая линия от мегафона, так что если не успел рабочий взять вовремя то все идет на сотовый
          • НЛО прилетело и опубликовало эту надпись здесь
            • 0
              Ну тогда понятно)) у меня в конце рабочего дня тоже отбойник срабатывает
              • НЛО прилетело и опубликовало эту надпись здесь
                • 0
                  В этом я и не сомневался))) дойдут руки может тоже домой сделаю
    • +1
      а что мешало взять готовый дистр? Ещё однастаться как я научился ставить их исходников что-то?
      • 0
        Готовый на основе CentOS, я в начале статьи указал причины выбора дистрибутива.
        • 0
          и чем же управляемый через web asterisk на centos, будет отличаться от управляемого через web asterisk на ubuntu? и если всё же придерживаетесь unbuntu, то лучше подготовить deb пакет, а не компилировать на сервере. И статья как подготовить deb пакет с asterisk, была бы полезнее на хабре, чем ваша, слизанная непойми откуда статья.
          • –1
            На самом деле не отличается, ставил и на том и том. Теперь объясню почему не стал делать deb пакет. Настройку я делаю 1 раз, больше мне и не нужно, сам сервер стоит на ESXi и из готовой системы я делаю образ, на тот случай если понадобиться развернуть где то ещё. Мне проще внести в копию минимум изменение за место того, чтобы разворачивать с 0 систему.
      • 0
        несколько дней назад настраивал FreePBX 14, но с их родного дистрибутива. оказалось что mysql-connector-odbc, поставляемый с CentOS 7 имеет проблемы с кириллицей, поэтому проверьте отчеты CDR — русский должен быть читаемым.
        для меня все счастливо закончилось установкой mariadb-connector-odbc, для убунты нет подобного пакета?
        • 0
          Для Ubuntu такого не находил, отчеты еще не проверял, доберусь до сервера гляну
        • +2
          Копипаста с оригинала (voxlink). Даже ошибки инсталляции те же.
          Mysql 5.7 отлично работает с freepbx — просто надо внести одну строчку в настройку.
          Не ставьте — libpri ( все мануалы под копирку с установкой, а зачем? что у всех есть железка для работы с ней ?)
          Зачем lame из сорцов? Все ставиться из пакетов.
          Jansson — тоже на ubunte 16 ставится с пакетов — там свежая версия.
          pjproject — уже давно 2.6 версии.
          и не в одном из мануалов нету установки npm — а он нужен.
          Зачем ставите nodejs не из пакета мне тоже не понятно.
          • 0
            Давай по порядку.
            Оригинал voxlink в глаза не видел, все ресурсы откуда брал инфу могу привести;
            Про строчку в Mysql я тоже знаю, мне как то MariaDB роднее;
            Что касается libpri, я написал что часть текста с wiki.freepbx.org/display/FOP/Installing+FreePBX+14+on+Debian+8.8;
            По поводу lame, был прецедент когда он не корректно работал;
            Jansson и pjproject ставил из рекомендация FreePBX не более, за новыми не гонюсь;
            npm ставиться вместе с nodejs, и если внимательно прочесть про установку nodejs то он ставиться из пакетов, скрипт добавляет репозиторий в систему.
            • +4
              Поймите правильно. Хабр это место откуда народ берет знания. И я уверен через месяц всплывет админ который по этому мануалу начнет ставить. Уверенный в своей правоте.
              Лучший вариант этой бы статьи выглядел как — вот оригинал от voxlink а вот следующие правки и дополнения. Расписали бы установку правильно, без сторонних пакетов. Показали как установить как дополнение к оригиналу — установку phpmyadmin. Показали установку и настройку iptables и fail2ban. Вот это было бы интерестно.
              Правьте статью пока не поздно или делайте вторую часть
              • –3
                Я бы не стал всё тут писать, если бы не провел боевые испытания, до момента когда у меня всё заработало я раз 5 с 0 ставил систему и настраивал, пока все на заработало как мне нужно, сейчас сервер стоит и функционирует и все было произведено точно с описанием, фактически большая часть команд это вывод .bash_history. Зашел на voxlink и видел статьи, но они все про FreePBX13, моя цель была выложить для 14 версии. По поводу phpmyadmin, у меня нет необходимости его ставить, по поводу пакетов я тоже писал, я за основу брал инструкции самого FreePBX.
                • 0
                  По phpmyadmin могу написать, но дело в том, что он у меня на другом хосте висит, вместе с монитором на основе observium, подключается он под другим юзером с правами на подключения с определенного IP
            • 0
              А разве pjproject не компилится вместе с астером? Ключ --with-pjproject wiki.asterisk.org/wiki/display/AST/PJSIP-pjproject
              • 0
                У меня выдал ошибку? когда пробовал так сделать, поэтому пошел путеv рекомендуемым FreepBX
                • 0
                  Скорее всего при вызове ./configure не были указаны флаги "--libdir", "--prefix". Они имеют значение при сборке на x86_64.
                  • 0
                    Возможно, отрицать не буду. Дойдут руки до создание deb пакета проверю
              • +1
                корпоративный стандарт — ubuntu? Из серии: стандарт танкостроения — завод АвтоВАЗ. Работа ради работы. устанавливать всё это вручную на ОС, для которой никто даже мануалов не удосужился написать, такая она корпоративная.
                • 0
                  Мануалы в процессе создания, часть их я пишу, часть другие люди. При этом готовые системы сохраняются как рабочие примеры, чтобы потом не мучатся.
                  • +1
                    Думаю под «корпоративным стандартом» автор имел ввиду, что у него в компании все айтишники договорились использовать один дистрибутив. Это достаточно разумное решение, если в компании есть\планируется разделение труда и делегирование обязанностей.
                    Вряд ли тут имелось ввиду сравнение Ubuntu с Redhat или Oracle Linux.
                    Разумность исключения из правил это другой вопрос, который тоже не лишне себе иногда задавать.
                    • 0
                      Вы совершенно правы, разделение и делегирование в компании есть. Enterprise решения не брали, так как поставлена цель максимальной экономии на ПО.
                      • +1
                        Эммммм… все равно не понимаю. нет речи о enterprise решениях. sangoma и freepbx выпускают замечательный дистрибутив с преднастроенным этим всем. не могу понять, зачем это переподнимать всё на том, на чем разработчики не посчитали нужным. как этот самый «один выбранный дистрибутив» тут погоду сделает? сервер телефонии работает из коробки, какая разница на deb или rpm linux? если бы вы сказали мне, что собираетесь на ту же ос, где ,pbx установлен ещё 100500 пакетов установить из собственного deb репозитория, тогда тут ещё можно подумать… можно подумать, что вы не знакомы с виртуализацией… а так… вы говорите о какой-то экономии на ПО, игнорируя готовые БЕСПЛАТНЫЕ решения от разработчиков, потом (выше в комментариях) жалуетесь, что 5 раз всё переподнимали, устали… пока все не заработало.))) сэкономьте ещё человеческие ресурсы (своё время), заодно и время тех, кто начитается этого и пойдёт такой же билебердой заниматься, ради призрачной цели прийти к одному дистрибутиву, который вообще лучше не использовать в корпоративных целях.
                  • 0
                    Расскажите, пожалуйста, какими SIP-клиентами пользуетесь? Я так и не смог найти нормально работающего бесплатного клиента. В основном жаловались, что меня плохо слышно и слышат сами себя.
                    • 0
                      Поддерживаю, тоже прошелся по этим граблям, расскажите о своих.
                      • 0
                        Jitsi на моем опыте вполне стабилен. Проблемы на которые жаловались пользователи как выяснялось обычно были связаны с микрофонами, качеством инета итп.
                        Оперативу жрет как не в себя самый существенный недостаток.
                      • 0
                        Bria (платная, огромный набор параметров, но нет чата и видео, кажется)
                        Zoiper очень не плох! (достаточно настроек, чат и видео есть)
                        Linphone (крайний вариант, есть часто воспроизводимые косяки, не в пример десктопной версии)

                        * — я купил для того, что бы провести тесты на разных клиентах нашего коммутатора. Проверял я не только очевидный факт работы, но и сигнальный обмен между UAC/UAS.

                        Кстати на десктопе (ну как, на ноуте) я использовал приложение telephone. Были мелкие нюансы, но я их разработчику отправлял и мы пообщались. После уже не проверял (да и вот так без поднятия переписки даже не припомню что там было, но что то с процедурой завершения вызова)… В общем на Bria, zoiper и telephone я проходил испытания СОРМ в качестве клиентов (главное куратора ФСБ не смущать этой информацией ;)

                        Всё под яблочные девайсы (linphone под все платформы есть).
                        • 0
                          Из наверное всех ранее опробованных бесплатных вариантов более менее нормально работал Zoiper, но на нём тоже иногда жаловались, что слышат сами себя, а ещё у него был косяк с переподключением. Сервер у нас наружу не вылазит, чтобы попасть в сеть на телефоне стоял OpenVPN, так вот когда происходило переподключение сети (потерял Wi-Fi и переключился на мобильный интернет) Zoiper впадал в ступор и не хотел подключаться. Надо будет ещё раз попробовать, может пофиксили этот баг.
                          На ноуте использую PhonerLite. Она потребляет меньше ресурсов, чем остальные монстры. Правда она может только звонить, но мне другого и не надо.
                        • 0
                          Используем Zoiper, нареканий нет.
                          • 0
                            Мобильные — Zoiper.
                            ПК — Linphone (обход NAT через uPnP).
                            Сервер за NAT. Транспорт TLS + certbot с запретом direct_media. Кодек — alaw/ulaw. При замене кодека на другой с большим битрейтом при 3G может появляться эхо.
                            • 0
                              uPnP — прежде чем включать это где-либо стоит погуглить «uPnP insecure», «uPnP vulnerability». Этот протокол небезопасен by design. Любое устройство, без регистрации и смс может опубликовать себя в интернет.
                              • 0
                                Не безопасен. Увы, но некоторые сотрудники работающие удаленно «на дому» до сих пор используют *DSL интернет и пока побороть задержку звука в 500 мс при использовании stun не удалось. При uPnP — работает сносно.
                          • +1
                            Компиляция из исходников на пакетном дистрибутиве? Не православно!
                            • 0
                              Не все что есть в пакетах собрано должным образом, иногда проще собрать под конкретные нужды.
                              • +1
                                Никто и не говорил, что надо пользоваться только стандартными пакетами. Я то же собираю разное По под свои задачи (а некоторого в пакетах и вовсе нет), но делаю это на отдельной машинке и кладу в собственный репозиторий готовый пакет, а уже из него разворачиваю на сервер — это тру вэй для пакетных дистрибутивов. И именно так правильно делать, если у вас за стандарт принят пакетный дистрибутив.
                                • –3
                                  Не согласен, Linux свободная система и мне решать как я её буду использовать. Если проводить аналогию, то не правильно на FreeBSD использовать готовые бинарные пакеты, всё нужно собирать в ручную.
                                  • +1
                                    Решать конечно же вам, но в отрасли есть собственные нормы, и если вы придёте в серьёзную компанию и начнёте там на продуктивных серверах ПО собирать из исходников, думаю ататашечки вы получите. Нужно приучать себя к хорошему с детства, а не говорить «мне решать, ведь так можно».
                                    • 0
                                      Вообще я согласен, по хорошему так и нужно, особенно если продавать решения, в компании есть машина для сборки пакетов, так же есть свой репозиторий. Я же описал стандартный путь решения задачи. Если у читателей появиться большой интерес к решению в 1 строчку с предварительно подготовкой всех пакетов, написать её не составит труда. Если будет спрос предложение я обеспечу.
                            • +1
                              Хочется верить, что с приходом такого большого количества инструментов для оркестрации и контейнеризации количество подобных статей сократится, и они переедут в Docker Hub, Ansible Galaxy и пр.
                              • 0
                                Возможно вы и правы, но пока всё реализовано так как реализовано
                              • +1
                                Какова экономика всего мероприятия? А то тут только мануал для копипаста и никакого, даже лайтового, ТЗ не указано.

                                На сколько абонентов рассчитано?
                                Каковые выделенные мощности VM?
                                Есть ли QoS и DSCP?
                                Какие средства защиты и их логику используете?

                                Хотя бы из этих деталей будет понятно, что для вас значит «небольшая компания», сколько вы на это потратили ресурсов (челочас, денег на вычислительные мощности, отсюда и затраты на энергию), позаботились ли о качестве этого сервиса…

                                Что же касается учтённой безопасности… Что будет с вашим сервером, если «я вас вычислю по IP» и начну флудить инвайтами или register сообщениями? 10мб/с хватит, что бы ваш сервер уделил мне всё внимание, так как оно мне больше нужно и ваши абоненты получили удлинённые тайминги обработки их сообщений, полный развал dtmf, да и вероятно большинства сессий, если не из-за таймеров, то по инициативе самих абонентов.
                                Про SBC что нибудь слышали? Штуки в аппаратном исполнение дорогие, но вот вам идея для _хорошей_ статьи — вынесите внешнюю регистрацию на прокси сервер, которую уже с голым задом и fail2ban выставляйте в Сеть. Настройте там контроль доступа, сообщения о подозрительном трафике (в том числе и register сообщений, которые без auth информации не дадут повода сгенерировать ошибку в лог)…

                                Но я бы выбрал VPN, раз у вас все абоненты — корпоративные и внутренние.
                                • 0
                                  Отвечаю на вопросы(на текущий момент):
                                  15 абонентов, рост планируется;
                                  У VM 1Гб памяти, 128 Гб диск, 3 Ггц;
                                  QoS и DSCP в процессе реализации;
                                  Сам сервер находиться в DMZ зоне сети, доступ только к определенным портам, дефолтные порты изменены;
                                  Сервер ESXi Dell PowerEdge R230 1xE3-1220v6 2×16Gb 2RUD x4 3×1Tb 7.2K 3.5";
                                  Вычислять по IP не имеет смысла, сам сервер за NAT и порты для подключения, как я уже писал, изменены;
                                  Интернет в 60мб/с, прокси с фаерволом и nginx прокси выведен в сеть, правда без голого зада))
                                  Для доступа из вне сотрудникам предоставлен OpenVPN с авторизацией через сертификат и lDAP.
                                  • +2
                                    Ресурсов сервера виртуализации, хранилища снапшотов VM и собственного времени не жалко под то, что можно было бы заменить аппаратным решением за 16к рублей?
                                    image

                                    И мне думается, что такое решение было бы гораздо надёжнее и дешевле в эксплуатации, нежели содержать ещё один сервер.

                                    Почему вы открыли доступ из внешних сетей к вашей телефонной станции, если у вас есть VPN и сотрудники и так и так его используют? Не знаю конечно, чем вы занимаетесь и могут ли у вас быть конкуренты, не доброжелатели, интересующиеся вашей коммерческой информацией… но вашу телефонию завалить ничего не стоит. И дело тут не в том, что вашей пропускной способности не хватит, а в том, что обработка sip сообщений довольно трудоёмкий процесс и у всех телефонных коммутаторов подобного типа надо смотреть на параметр, который показывает количество одновременных инвайтов (грубо говоря), которое он может обработать. Цифра обычно не большая. Например у коробочки выше, это 15. Обычно это нужно для понимания, вывезет ли железка штатную нагрузку. Но если пойдёт речь о не штатной нагрузке, то ни одна железка не вывезет столько, сколько способно пролезть через ваш канал связи. Зафлудить телефонную SIP станцию ума вообще никакого не надо, ибо инструментов полно.
                                    А ваши изменённые порты не так уж и сложно просканировать, отправив инвайт на каждый из портов и получив от вашего астериска запрос на авторизацию. Мне кажется вы никак не настраивали поведение вашего UAS :)

                                    В общем совет: делайте sip прокси для авторизации или, что лучше, пусть все лезут через VPN, раз уж он и так есть. Чем меньше сервисов смотрит наружу, тем лучше.
                                    • 0
                                      Если бы требовалось использовать аналоговые линии, то вопрос бы не встал, железное решении тут выигрывает, у нас только SIP. К тому же на сервере были не востребованные ресурсы. Сейчас идет процесс настройки fail2ban + скрипт обработки логов для блокировки сканирования портов, после испытания выложу. Про sip прокси спасибо, займусь этим вопросом
                                      • 0
                                        И еще одна причина выбора системы на сервер, совсем про неё забыл, наша система учета плотно связана с телефонией, требовалось выполнение linux команд в OS где стоит FreePBX. Передача в реальном времени команд в базу для CRM, вызова карточек клиентов и т.д.
                                  • +1
                                    Можно не удалять php 7.x из системы, достаточно настроить alternatives и отключить mod_php7 в apache.
                                    А по факту гораздо быстрее скачать готовый дистр на CentOS, потратить минут 15 на настройку внутренних номеров и транков.
                                    • 0
                                      Если бы стояла только задача развернуть чисто FreePBX, так бы и поступил, по мимо прочего система введена в домен Samba4 и настроен sudo для авторизации пользователей определенных групп. Так же намного проще когда все дистрибутивы одного семейства, проще администрировать и следить за ними.
                                      • 0
                                        Для меня php 7.x в данной системе просто занимает место, на этом сервере он просто не нужен.
                                      • 0
                                        А почему Asterisk, а не FreeSWITCH?
                                        • 0
                                          C Asterisk я работаю не первых год, FreeSWITCH для меня нов и выводить в рабочую среду ПО которое знаю не достаточно хорошо я не стал.
                                          • 0
                                            А можете дать ссылочки на подобные продукты но на базе FS.
                                            • 0
                                              Какие «такие»? FreeSWITCH ставится элементарно, на сайте исчерпывающие инструкции.
                                              Подредактировать под себя xml-конфиг и полетели. GUI не нужен.
                                          • 0
                                            А где-же настройка абонентов, создание УЗ роутинг и ДВО. Настраивали через web или через консоль?
                                            • 0
                                              Планирую в течении недели подготовить статью по этим вопросам. В основном все через web, на это и рассчитана FreePBX, хотя в практике попадались случаи когда приходилось и руками править конфиги, если будет такое примеры приведу.
                                            • 0
                                              Бегите с Freepbx, это штука столько раз взламывалась что просто страх божий
                                              • 0
                                                Она не открыва во вне, доступ к консолям только с внутренней сети не более.
                                                • 0
                                                  Зачем тогда веб интерфейс нужен ?, ведь его предназначение доступ из вне.
                                                  • 0
                                                    Вы ошибаетесь, он нужен для более удобной настройки VoIP сервера, доступ к нему имеют пользователи внутри сети, например для голосовой почты. Так же через VPN имеют доступ администраторы. Не один из моих знакомых не выставляет подобное в общую сеть.
                                                    • 0
                                                      Для того, чтобы зайти и настроить\мониторить с любого устройства, на котором есть браузер и доступ на веб-морду
                                                      • 0
                                                        И это тоже, но про безопасность не стоит забывать, просто открывать к такому доступ средству просто не рационально.
                                                • 0
                                                  А еще не подскажите, что поставить или может уже стоит, голосовое меню, типа DISA у Панаса.
                                                  • 0
                                                    А почему FreePBX14 не поддерживает mysql? Все встало и работает.

                                                    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.