artem
18.11.2015
4264

Настройка безопасного доступа внешних приложений к записям и статистике разговоров Asterisk на примере CentOS

В некоторых случаях внешним приложениям, например CRM-системам, необходим доступ к статистике разговоров и к файлам записей. Файлы можно получать по FTP, а статистику брать напрямую из базы данных asteriskcdrdb. В рамках данной статьи будет рассмотрена организация подобного доступа с максимально возможной безопасностью, т. е. доступ FTP и к базе данных будет только с возможностью чтения.

1. Монтирование директории записей в корневой каталог пользователя FTP.

Для начала необходимо создать директорию с названием reccrm (можно любое на Ваше усмотрение) командой:

mkdir /home/reccrm

Далее смонтировать папку с записями разговоров Asterisk в созданную директорию.

mount –bind /var/spool/asterisk/monitor /home/reccrm

Символьные ссылки не будут работать в FTP, поэтому обязательно монтирование директории в директорию

Но данная команда смонтирует только до следующей перезагрузки, соответственно необходимо добавить правило в fstab. Любым редактором открыть файл /etc/fstab
и добавить следующую строку в конце файла:

/var/spool/asterisk/monitor /home/reccrm none bind,auto 0 0

Далее проверить командой mount, примонтировалась ли директория

Настройка безопасного доступа внешних приложений к записям и статистике разговоров Asterisk. Проверка командой mount

2. Установка и настройка сервера FTP

Будет использоваться vsftpd из стандартных репозиториев CentOS.

yum install vsftpd

Далее необходимо внести изменения в конфигурационный файл /etc/vsftpd.conf

# запрет анонимного пользователя
anonymous_enable=no
connect_from_port_20=YES
write_enable=no
local_umask=0777
file_open_mode=0777
xferlog_enable=YES
xferlog_file=/var/log/xferlog
xferlog_std_format=YES
async_abor_enable=YES
pam_service_name=vsftpd
tcp_wrappers=YES
max_clients=20
max_per_ip=5
local_enable=YES
# закрытие пользователей в своих локальных директориях — запрещаем переход в вышестоящие директории
userlist_deny=no
chroot_local_user=yes
# вешаем FTP-сервер на нестандартный порт
listen=yes
listen_port=41041
# ограничение рабочего диапазона портов
pasv_enable=yes
pasv_min_port=40000
pasv_max_port=50000
port_enable=yes
port_promiscuous=no

Добавление пользователя:

useradd -d /home/reccrm -s /sbin/nologin crmftpuser

Задание пароля для пользователя:

passwd crmftpuser

Добавление пользователя в группу asterisk:

usermod -a -G asterisk crmftpuser

Смена владельца домашней директории:

chown -R crmftpuser /home/reccrm

После данных манипуляций можно пробовать логиниться на FTP.

Так как порт подключения был изменен, то подключение по стандартному порту не пройдет:

Настройка безопасного доступа внешних приложений к записям и статистике разговоров Asterisk. Подключение по стандартному порту
Теперь проверка по нестандартному порту:

Настройка безопасного доступа внешних приложений к записям и статистике разговоров Asterisk. Подключение по нестандартному порту
3. Настройка доступа к статистике разговоров

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

В командной строке БД необходимо выполнить следующую команду:

GRANT SELECT ON ‘asteriskcdrdb’.* TO some_user@’%’ IDENTIFIED BY ‘some_password’;

После проведенных настроек нужно будет сделать все необходимые пробросы портов и тестировать подключение с Вашей ЦРМ к серверу Asterisk.

 
avatar
  Подписаться  
Уведомление о

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

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

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

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

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

ONLINE

Why Choose HUGE?

Unlimited pre-designed elements

Each and every design element is designed for retina ready display on all kind of devices

User friendly interface and design

Each and every design element is designed for retina ready display on all kind of devices

100% editable layered PSD files

Each and every design element is designed for retina ready display on all kind of devices

Created using shape layers

Each and every design element is designed for retina ready display on all kind of devices