Показаны сообщения с ярлыком Elastix. Показать все сообщения
Показаны сообщения с ярлыком Elastix. Показать все сообщения

пятница, 14 декабря 2018 г.

Правила на микротик для защиты IP телефонии от всякой нечести

Спасибо брату Дмитрию Саврико за предоставленную информацию.

add action=drop chain=input comment="Port Scanners" src-address-list="Port Scanners"
add action=add-src-to-address-list address-list="Port Scanners" address-list-timeout=none-dynamic chain=input in-interface-list=WAN protocol=tcp psd=21,3s,3,1
add action=add-src-to-address-list address-list="Port Scanners" address-list-timeout=none-dynamic chain=input in-interface-list=WAN protocol=tcp tcp-flags=!fin,!syn,!rst,!ack
add action=add-src-to-address-list address-list="Port Scanners" address-list-timeout=none-dynamic chain=input in-interface-list=WAN protocol=tcp tcp-flags=fin,syn
add action=add-src-to-address-list address-list="Port Scanners" address-list-timeout=none-dynamic chain=input in-interface-list=WAN protocol=tcp tcp-flags=fin,rst
add action=add-src-to-address-list address-list="Port Scanners" address-list-timeout=none-dynamic chain=input in-interface-list=WAN protocol=tcp tcp-flags=fin,!ack
add action=add-src-to-address-list address-list="Port Scanners" address-list-timeout=none-dynamic chain=input in-interface-list=WAN protocol=tcp tcp-flags=fin,urg
add action=add-src-to-address-list address-list="Port Scanners" address-list-timeout=none-dynamic chain=input in-interface-list=WAN protocol=tcp tcp-flags=syn,rst
add action=add-src-to-address-list address-list="Port Scanners" address-list-timeout=none-dynamic chain=input in-interface-list=WAN protocol=tcp tcp-flags=rst,urg
add action=add-src-to-address-list address-list="Port Scanners" address-list-timeout=none-dynamic chain=input dst-port=0 in-interface-list=WAN protocol=tcp
add action=add-src-to-address-list address-list="Port Scanners" address-list-timeout=none-dynamic chain=input dst-port=0 in-interface-list=WAN protocol=udp

add action=drop chain=input comment="sip blacklist" src-address-list=sip-blacklist
add action=add-src-to-address-list address-list=sip-blacklist address-list-timeout=none-dynamic chain=input dst-port=5060,5061 in-interface-list=WAN limit=120/1m,5:packet protocol=udp
add action=add-src-to-address-list address-list=sip-blacklist address-list-timeout=none-dynamic chain=input dst-port=5060,5061 in-interface-list=WAN limit=40/2s,5:packet protocol=udp
add action=add-src-to-address-list address-list=sip-blacklist address-list-timeout=none-dynamic chain=input dst-limit=50,50,src-and-dst-addresses/10s dst-port=5060,5061 in-interface-list=WAN protocol=udp

среда, 8 июня 2016 г.

OpenFire в Elastix

Что мы будем делать:
1. Запустим OpenFire в Elastix
2. Откроем страницу OpenFire
3. Обновим OpenFire до последней версии

Поехали.

1. Запускаем OpenFire сервис

Проверяем запущенный сервис
2. открываем страницу настройки OpenFire
http://elastix.domain.ru:9090

Видим отлично OpenFire работает, настройки пока не делаем, нужно обновиться

3. Обновим OpenFire до последней версии
- Останавливаем сервис OpenFire
- Делаем копию предыдущей версии
cp -a /opt/openfire /opt/openfire.copy

- Заходим в папку которую создали(openfire.copy)
# cd /opt/openfire /opt/openfire.copy

- Делаем бекап базы данных(openfire) mysql
mysqldump -u root -p openfire >openfire.sqlmysqldump -u root -p openfire >openfire.sql
при запросе пароля вводим пароль root.
наблюдаем в этой папке сделанный наш бекап

- Смотрим какая версия у нас стоит
# rpm -qa | grep openfire

- Смотрим последний релиз здесь

- Скачаем последнюю версию OpenFire
# Download RPM Package #
$ sudo wget http://download.igniterealtime.org/openfire/openfire-4.0.2-1.i386.rpm

# Download DEB Package #
$ sudo wget http://download.igniterealtime.org/openfire/openfire_4.0.2_all.deb
- Устанавливаем обновления OpenFire
# Upgrade Openfire to RHEL,CentOS, Fedora, openSUSE #
$ sudo rpm -Uvh openfire-4.0.2-1.i386.rpm

# Upgrade Openfire to Debian, Ubuntu, Mint #
$ sudo dpkg -i openfire_4.0.2_all.deb
- Проеряем установленную версию
# rpm -qa | grep openfire

- И вот досада, не открывается у нас OpenFire
- Перезагружаем службы или сам Elastix

И радуемся новой версии OpenFire.


Версия та новая, а вот войти в админ панель не дает под ранее созданным пользователем(если ранее были произведены настройки)

Придется делать новые настройки заново или попробовать поменять пароль админской учетке если AD

Я буду делать заново т.к. кроме учетки я ничего не создавал.

- Выключаем сервис OpenFire
- Открываем файл openfire.xml
# nano /opt/openfire/conf/openfire.xml
и в самом низу файла находим true и меняем его на false и запускаем службу OpenFire
пошла новая установка OpenFire.

Подробная настройка есть в видеоуроке здесь на 6(шестой) минуте.


четверг, 3 декабря 2015 г.

Установка Citrix XenServer tools на линукс

Установка и настройка - http://ittraveler.org/ustanovka-i-nastrojka-citrix-xenserver-chast-1/


Для начала нужно подключит миниобраз к нашей виртуальной ОС. Следующий этап монтирование этого миниобраза в систему — тут нам на помощь приходит следующая команда:

mount /dev/cdrom /mnt

Следующий шаг:

bash /mnt/Linux/install.sh

Смотрим содержимое примонтированного каталога с помощью:

ls -l /mnt
ls -l /mnt/Linux

После чего устанавливаю нужный пакет, например вот так:

dpkg -i /mnt/Linux/xe-guest-utilities_6.1.0-1031_amd64.deb

По окончании установки отмонтируем CD-Rom:

umount /mnt

И перегружаем машинку:

reboot

После перезагрузки страшная надпись пропадает и нам становятся доступны вкусные плюшечки…

Elastix Отчеты в CDR Reports

Если не выгружаются отчеты в CDR Reports:
В /var/www/html/libs/paloSantoCDR.class.php
Заменить
 $sPeticionSQL .= " LIMIT ? OFFSET ?"; 
на
 $sPeticionSQL .= " LIMIT ".$limit." OFFSET ".$offset;
Заменить 
 array_push($paramSQL, $limit, $offset); 
на
 //array_push($paramSQL, $limit, $offset);

Чтобы пользователи не имеющие прав администратора могли полностью просматривать CDR Reports:
В веб интерфейсе создать группу "Reports", и указать куда ее члены будут иметь доступ.
В /var/www/html/libs/paloSantoACL.class.php
После 
 $is = array_search('1', $arrGroup);
Добавить
 if(isset($arrGroup['Reports'])) 
  $is=true; 

Русификация голоса:
Содержимое этих архивов cкопировать в /var/lib/asterisk/sounds/ru, предварительно его очистив. В /etc/asterisk/sip_general_custom.conf добавить language=ru.

Обновление Roundcube:
В /etc/yum.repos.d/elastix.repo
Добавить
 [nux-php52]
 name=nux-php52
 baseurl=http://dl.nux.ro/rpm/$releasever/php52/$basearch/
 gpgcheck=0
 enabled=1

Выполнить yum update php*

В /etc/php.ini
Заменить
 ;date.timezone = 
на
 date.timezone = Asia/Novosibirsk (ну или другой город)


Скачать можно отсюда
Распаковать в /var/www/html/mail, не забыв сохранить оригинальные main.inc.php и db.inc.php. 
Удалить в mysql.update.sql начальную часть до описания обновления с версии 0.3.1.
Обновить базу mysql -u root -p roundcubedb < mysql.update.sql
иногда надо дать права на каталоги temp и logs.
Запустить update.sh.

Разрешить браузерам автозаполнение полей «логин» и «пароль».
В /var/www/html/mail/program/include/rcube_template.php
Заменить 
 $user_attrib = $autocomplete > 0 ? array() : array('autocomplete' => 'off'); 
на 
 $user_attrib = $autocomplete > 0 ? array() : array('autocomplete' => 'on');
Заменить 
 $host_attrib = $autocomplete > 0 ? array() : array('autocomplete' => 'off'); 
на 
 $host_attrib = $autocomplete > 0 ? array() : array('autocomplete' => 'on');
Заменить 
 $pass_attrib = $autocomplete > 1 ? array() : array('autocomplete' => 'off'); 
на 
 $pass_attrib = $autocomplete > 1 ? array() : array('autocomplete' => 'on');

Много полезных плагинов доступно тут.

ЗЫ Если автору не лень буду благодарен если он добавит эти советы в пост(предварительно оформив :-)) ), может кому пригодится.

среда, 8 июля 2015 г.

TCPdump

tcpdump -s 2500 host 213.145.43.128 or host адрес с которого совершается вызов -w /root/80215532.cap 
(Считываем пакеты каждые 2500мсек хоста sip.zebra.ru и сохраняем в папку под именем 80215532.cap) данный файл можно будет открыть в WiresShark и найти проблему.

четверг, 2 июля 2015 г.

Elastix за Nat, проброс iax2, DFL-260e, mikrotik

В одном из постов я писал, как объединить АТС Elastix в корпоративной сети по VPN, здесь будет описано, как объединить Elastix через внешнюю сеть, посредством публикации портов на маршрутизаторах D-link 260e и Mikrotik.

На Elastix_1
Вносим изменения в файл sip_general_custom.conf:
externip=95.79.34.212
localnet=192.168.20.0/255.255.255.0nat=yescanreinvite=noregistertimeout=20registerattempts=0maxexpiry=3600minexpiry=60


2. Создаем Trunk IAX2
PBX -> PBX Configurations -> Trunk
Название транка: Moscow&Saratov
Исходящий ID номер: 3100
Название транка: Saratov (Должен совпадать с контекстом PEER на Elastix_2)

Контекст PEER
type=friend
context=from-internal
host=192.168.20.15
username=Moscow
secret=6459292

qualify=yes
qualifyfreqok=25000
transfer=yes
trunk=yes
forceencryption=yes  - Для шифрования, чтобы нас никто не подслушивал можно добавить
auth=md5

Создаем маршрут из Москвы в Саратов
PBX -> PBX Configurations -> Outbound Routes
Название маршрута: MoscowToSaratov
Шаблоны номеров: совпадение шаблона по 32ХХ
Последовательность транков: Moscow&Saratov


В консоли (или в меню tools) команда iax2 show peers должна показать что-то вроде:

Name/Username    Host                 Mask             Port          Status      Description
spb/msk          x.x.x.x   (S)  255.255.255.255  4569 (T)  (E) OK (12 ms)

1 iax2 peers [1 online, 0 offline, 0 unmonitored]
_________________________________________________________________________
На Elastix_2
Вносим изменения в файл sip_general_custom.conf:
externip=45.23.100.212

localnet=192.168.100.0/255.255.255.0nat=yescanreinvite=noregistertimeout=20registerattempts=0maxexpiry=3600minexpiry=60

PBX -> PBX Configurations -> Trunk
Добавляем iax2 транк
Название транка: Saratov&Moscow
Исходящий ID номер: 3200
Название транка: Moscow (Должен совпадать с контекстом PEER на Elastix_1)

Контекст PEER
type=friend
context=from-internal
host=192.168.100.5
username=Saratov
secret=6459292

qualify=yes
qualifyfreqok=25000
transfer=yes
trunk=yes
forceencryption=yes  - Для шифрования, чтобы нас никто не подслушивал можно добавить
auth=md5

Создаем маршрут из Москвы в Саратов
PBX -> PBX Configurations -> Outbound Routes
Название маршрута: SaratovToMoscow
Шаблоны номеров: совпадение шаблона по 31ХХ
Последовательность транков: Saratov&Moscow


Проброс портов на DFL-260e

Заходим в Objects -> Services
Создаем Сервис:
Add -> TCP/UDP Service

Name: IAX2
Type: UDP
Source: 0-65535
Destination: 4569
Ok.

Далее идем в Rules -> IP Rules
Add -> IP Rule Folder (Создаем папку VOIP. В нее будем складывать все правила связанные с телефонией)

Первое правило:
Add -> IP Rule
Name: IAX2
Action: SAT
Service: IAX2
Source: wan  -  all-nets
Destination: core - wan_ip
Во вкладке SAT
Destination IP:  ip адрес Elastix (локальный)
New Port: 4569
Ok.

Второе правило:
Add -> IP Rule
Name: IAX2_Allow
Action: Allow
Service: IAX2
Source: wan  -  all-nets
Destination: core - wan_ip
Ok.

Настройка на DFL-260e окончена

Настраиваем Mikrotik

IP ->FireWall -> Nat
General:
Chain: dstnat
Protokol: udp
Dst.Port: 4569
In.interface: ether1gateway
Action:
Action: netmap
To Addresess: ip адрес Elastix (локальный)
To ports: 4569







вторник, 30 июня 2015 г.

Объединение двух и более PBX Elastix

Основные критерии должны соответствовать:

1. Моя задача состоит в том чтобы внутри корпоративной сети объединить 2 и более Elastix. PBX.
Сеть: Elastix_1: 192.168.100.5 Москва
Сеть: Elastix_2: 192.168.20.15 Саратов

Данные сети объединены по VPN с ipsec шифрованием. То есть из 192.168.100.0 сети я свободно пингую сеть 192.168.20.0 и обратно.

Две АТС Elastix будут объединены посредством протокола iax2.
Для этого необходимо, чтобы порты udp 4569 внутри сети были открыты.

Необходимо определиться с нумерацией внутренних номеров.

3100 - 3199 (Москва)
3200 - 3299 (Саратов)
3300 - 3399 (Калининград)

Выполнение работ:

На Elastix_1

PBX -> PBX Configurations -> Trunk
Добавляем iax2 транк
Название транка: Moscow&Saratov
Исходящий ID номер: 3100
Название транка: Saratov (Должен совпадать с контекстом PEER на Elastix_2)

Контекст PEER
type=friend
context=from-internal
host=192.168.20.15
username=Moscow
secret=6459292

qualify=yes

Создаем маршрут из Москвы в Саратов
PBX -> PBX Configurations -> Outbound Routes
Название маршрута: MoscowToSaratov
Шаблоны номеров: совпадение шаблона по 32ХХ
Последовательность транков: Moscow&Saratov

На Elastix_2

PBX -> PBX Configurations -> Trunk
Добавляем iax2 транк
Название транка: Saratov&Moscow
Исходящий ID номер: 3200
Название транка: Moscow (Должен совпадать с контекстом PEER на Elastix_1)

Контекст PEER
type=friend
context=from-internal
host=192.168.100.5
username=Saratov
secret=6459292

qualify=yes

Создаем маршрут из Москвы в Саратов
PBX -> PBX Configurations -> Outbound Routes
Название маршрута: SaratovToMoscow
Шаблоны номеров: совпадение шаблона по 31ХХ
Последовательность транков: Saratov&Moscow


четверг, 25 июня 2015 г.

Elastix за NAT (в локальной сети)

Не всегда возможно выделить серверу с Elastix прямой ip адрес. Я бы даже, в целях безопасности, рекомендовал "прятать" сервер за маршрутизатором с ретрансляцией адресов (NAT).
Без дополнительных настроек удаленные клиенты не смогут присоединиться к серверу или будет проблема в односторонней слышимости.
Предлагаю вам пример настройки для Elastix по протоколу SIP который расположен за маршрутизатором с NAT. Эта инструкция также подойдет и для всех других сборок Астериска с FreePBX (TrixBox, AsteriskNOW)
  1. Настраиваем Elastix.
    Вносим изменения в файл sip_general_custom.conf:
    externip=10.20.30.40
    localnet=192.168.0.0/255.255.255.0
    nat=yes
    canreinvite=no
    registertimeout=20
    registerattempts=0
    maxexpiry=3600
    minexpiry=60

    Первой строкой указываем внешний ip адрес вашего интернет соединения.
    Второй строкой указываем вашу локальную подсеть. Если у вас несколько сетей то и строк может быть несколько.

    При желании все эти настройки можно сделать через веб интерфейс используя Unembedded freePBX, но это не рекомендуется во избежании конфликтов.
  2. Настраиваем маршрутизатор
    Нам необходимо пробросить 5060 и 10000-20000 внешние udp порты на сервер Elastix. Для маршрутизаторов MikroTik будут такие правила:
    /ip firewall filter add action=accept chain=forward dst-address=192.168.0.10 dst-port=5060,10000-20000 protocol=udp in-interface=wan
    /ip firewall nat add action=dst-nat chain=dstnat dst-port=5060,10000-20000 in-interface=wan protocol=udp to-addresses=192.168.0.10
    где 192.168.0.10 адрес вашего Elastix сервера
    wan порт на маршрутизаторе к которому подключен интернет.
    Конечно с вашего Elastix должен быть настроен выход в интернет.

    Если вы сомневаетесь про порты 10000-20000, то откройте файл rtp.conf и посмотрите какие у вас порты указаны в настройках.

Данная настройка великолепно работает с sip телефонами которые имеют как прямой ip адрес, так и те, которые расположена также за NAT, при условии что промежуточные провайдеры не блокируют voip трафик. При этом в дополнительной настройки маршрутизатора со стороны клиента нет необходимости. Вам просто в клиенте надо указать внешний ip адрес вашего Elastix.
Но, для 100% надежности, я бы рекомендовал клиентов подключать через vpn, чтобы весь трафик был как бы  локальным.
Информация взята с сайта http://papa-admin.ru/blog/elastix/103-elastix-nat.html

Зарегистрируйся ФРИЛАНСЕРОМ, будь с нами!


Установка Trunk с провайдером MangoOffice для входящих и исходящих звонков

Через веб морду Elastix:
PBX -> PBX Configurations -> Trunk

Название транка: Mango
Исходящий ID номер: Mango
Опции Caller ID (CID): Разрешить любые CID
Название транка: Mango

Исходящие настройки:
Опции для PEER:
username=user  (user создается на стороне провайдера)
usereqphone=yes
type=peer&friend
secret=*****
qualify=yes
nat=yes
outboundproxy=mangosip.ru
insecure=port,invite
host=mangosip.ru
fromuser=user
dtmfmode=rfc2833
disallow=all
allow=alaw&ulaw
canreinvite=no
fromdomain=mangosip.ru
context=from-trunk

Установка для входящих соединений
Ничего не пишем

Строка регистрации: 
user:сюда пароль@mangosip.ru/user
** Исходящие уже работают можно проверять

Для входящих необходимо указать куда направлять звонок
Есть несколько вариантов отправки звонка.
1. На конкретного сотрудника
2. В группу вызова
3. В очередь

Настройка на конкретного сотрудника:
PBX -> PBX Configurations -> Inbound Routes
Описание: Gorod
Номер DID: указать номер телефона предоставляемым провайдером или username из контекста Trunk (исходящие настройки опции для PEER) (Если не указывать то все звонки будут переадресовываться в указанном направлении)
Установить направление: Внутренние номера - выбрать сотрудника

Настройка на группу вызова:
1. PBX -> PBX Configurations -> Ring Groups
Номер группы вызова: 600 (любой)
Описание группы: Operators
Стратегия дозвона: звонят все (на выбор)
Лист внутренних номеров: указать внутренние номера операторов
Назначение если никто не ответил: ну, это по желанию (чтобы положить трубку укажите: терминировать звонок - положить трубку)

Далее идем в
2. PBX -> PBX Configurations -> Inbound Routes
Описание: Gorod
Номер DID:  указать номер телефона предоставляемым провайдером или username из контекста Trunk (исходящие настройки опции для PEER) (Если не указывать то все звонки будут переадресовываться в указанном направлении)
Установить направление: Группа вызова - указываем группу

Настройка в очередь:
1. PBX -> PBX Configurations -> Queues
Номер очереди: 100
Название очереди: q100
Статичные агенты (это постоянные номера которые будут забирать входящий звонок из очереди): указать внутренние номера

Далее идем в
2. PBX -> PBX Configurations -> Inbound Routes
Описание: Gorod
Номер DID:  указать номер телефона предоставляемым провайдером или username из контекста Trunk (исходящие настройки опции для PEER) (Если не указывать то все звонки будут переадресовываться в указанном направлении)
Установить направление: Очереди - выбираем созданную очередь

Загрузка русских голосовых фраз в Elastix

  1. заходим на сайт http://downloads.asterisk.org/pub/telephony/sounds/
  2. скачиваем необходимые голосовые фразы: стандартные и расширенные
командой: wget https://github.com/pbxware/asterisk-sounds/tarball/master  (расширенные аналогично)
  1. сохраняем и разархивируем во временной директории на локальном компьютере в одну папку 
  2. содержимое архива закачиваем по ftp на Elastix в директорию /var/lib/asterisk/sounds/ru
  3. в sip_general_custom.conf добавляем строку language=ru (отредактировать файл можно через веб-интерфейс, меню PBX-Tools-Asterisk File Editor)
  4. сохраняем, перезагружаем. (из терминала  /etc/init.d/asterisk restart)
Информация взята с сайта http://papa-admin.ru/blog/elastix/105-zagruzka-russkikh-golosovykh-fraz-v-elastix.html

среда, 24 июня 2015 г.

вторник, 23 июня 2015 г.

Установка кодека кодека G.729 & G.723 на Elastix

Готовый  кодек по адресу http://asterisk.ru/codecs

Действия:

  1. Заходим по ssh на сервер с Elastix, в командной строке вводим asterisk -rx "core show translation". При отсутствии кодека G729 его или не будет в списке или напротив него будут прочерки. Это говорит что он работает только в режиме passtrough.
  2. Посещаем сайт http://asterisk.hosting.lv/ и выбираем нужную версию кодека. Для моего сервера (на Corei2 запущенного под WMware) подошел codec_g729-ast110-gcc4-glibc-x86_64-core2.so
  3. На сервере заходим в директорию с модулями: cd /usr/lib/asterisk/modules/ (Для 64 битных систем папка /usr/lib64/asterisk/modules). Вообще расположение папок можно посмотреть в /etc/asterisk/asterisk.conf)
  4. Скачиваем подходящий модуль wget http://asterisk.hosting.lv/bin/codec_g729-ast110-gcc4-glibc-x86_64-core2.so
  5. Загружаем модуль в Elastix: asterisk -rx "module load codec_g729-ast110-gcc4-glibc-x86_64-core2.so".
    Если модуль подошел и загрузка произошла успешно, получим ответ 
    Loadedcodec_g729-ast110-gcc4-glibc-x86_64-core2.so
  6. Смотрим результат: asterisk -rx "core show translation"
  7. Не обязательно, но на всякий случай перезапускаем астериск: asterisk -rx "core restart when convenient"
По аналогии устанавливается и кодек G.723