Page tree
Skip to end of metadata
Go to start of metadata

Инструкция этого типа вызывает процесс подключения к SSID, получения IP адреса и других IP параметров, измерение времени отклика DNS-серверов.

Для подключения (ассоциации) используется утилита iw либо wpa_supplicant.

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

ПараметрЗначениеКомментарий
interfacewlan0Имя беспроводного интерфейса (wlan0 или wlan1), через который подключаться
ssidстрокаУказывается имя беспроводной сети, к которой необходимо подключиться
scan_ssid0 или 1Определяет, будет ли сенсор проводить предварительное сканирование (поиск) сети перед подключением. По умолчанию 0 (нет).
bssidстрокаУказывается МАС адрес точки доступа, через которую производится подключение. Опциональный параметр. Если не задано, подключение ведется к первой попавшейся на усмотрение драйвера точке доступа. Допускается указать в качестве значения max, в таком случае будет подставлен МАС-адрес точки доступа с наилучшим сигналом.
passwordстрокаWPA2-PSK пароль
encryptionopen, psk, peap, tlsТип шифрования, см. далее

Сенсор поддерживает несколько типов подключения (авторизации) в 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) подключения доступны два сценария:

  1. Сертификат клиента - в формате PEM, ключ к сертификату поставляется отдельно, также в PEM файле. В таком случае вы обязаны указать параметры:
    • client_cert - путь до файла с сертификатом клиента
    • client_key - путь до файла с ключом клиентского сертификата
    • key_password - (опционально) пароль на клиентский сертификат (если он установлен)
  2. Сертификат клиента - в формате PKCS#12 (в виде двоичного .pfx / .p12 файла). В таком случае вы обязаны указать параметры:
    • client_key - путь до файла с клиентским сертификатом
    • key_password - (обязательно) пароль на клиентский PFX-сертификат

Укажите ссылки на все эти файлы и ключи в "Параметрах":

Типовой код скрипта инструкции:

import json
import sys
import wnam_wifi_connection

data = ' '.join(sys.argv[1:])
json_data = json.loads(data)['data']

wnam_wifi_connection.change_network(**json_data)

По завершении подключения, если оно было успешным, происходит:

  • получение IP адреса, и измерение времени, которое это заняло
  • получение IP адреса по DNS запросу к тому серверу (серверам), которые были получены в DHCP-процессе. Измеряется время резолва имен ya.ru и google.com

Инструкция возвращает серверу результат следующего вида:

Величины ssid_duration (время ассоциации), dhcp_duration (время получения IP адреса), go_ping и ya_ping (время DNS-резолвинга) выдаются в миллисекундах.

Полученный тайминги отображаются в отчете типа "Подключение к сети".

Параметр "ip" соответствует выданному по DHCP IP адресу DNS-сервера (в примере = 8.8.8.8).


  • No labels