WIPS/WIDS - внутренний сервис точки доступа (ТД) по предотвращению и обнаружению вторжений в беспроводную сеть.
По своей сути этот механизм анализирует весь трафик в радио окружении ТД, делает вывод о наличии в сети угроз безопасности, оповещает о них администратора СУ и, при необходимости, предпринимает действия по подавлению этих угроз.
В текущем релизе ПО точки доступа (1.18.0) поддерживается следующий функционал:
eltex-wids-service - вспомогательный сервис на серверной стороне, отвечающий за распространение белых/черных списков "вражеских" ТД между участниками WIPS/WIDS.
По умолчанию сервис WIDS не установлен. Для работы сервиса с ТД необходимо его установить следующими командами: sudo apt update |
Лицензия ограничивает настройку и мониторинг сервиса WIPS/WIDS в СУ.
В демо-лицензии EMS (лицензия по-умолчанию) доступна активация сервиса на 2-х ТД.
Количество доступных и использованных на сервере лицензий можно увидеть в GUI EMS в разделе Справка → Лицензии:

Либо непосредственно в самом файле лицензий /usr/lib/eltex-ems/conf/licence/licence.xml:
<group>
<title>Wireless WIPSWIDS</title>
<count>10</count>
<typeList>
<type>WiFi</type>
</typeList>
</group> |
Если лицензия на WIPS/WIDS присутствует в списке, то в GUI EMS в меню "Wireless" будет доступна для настройки вкладка "WIDS manager":
![]()
А на вкладке "Доступ" точки доступа появятся соответствующие флаги активации сервиса.
В GUI EMS явно регулируется какой точке доступа отдать лицензию. Для этого в параметрах доступа точки есть две настройки :

Определить, что сервис успешно активирован, можно по нескольким признакам:

Все точки доступа в эфире можно разделить на три группы:
Для однозначного выявления всех "не доверенных" ТД эфире, в Beacon пакет точек доступа, использующих сервис WIDS, добавляется динамически изменяющаяся зашифрованная подпись.
Расшифровать пакет могут лишь те точки, на которых настроен идентичный ключ Shared key в конфигурации сервиса.
Если подписи в пакете нет, либо при его декодировании получен не ожидаемый результат, точка доступа, от которой был получен пакет, будет считаться "не доверенной". Иначе "доверенной"
Если "не доверенная" точка доступа имеет MAC-адрес или SSID, совпадающий с текущими значениями на сканирующей ТД, то такая точка будет считаться "вражеской", о чем будет сообщено администратору СУ, посредством отправки с ТД соответствующего трапа в систему управления.
|
Для более гибкой работы сервиса, есть возможность явно указать список ТД, которые должны или не должны считаться "доверенными" ТД. Этот список распространяется между точками доступа вспомогательным сервисом eltex-wids-service.
Основная настройка сервиса происходит во вкладке "WIDS/WIPS" в меню "Конфигурация".

| Имя параметра | Допустимые значения | Описание | ||
|---|---|---|---|---|
| WIDS Parameters | ||||
| Status | Full/Down/Key-only | Full - активировать работу сервиса отслеживания атак. Down - отключить сервис. Значение по-умолчанию. Key-only - активировать сервис, но отключить детектирование угроз. В режиме Key-only точка будет добавлять шифрованную подпись в Beacon для того, чтобы на встречных ТД попасть в список "доверенных" ТД, но сама детектировать угрозы не будет. Для настройки доступно лишь поле Shared key. | ||
| Shared key | ASCII строка от 10 до 32 символов | Общий ключ, используемый для отслеживание доверенных точек доступа в радиоэфире. По-умолчанию значение не выставлено и активировать сервис нельзя, пока оно не будет установлено. | ||
| WIDS list URL | ws://<ip>:<port>/MacLists | Путь до вспомогательного сервиса eltex-wids-service. Не обязательная настройка. | ||
| WIDS MAC list | Имя списка мак адресов | Предоставляется возможность выбрать один из списков MAC-адресов, созданных в разделе "Wireless - WIDS Manager" Не обязательная настройка. | ||
| Scan mode | Passive/Sentry/Home-only | Режим сканирования эфира. Passive - в этом режиме точка доступа через заданные промежутки времени (Passive scan interval) будет кратковременно (Passive scan duration) менять свой текущий канал (на котором идет работа с клиентами) на очередной канал из общего списка, для обнаружения других ТД в эфире. Качество услуги, предоставляемой клиенту, в момент сканирования не ухудшается. Значение по-умолчанию. Sentry - режим сканера - в данном режиме не предусмотрена работа точки доступа с клиентами. Точка постоянно сканирует весь список каналов и максимально быстро обнаруживает угрозы. Home-only - режим, при котором точка работает с клиентом и периодически сканирует эфир только на рабочем канале. Отличие от режима Passive заключается в том, что точка в момент сканирования не меняет канал. | ||
| Passive scan interval, sec | 5..3600 | Период пассивного сканирования. Значение по-умолчанию: 20 сек. | ||
| Passive scan duration, ms | 10..2000 | Длительность пассивного сканировании. Значение по-умолчанию: 100 мс. | ||
| Home-only scan interval, sec | 5..3600 | Период сканирования в режиме Home-only. Значение по-умолчанию: 20 сек. | ||
| Home-only scan duration, ms | 10..2000 | Длительность сканирования в режиме Home-only. Значение по-умолчанию: 100 мс. | ||
| Prevention mode | None/Rogue/All | Режим подавления угроз. None - режим выключен. Значение по-умолчанию. Rogue - сканирующая ТД детектирует MAC-адреса клиентов, которые подключены к "вражеским" ТД, и отравляет DeAuth пакеты от имени "вражеской" ТД клиенту и от имени клиента "вражеской" ТД. All - в данном режиме форсированный DeAuth пакет отправляется не только клиентам, подключенным к "вражеским" ТД, а вообще всем, кто подключен к "не доверенной" ТД. | ||
| Misconfigure detection | Off/On | Функционал, при включении которого точка доступа отправляет в систему управления трап при каждом изменении в настройках конфигурации, если итоговая конфигурация небезопасна. Значение по-умолчанию: off С критериями небезопасной конфигурации можно ознакомиться в статье - v1.23_Критерии небезопасной конфигурации
| ||
| DoS Detection Parameters | ||||
| Mode | Up/Down | Активирование функции детектирования DoS-атак. Значение по-умолчанию: down. DoS атака определяется превышением лимита управляющих фреймов разных типов в радиоэфире. Анализируются только фреймы, в которых destination mac совпадает с mac-адресом сканирующей ТД. (исключение Beacon) | ||
| Interval, sec | 1..86400 | Интервал, в течение которого идет подсчет фреймов. Если за это время заданный лимит превышен, то будет сгенерирован SNMP-трап об обнаружении атаки.
Значение по-умолчанию: 1 сек. | ||
| DoS-trigger | 1..1000000000 | Параметр показывает, насколько должно измениться количество пакетов по сравнению с предыдущим периодом, чтобы был отправлен трап о DoS-атаке. Значение по-умолчанию: 250. | ||
| ... treshlold | 1..10000 | Пороговый лимит для каждого типа управляющего фрейма (Assoc, ReAssoc, DiAssoc, Auth, DeAuth, RTS, CTS, Prob, Beacon, BlockAck, BlockAckReq, Pspoll ) Значение по-умолчанию: 500. | ||
| Bruteforce Detection Parameters | ||||
| Interval, sec | 0..86400 | Функция детектирования атаки перебора паролей. В течение указанного интервала считается количество неуспешных авторизаций пользователей на SSID с шифрованием (Personal и Enterprise) активных на сканирующей ТД. Если порог Threshold был превышен, в СУ отправляется трап об обнаружении атаки "перебор паролей".
Значение по-умолчанию: 5 сек. При значении параметра Interval = 0, детектирование атаки "перебор паролей" будет отключено. | ||
| Threshold | 1..10000 | Пороговый лимит количества неуспешных авторизаций. Значение по-умолчанию: 25. | ||
| Enable MAC Blacklist | On/Off | При включении данной функции MAC-адреса клиентских устройств, замеченных за атакой "перебор паролей", будут добавлены в черный список на период времени Timeout. При попадании в "MAC Blacklist" устройство будет игнорироваться точкой доступа на период времени Timeout, в результате чего, клиент не сможет подключиться к сети. Значение по-умолчанию: off | ||
| Timeout, sec | 1..86400 | Время хранения MAC-адреса клиентского устройства в черном списке. Значение по-умолчанию: 1800 сек | ||
Начиная с версии ПО точки доступа 1.18.0 появилась возможность отправки трапа о попытке несанкционированного доступа к ТД в СУ. Данный функционал (ap-security) включен на точке по-умолчанию и работает следующим образом:
Если в течение 180 секунд будет совершено 3 попытки входа в интерфейс управления ТД с неверными учетными данными (login/password) посредством telnet/ssh/web/consol, то ip-адрес устройства, с которого были совершены неудачные попытки входа, будет добавлен в черный список на 5 минут, а в СУ отправится предупреждающий трап.
|
| Имя параметра | Допустимые значения | Описание |
|---|---|---|
| logon-snmp-retries | 0..127 | Количество неудачных попыток входа в интерфейс управления ТД, при достижении которых за интервал logon-snmp-interval, ip-адрес устройства будет добавлен в "черный список". Значение по умолчанию: 3 |
| logon-snmp-interva, sec | 1..86400 | Интервал, в течение которого ведется подсчет неудачных попыток входа в интерфейс управления ТД. Значение по умолчанию: 180 сек |
| logon-snmp-freeze-interval, sec | 0..600 | Время, в течение которого ip-адрес устройства, с которого была зафиксирована попытка входа в интерфейс управления ТД с неверными учетными данными, будет находиться в черном списке. Значение по умолчанию: 300 сек |
Редактировать и просматривать значения параметров, а также включать/выключать функционал отправки трапов о попытке несанкционированного входа в интерфейс управления ТД, можно только через CLI точки доступа.
Команда для вывода значений параметров: get ap-security Пример вывода команды: Property Value --------------------------------- logon-snmp-retries 3 logon-snmp-interval 180 logon-snmp-freeze-interval 300 Команда для изменения значения параметра: set ap-security <имя_параметра> <значение> Пример: set ap-security logon-snmp-interval 86400 Команда для выключения работы функционала: set ap-security logon-snmp-retries 0 Для сохранения внесенных изменений введите команду: save-running |
Функционал WIDS/WIPS доступен на следующих ТД: WEP-3ax – начиная с версии ПО 1.14.0. WEP-30L, WEP-30L-Z, WOP-30L, WOP-30LS, WOP-30LI – начиная с версии ПО 2.6.0. WEP-200L, WOP-20L - начиная с версии ПО 2.7.0 |
Для возможности настройки сервиса на ТД необходимо включить "Вкл WIPS/WIDS сервис" на вкладке "Доступ" устройства.

После этого настройка сервиса станет доступна во вкладке "config" в меню "Управление". Если вкладка "config" в меню "Управление" открывалась до включения сервиса и раздел "Настройка WIDS" не отображается - необходимо нажать кнопку
на вкладке "Управление".
Основная настройка сервиса происходит во вкладке "config" в меню "Управление".


| Имя параметра | Допустимые значения | Описание |
|---|---|---|
| Настройка WIDS | ||
| Включить WIDS | Вкл/Выкл | Включить/отключить сервис WIDS. Значение по-умолчанию: off |
| Общий сетевой ключ | ASCII строка от 10 до 32 символов | Общий ключ, используемый для отслеживание доверенных точек доступа в радиоэфире. По-умолчанию значение не выставлено и активировать сервис нельзя, пока оно не будет установлено. |
| Режим сканирования WIDS | none/passive/sentry | None - режим выключен. Значение по-умолчанию. Passive - в этом режиме точка доступа через заданные промежутки времени (Период пассивного сканирования) будет кратковременно (Продолжительность пассивного сканирования) менять свой текущий канал (на котором идет работа с клиентами) на очередной канал из общего списка, для обнаружения других ТД в эфире. Качество услуги, предоставляемой клиенту, в момент сканирования, практически не деградирует. Sentry - режим сканера - в данном режиме не предусмотрена работа точки доступа с клиентами. Точка доступа всё время сканирует весь список каналов и максимально быстро обнаруживает угрозы. |
| Интерфейс сканирования WIDS | all/wlan0/wlan1 | all - оба интерфейса в диапазоне 2,4 ГГц и 5 ГГц. Значение по-умолчанию. wlan0 - интерфейс в диапазоне 2,4 ГГц. wlan1 - интерфейс в диапазоне 5 ГГц. |
| Период пассивного сканирования, сек | 1..3600 | Период пассивного сканирования.Значение по-умолчанию: 20. |
| Продолжительность сканирования канала для пассивного режима, мс | 10..2000 | Длительность пассивного сканировании. Значение по-умолчанию: 110. |
| Продолжительность сканирования канала для активного режима, мс | 100..2000 | Длительность нахождения ТД на одном канале, для активного сканированиия. Значение по-умолчанию: 200. |
| Режим подавления (WIPS) | none/rogue/all | None - режим выключен. Значение по-умолчанию. Rogue - сканирующая ТД детектирует MAC-адреса клиентов, которые подключены к "вражеским" ТД, и отравляет DeAuth пакеты от имени "вражеской" ТД клиенту и от имени клиента "вражеской" ТД. All - в данном режиме форсированный DeAuth пакет отправляется не только клиентам, подключенным к "вражеским" ТД, а вообще всем, кто подключен к "не доверенной" ТД. |
| URL-адрес службы WIDS-service | ws://<IP>:<Port>/MacLists | Путь до вспомогательного сервиса eltex-wids-service. Не обязательная настройка. Обеспечивает работу с белыми/черными списками MAC |
| Имя списка службы WIDS | Defaut_list | Предоставляется возможность выбрать один из списков MAC-адресов, созданных в разделе "Wireless - WIDS Manager" Не обязательная настройка. Значение по-умолчанию: Defaut_list |
| Включить обнаружение небезопасной конфигурации | Вкл/Выкл | Функционал, при включении которого точка доступа отправляет в систему управления трап при каждом изменении в настройках конфигурации, если итоговая конфигурация по мнению функционала WIDS небезопасна. Значение по-умолчанию: off |
| Bruteforce-detection | ||
| Включить обнаружение атак "перебор пароля" | Вкл/Выкл | Включить/отключить функцию детектирования атаки перебора паролей. Значение по-умолчанию: off |
| Порог количества неудачных попыток авторизаций | 1..10000 | Пороговый лимит количества неуспешных авторизаций. Значение по-умолчанию: 25. |
| Интервал подсчёта неудачных попыток авторизаций, сек | 0..86400 | В течение указанного интервала считается количество неуспешных авторизаций пользователей на SSID с шифрованием (Personal и Enterprise) активных на сканирующей ТД. Если порог был превышен, в СУ отправляется трап об обнаружении атаки "перебор паролей". Значение по-умолчанию: 5 сек. При значении параметра равного 0, детектирование атаки "перебор паролей" будет отключено. |
| Включить блокировку клиентов, уличенных в атаке | Вкл/Выкл | При включении данной функции MAC-адреса клиентских устройств, замеченных за атакой "перебор паролей", будут добавлены в черный список на период времени Timeout. При попадании в "MAC Blacklist" устройство будет игнорироваться точкой доступа на период времени Timeout, в результате чего, клиент не сможет подключиться к сети. Значение по-умолчанию: off |
| Продолжительность блокировки клиентов, сек | 1..86400 | Время хранения MAC-адреса клиентского устройства в черном списке. Значение по-умолчанию: 1800 сек |
| DoS-Detection | ||
| Включить обнаружение атак "отказ в обслуживании" | Вкл/Выкл | Активирование функции детектирования DoS-атак. Значение по-умолчанию: off DoS атака определяется превышением лимита управляющих фреймов разных типов в радиоэфире. Анализируются только фреймы, в которых destination mac совпадает с mac-адресом сканирующей ТД. (исключение Beacon) |
| Интервал подсчёта пакетов в радиоэфире, сек | 0..86400 | Интервал, в течение которого идет подсчет фреймов. Если за это время заданный лимит превышен, то будет сгенерирован SNMP-трап об обнаружении атаки. Значение по-умолчанию: 1 сек. |
| Порог резкого изменения количества пакетов относительно предыдущего периода времени | 0..86400 | Параметр показывает, насколько должно измениться количество пакетов по сравнению с предыдущим периодом, чтобы был отправлен трап о DoS-атаке. Значение по-умолчанию: 250. |
| Период отправки сообщения о детектировании атаки в секундах | 0..604800 | Значение по-умолчанию: 20 |
| Пороговое значение пакетов типа "Association request" | 0..86400 | Значение по-умолчанию: 500 |
| Пороговое значение пакетов типа "Reassociation request" | 0..86400 | Значение по-умолчанию: 500 |
| Пороговое значение пакетов типа "Diassociation request" | 0..86400 | Значение по-умолчанию: 500 |
| Пороговое значение пакетов типа "Probe request" | 0..86400 | Значение по-умолчанию: 500 |
| Пороговое значение пакетов типа "Beacon" | 0..86400 | Значение по-умолчанию: 500 |
| Пороговое значение пакетов типа "Block Ack request" | 0..86400 | Значение по-умолчанию: 500 |
| Пороговое значение пакетов типа "Block Ack" | 0..86400 | Значение по-умолчанию: 500 |
| Пороговое значение пакетов типа "PS poll" | 0..86400 | Значение по-умолчанию: 500 |
| Пороговое значение пакетов типа "Authentication" | 0..86400 | Значение по-умолчанию: 500 |
| Пороговое значение пакетов типа "Deauthentification" | 0..86400 | Значение по-умолчанию: 500 |
| Пороговое значение пакетов типа "RTS" | 0..86400 | Значение по-умолчанию: 500 |
| Пороговое значение пакетов типа "CTS" | 0..86400 | Значение по-умолчанию: 500 |
Переопределение "доверенных" и "вражеских" точек доступа происходит путем явного задания списков в GUI EMS (раздел "Wireless → WIDS Manager") и дальнейшего их указания в поле "WIDS MAC list" на вкладке "WIDS/WIPS" в меню "Конфигурация" ТД.


Конфигурационный файл сервиса.
serviceConfiguration = {
ApplicationConfiguration = {
ServicePort = 9095 // service listen port
// if this environment equals to 'production', all logs will transmit to graylog
// else if this environment equals to 'k8s', all logs will be written to stdout
Environment = "production"
SleepDaemonQueueTime = 5 // time for sleep (unit: milliseconds)
FoulTime = 60 // time of raw event, they disappear (unit: seconds)
GelfEnabled = false // inclusion of sending logs to graylog
mysqlConfiguration = {
ConnectionString = "tcp(127.0.0.1:3306)"
DBName = "eltex_wids"
Login = "javauser"
Password = "javapassword"
}
}
}
logs = {
LoggerConfiguration = {
LogLevel = "error"
FileLog = "/var/log/eltex-wids/wids.log" // name of log file
MaxSize = 5 // maximal size of log file (unit: megabyte)
MaxAge = 30 // maximum log lifetime (unit: days)
MaxBackups = 10 // maximum number of backups (unit: amount of log files)
Compress = true // the need of compression
GelfHostWithPort = "localhost:12201" // address of graylog server
}
} |
ServicePort = 9095 |
Environment = "production" |
GelfEnabled = false |
ConnectionString = "tcp(127.0.0.1:3306)" |
DBName = "eltex_wids" |
Login = "javauser" |
Password = "javapassword" |
LogLevel = "error" |
FileLog = "/var/log/eltex-wids/wids.log" |
MaxSize = 5 |
MaxAge = 30 |
MaxBackups = 10 |
Compress = true |
GelfHostWithPort = "localhost:12201" |
Сервис может быть запущен в docker-контейнере. Для этого необходимо подготовить файл с переменными окружения .env и docker-compose.yml
version: "3"
services:
wids:
image: ${ELTEX_HUB}/eltex-wids:${SWLC_VERSION}
ports:
- 9095:${WIDS_PORT}
volumes:
- "/var/log/eltex-wids:/var/log/eltex-wids"
environment:
- ServicePort=${WIDS_PORT}
- LogLevel=${WIDS_LOG_LEVEL}
- SleepDaemonQueueTime=${WIDS_SLEEP_DAEMON_QUEUE_TIME}
- FoulTime=${WIDS_FOUL_TIME}
- MySQLUrl=${WIDS_MYSQL_URL}
- MySQLDBName=${WIDS_MYSQL_DBNAME}
- MySQLUsername=${WIDS_MYSQL_USERNAME}
- MySQLPassword=${WIDS_MYSQL_PASSWORD}
|
| Вместо <tag> необходимо указать актуальную версию, которую можно посмотреть по ссылке. |
# .env ELTEX_HUB=hub.eltex-co.ru/softwlc # Common version number SWLC_VERSION=1.31 # wids env WIDS_PORT=9095 WIDS_LOG_LEVEL=error WIDS_SLEEP_DAEMON_QUEUE_TIME=5 WIDS_FOUL_TIME=60 WIDS_MYSQL_URL=tcp(<IP адрес MariaDB>:3306) WIDS_MYSQL_DBNAME=eltex_wids WIDS_MYSQL_USERNAME=javauser WIDS_MYSQL_PASSWORD=javapassword #Настройка часового пояса TZ=Asia/Novosibirsk |
Настройка часового пояса