Инструкция этого типа вызывает процесс подключения к SSID, получения IP адреса и других IP параметров, измерение времени отклика DNS-серверов.
Для подключения (ассоциации) используется утилита iw либо wpa_supplicant.
В качестве возможных входных параметров используются:
Параметр | Значение | Комментарий |
---|---|---|
interface | wlan0 | Имя беспроводного интерфейса (wlan0 или wlan1), через который подключаться |
ssid | строка | Указывается имя беспроводной сети, к которой необходимо подключиться |
scan_ssid | 0 или 1 | Определяет, будет ли сенсор проводить предварительное сканирование (поиск) сети перед подключением. По умолчанию 0 (нет). |
bssid | строка | Указывается МАС адрес точки доступа, через которую производится подключение. Опциональный параметр. Если не задано, подключение ведется к первой попавшейся на усмотрение драйвера точке доступа. Допускается указать в качестве значения max, в таком случае будет подставлен МАС-адрес точки доступа с наилучшим сигналом. |
password | строка | WPA2-PSK пароль |
encryption | open, psk, peap, tls | Тип шифрования, см. далее |
ip4_resolv_1, ip4_resolv_2 ip6_resolv_1 ip6_resolv_2 | строка с DNS именем | Изменение адресов хостов для измеряется время резолва имен |
nslookup_timeout | время в секундах | таймаут nslookup |
Сенсор поддерживает несколько типов подключения (авторизации) в SSID.
Для варианта "open", т.е. открытой сети, никаких параметров, кроме имени сети (ssid), и имени интерфейса (interface, по умолчанию "wlan0"), не требуется.
Для варианта "psk", т.е. сети, защищенной общим ключом-паролем, и использующий метод аутентификации WPA2-PSK (preshared key), требуется дополнительный параметр password, являющийся ключом доступа к сети.
Для варианта "peap", т.е. сети, защищенной протоколом 802.1Х и использующей метод аутентификации WPA2-Enterprise и авторизацию по идентификатору типа "логин-пароль" (PEAP/MSCHAPv2), например Active Directory, требуется указать (помимо параметра password):
- ca_cert - путь до файла с корневым сертификатом вашей инфраструктуры PKI
- username - идентификатор (имя пользователя), использующегося в процессе авторизации
Для варианта "tls", т.е. сети, защищенной протоколом 802.1Х и использующей метод аутентификации WPA2-Enterprise и авторизацию по клиентскому сертификату, требуется указать (вместо параметра password):
- ca_cert - путь до файла с корневым сертификатом вашей инфраструктуры PKI
- client_cert - путь до файла с сертификатом клиента
- client_key - путь до файла с ключом клиентского сертификата
- key_password - (опционально) пароль на клиентский сертификат (если он установлен)
Формат файлов сертификатов и ключей - PEM (т.е. BASE64, текстовый), кроме, возможно client_key. Файлы сертификатов и ключей должны быть заранее размещены (загружены) на сенсор. Для этого в настройках "Панели управления" сенсора или группы предусмотрен загрузчик файлов (на сенсор, или на все сенсоры группы по очереди). В загрузчике необходимо указать полное имя файла (с путем), и прикрепить сам файл. Внимание: проверки валидности пути и/или наличия существующего файла на целевом месте нет.
Файлы на сенсоре:
Внимание! Файлы, загруженные в /tmp/, не переживают перезагрузку сенсора. Файлы, загруженные не в /etc/, не переживают обновление прошивки (полное, OpenWrt) сенсора. Обновление управляющего Python-кода сенсора безопасно для файлов, кроме каталога /root/qow/.
Для EAP-TLS (encryption=tls) подключения доступны два сценария:
- Сертификат клиента - в формате PEM, ключ к сертификату поставляется отдельно, также в PEM файле. В таком случае вы обязаны указать параметры:
- client_cert - путь до файла с сертификатом клиента
- client_key - путь до файла с ключом клиентского сертификата
- key_password - (опционально) пароль на клиентский сертификат (если он установлен)
- Сертификат клиента - в формате PKCS#12 (в виде двоичного .pfx / .p12 файла). В таком случае вы обязаны указать параметры:
- client_key - путь до файла с клиентским сертификатом
- key_password - (обязательно) пароль на клиентский PFX-сертификат
Укажите ссылки на все эти файлы и ключи в "Параметрах":
Типовой код скрипта инструкции:
import json
import sys
import wnam_wifi_connectiondata = ' '.join(sys.argv[1:])
json_data = json.loads(data)['data']wnam_wifi_connection.change_network(**json_data)
По завершении подключения, если оно было успешным, происходит:
- получение IP адреса, и измерение времени, которое это заняло
- получение IP адреса по DNS запросу к тому серверу (серверам), которые были получены в DHCP-процессе. Измеряется время резолва имен
- для ipv4 ya.ru и google.com.
- для ipv6 ipv6.ya.ru и ipv6.google.com
- эти dns адреса могут быть изменены передачей инструкции параметров ip4_resolv_1, ip4_resolv_2, ip6_resolv_1, ip6_resolv_1
Инструкция возвращает серверу результат следующего вида:
Величины ssid_duration (время ассоциации), dhcp_duration (время получения IP адреса), go_ping и ya_ping (время DNS-резолвинга) выдаются в миллисекундах.
Полученный тайминги отображаются в отчете типа "Подключение к сети".
Параметр "ip" соответствует выданному по DHCP IP адресу DNS-сервера (в примере = 8.8.8.8).