Яндекс.Метрика

Курс Zabbix: мониторинг Asterisk и VoIP

Курс Zabbix: мониторинг Asterisk и VoIP с 8 сентября по 12 сентября

Количество
свободных мест

8 Записаться

Дистанционные курсы по Asterisk

Дистанционные курсы по Asterisk с 18 августа по 24 августа

Количество
свободных мест

2 Записаться

Курсы по Mikrotik MTCRE

Курсы по Mikrotik MTCRE с 8 декабря по 11 декабря

Количество
свободных мест

6 Записаться
Создание двухфакторной аутентификации для VPN через звонок на Asterisk
11
Доклад
Роман Козлов
Создание двухфакторной аутентификации для VPN через звонок на Asterisk
скачать презентацию

Создание двухфакторной аутентификации для VPN через звонок на Asterisk

Одной из актуальных задач в работе крупных распределённых контакт-центров является обеспечение безопасного доступа сотрудников к внутренним корпоративным ресурсам. Особенно это критично в случае работы с удалёнными операторами, использующими собственные устройства для подключения.

В рамках реализации одного из проектов возникла необходимость внедрения простой, удобной и максимально экономичной двухфакторной аутентификации (2FA) для удалённых пользователей, работающих через VPN. Рассматриваемое решение базируется на использовании MikroTik в связке с телефонной системой Asterisk, исключает необходимость установки стороннего ПО на устройства пользователей и не требует запуска дополнительных веб-сервисов.

Описание проекта

Центр обработки звонков, в котором велась реализация, ежедневно обслуживает от 150 до 600 операторов. Подключения осуществляются с личных компьютеров сотрудников через различные клиент-серверные VPN. Учитывая невозможность полного контроля над рабочими устройствами и необходимый уровень информационной безопасности, было принято решение об усилении контроля доступа с использованием двухфакторной схемы.

Основная проблема заключалась в необходимости реализации удобной 2FA для непрофессиональных пользователей (операторов), часто не имеющих даже современных смартфонов. Стандартные OTP-решения оказались неудобными в условиях реального колл-центра.

Неудачная попытка: реализация через веб-сервер

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

  • веб-сервер, обрабатывающий запросы от MikroTik;
  • локальную базу данных соответствия логинов и телефонных номеров;
  • автоматический звонок с Asterisk при попытке подключения к VPN;
  • подтверждение доступа пользователем путём нажатия цифры на телефоне.

Однако система оказалась:

  • неудобной в поддержке (отсутствовал интерфейс, всё управлялось через SQL-запросы);
  • дорогой (многочисленные платные звонки при каждом отключении VPN из-за блокировок);
  • сложной для доработки (увольнение единственного разработчика оставило систему без сопровождения);
  • в итоге — непригодной к эксплуатации.

Рабочее решение: два скрипта вместо веб-сервера

Второй подход был реализован за несколько часов и опирался на максимально простую схему:

  1. Пользователь подключается к VPN.
  2. MikroTik через радиус получает номер телефона и сохраняет его как комментарий в адрес-листе.
  3. При подключении пользователь блокируется, доступ ограничивается.
  4. Для авторизации пользователь должен самостоятельно позвонить на специальный номер Asterisk.
  5. Asterisk получает Caller ID, сверяет его с данными в адрес-листе и, в случае совпадения, разблокирует IP-адрес пользователя на MikroTik.
  6. После этого доступ к ресурсам открывается.

Таким образом, звонки инициируются не системой, а пользователем, что исключает расходы на связь. Веб-сервер и база данных не требуются вовсе.

Технические детали

  • Для передачи номера телефона на MikroTik использован нестандартный атрибут RADIUS — Mikrotik-Wireless-Comment, который обрабатывается через парсинг логов в реальном времени.
  • Активация процедуры осуществляется на этапе PPP-подключения (через VPN).
  • При отключении VPN-пользователя его IP-адрес автоматически удаляется из адрес-листа.

Сторона Asterisk:

  • реализуется простой диалплан, вызывающий внешнюю утилиту;
  • по Caller ID выполняется SSH-подключение к MikroTik с удалением IP-адреса из списка блокировки;
  • при необходимости можно настроить IVR или использовать отдельный номер.

Дополнительные возможности

  • При попытке неавторизованного доступа MikroTik способен выдать веб-страницу с инструкцией, куда звонить и как получить доступ (через встроенный web-proxy).
  • Можно логировать все попытки подключения и авторизации через syslog.
  • Весь механизм основан исключительно на стандартных инструментах MikroTik и Asterisk, без использования внешних API, баз данных и серверов.

Преимущества

  1. Простота: два скрипта, никаких зависимостей от веб-сервисов.
  2. Низкие расходы: исходящие звонки отсутствуют.
  3. Удобство для пользователей: всё, что требуется — просто позвонить.
  4. Безопасность: номера телефонов хранятся в RADIUS; доступ открывается строго по сверке Caller ID.
  5. Минимум требований к инфраструктуре: используется существующий RADIUS, MikroTik и Asterisk.

Заключение

Решение продемонстрировало высокую эффективность и стабильность в условиях реального контакт-центра. Благодаря простоте реализации оно может быть воспроизведено любым системным инженером без навыков программирования. Также реализована возможность легко масштабировать схему и адаптировать под различные сценарии.

Ежегодная конференция по Asterisk 2025!

Билеты уже в продаже!

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

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

Наши
клиенты

Посмотреть все