Найти тему
Linux Format

Знакомство с новым беспроводным демоном iNet (iwd) в Linux

Оглавление

WPA Supplicant

Существует с 2003 года, играет важную роль в беспроводных соединениях. WPA Supplicant - это приложение, поддерживающее стандарт защищенного доступа Wi-Fi (WPA) для безопасной беспроводной связи.

WPA существует уже более 20 лет, и в настоящее время отрасль работает над третьей основной версией, которая известна как WPA3. WPA Supplicant работает в фоновом режиме в большинстве современных дистрибутивов Linux, где пользователи, как правило, взаимодействуют с системой через графический интерфейс, но если вы используете средства настройки беспроводной сети, такие как NetworkManager, Wicd или ConnMan, WPA Supplicant, вероятно, работает за кулисами. За прошедшие годы WPA Supplicant претерпел множество улучшений, и, в целом, подключить Linux к беспроводной сети стало намного проще, чем раньше.

Однако многие эксперты считают, что беспроводная поддержка Linux нуждается в некотором переосмыслении. Несколько лет назад мир переполошился, когда было показано, что WPA Supplicant восприимчив к атаке KRACK по протоколу WPA2. С тех пор уязвимости KRACK были исправлены, а WPA3 вывел безопасность беспроводной сети на более высокий уровень. Но проблемы при внедрении надежного решения подчеркнули сложность и неудобство, присущие кодовой базе WPA Supplicant. Эта

сложность, наряду со многими зависимостями, также означает, что WPA Supplicant плохо подходит для мобильных устройств и конфигураций Интернета вещей. Необходимость упростить и предложить лучшее решение для этих новых технологий объясняет, почему уже несколько лет предпринимаются усилия по созданию альтернативы WPA Supplicant.Одной из альтернатив, которая уже появилась, хотя она все еще не установлена по умолчанию в большинстве систем Linux, является беспроводной демон iNet (iwd). Intel возглавляет разработку iwd в течение последних четырех лет. В октябре 2019 года была выпущена стабильная версия 1.0, и сегодня количество версий iwd достигло 1,9.

Версии NetworkManager начиная с 1.12.0 могут использовать iwd в качестве серверной части. Iwd также работает с альтернативами, такими как ConnMan и systemd-networkd. А недавно был выпущен небольшой графический интерфейс для пользователей, которые хотят обойтись без NetworkManager или ConnMan, но все же хотят работать

через графический интерфейс.Описание проекта на https://iwd.wiki.kernel.org/ подчеркивает простоту как важный фактор недавнего роста iwd: “Основная цель проекта - оптимизировать использование ресурсов: хранилища, оперативной памяти и затрат времени соединения. Это достигается за счет отказа от каких-либо внешних библиотек и максимально возможного использования функций, предоставляемых ядром Linux. В результате получается автономная среда, которая зависит только от ядра Linux и библиотеки C runtime. Arch Linux перешл на iwd с июля 2020 года. Во время установки, вы больше не вызываете wifi‑меню для настройки Wi-Fi, и netctl сетевой менеджер был заменен на iwctl. Ubuntu также тестирует iwd и оценивает возможность сделать его новым стандартом.

iwd с Ubuntu

Мы выбрали ежедневную сборку Ubuntu 20.10 в качестве кандидата на тестирование

и постарались воссоздать как можно больше требований к тестированию Ubuntu. Сначала мы использовали iwd в терминале, затем протестировали его в сочетании с

NetworkManager, заменив WPA Supplicant в качестве серверной части. Iwd состоит из демона iwd, клиента iwctl, iwmon инструмента мониторинга.

Демон и клиент были реализованы с использованием менее 50 000 строк кода. Для

сравнения: WPA Supplicant весит почти 500 000 строк кода. Iwd использует

функции ядра везде, где это возможно (например, для шифрования). Другие преимущества включают поддержку Wi-Fi Protected Setup (WPS), упрощенное

управление сетью, быстрый роуминг без ненужного сканирования и поддержку

нескольких профилей для каждого пользователя. Для предприятий

iwd также предлагает поддержку следующего:

• Расширяемый протокол аутентификации(EAP):

Общий протокол аутентификации, разработанный Internet Engineering Task Force (IETF), который поддерживает такие методы аутентификации, как RADIUS, цифровые сертификаты или SIM-карты.

• Trusted Platform Module (TPM): Чип, который добавляет базовые функции безопасности к компьютеру или подобному устройству. В сочетании с модифицированной операционной системой и соответствующим программным обеспечением создается надежная вычислительная платформа.

Iwd в основном обходится без настройки, потому что полагается на функции ядра. Только расширенные функции, такие как WPA Enterprise требуют файлы конфигурации. Iwd поддерживает WPA 3 и Opportunistic Wireless Encryption (OWE). OWE стандартная процедура для безопасного шифрования данных, которыми обмениваются в общедоступных сетях Wi-Fi без пароля.

Начиная с версии 1.8, iwd поддерживает одноранговые функции через свой собственный API. Wi-Fi Direct (WiFi P2P) позволяет пользователям подключать поддерживаемые устройства напрямую, без промежуточной точки доступа.

Приступая к работе

Прежде чем вы сможете приступить к работе с iwd, вам нужно будет выполнить некоторые предварительные шаги. Сначала проверьте, не заблокирован ли уже iwd (строка 1). Мы не нашли iwd в протестированном нами образе Ubuntu, от 12 сентября 2020 года. Далее мы приступили к установке iwd и удалению NetworkManager (строки 3 и 4). Затем мы отключили WPA и остановили его навсегда, замаскировав (строки с 5 по 7). Наконец, мы включили iwd (строки 8 и 9) и проверили, все ли работает (нормально 10). Плохая идея - удалять пакет wpasupplicant , вместо того чтобы просто отключить его.

В Ubuntu удаление wpa supplicant приведет к удалению метапакета ubuntu-desktop из-за множества зависимостей.

01 $ systemctl status iwd.service

02 Unit iwd.service could not be found.

03 $ sudo apt install iwd

04 $ sudo apt purge network-manager

05 $ sudo systemctl stop wpa_supplicant.service

06 $ sudo systemctl disable wpa_supplicant.service

07 $ sudo systemctl mask wpa_supplicant

08 $ sudo systemctl enable iwd.service

09 $ sudo systemctl start iwd.service

10 $ systemctl status iwd.service

рис. 1
рис. 1

Настройка WLAN

После того, как вы выполнили необходимые шаги и получили положительный статус сервиса, вы можете настроить доступ к Wi-Fi. Если вы получите сообщение о блокировке rfkill (рис. 1), вызовите команду: sudo rfkill list wifi

Если программная блокировка отображается как да, нажатие Fn + F5 может помочь отключить режим полета. Если это не поможет, используйте: sudo rfkill unblock wifi

Проверьте, сработало ли это с rfkill запросом нового статуса для iwd.service.

Теперь запустите интерактивную оболочку как обычный пользователь с помощью команды iwctl.

рис. 2
рис. 2

В справке перечислены все доступные параметры. Чтобы выйти из оболочки, нажмите Ctrl+D. Iwd также можно использовать без интерактивной оболочки; вам просто нужно добавить к каждой команде iwctl префикс. Найдите устройства и их названия с помощью команды adapter list. Используйте список устройств, чтобы получить системные имена интерфейсов (рис. 2). На тестовом устройстве интерфейс называется wlan0.

Команда device wlan0 show предоставляет более подробную информацию о сетевом интерфейсе (рис. 3).

рис. 3
рис. 3

Теперь выполните сканирование, набрав station wlan0 scan перед использованием station wlan0 get‐networks для отображения доступных сетей (рис. 4).

рис. 4
рис. 4

Команда station wlan0 connect YOUR_SID (вам нужно заменить YOUR_SID на правильный SSID), активирует соединение. Запрошенный пароль сохраняется в /var/lib/iwd при вводе с суффиксом .psk.

При необходимости проверьте функциональность еще раз, набрав: status wlan0 get‐networks. Галочка, едва заметная на фоне темной цветовой схемы терминала Ubuntu, указывает на то, что соединение было успешно установленно. Затем используйте ping, чтобы проверить состояние интернетсоединения или перейдите на веб-сайт. После перезагрузки компьютера iwd автоматически восстанавливает беспроводное соединение.

Трудности

В случае сбоя соединения или возникновения проблем при переключении сети создайте файл /etc/iwd/main.conf содержащий

[General]

EnableNetworkConfiguration=true

[Network]

NameResolvingService=systemd

Конфигурация приводит к тому, что iwd передает разрешение имени systemd-resolved. resolvconf

Как вы можете видеть, компьютер с iwd может быть быстро интегрирован в беспроводную сеть; графические инструменты не являются абсолютно необходимыми.

Аналогичным образом, доступ к iwd также может быть настроен с помощью WPS, который автоматически настраивает беспроводное соединение одним нажатием кнопки и вводом PIN-кода или через (NFC) на устройстве. Команда wsc list показывает, совместимо ли ваше устройство.

Например, если ваш маршрутизатор поддерживает WPS, введите команду wsc wlan0

и нажмите кнопку WPS на маршрутизаторе.

Если вам нужно ввести PIN‐код, команда wsc wlan0 start‐user-pin, за которой следует восьмизначный PIN-код. Другие команды, поддерживаемые iwctl:

ad‐hoc list Список устройств в режиме ad-hoc

ap list Перечисляет близлежащие точки доступа.

known‐networks‐list Перечисляет известные сети

known‐networks your_SSID forget Забудьте об известной сети

station device_name connect‐hidden your_SSID Подключение к скрытой сети

Настройка NetworkManager

Последний шаг - протестировать iwd в качестве серверной части для NetworkManager.

Начните с переустановки NetworkManager. Затем отредактируйте конфигурацию NetworkManager.

$ sudo systemctl stop NetworkManager.service

$ sudo nano /etc/NetworkManager/NetworkManager.conf

Вам нужно добавить новую строку wifi.backend=iwd в секции [device].

Затем перезапустите NetworkManager и перезагрузите компьютер; вам нужно будет ввести пароль Wi-Fi. Теперь вы успешно заменили WPA Supplicant на iwd, что означает, что вы можете рассчитывать на более быстрое установление соединений Wi-Fi, а также можете переключиться на WPA 3

Выводы

Iwd 1.9 бесперебойно работает на одном из наших ноутбуков в качестве серверной части NetworkManager уже около трех месяцев, и его не беспокоит VPN. Даже при тестировании с версией Ubuntu 20.10 для разработчиков, никаких проблем не возникло.

Iwd является идеальной заменой устаревшему WPA Supplicant в домашних приложениях и приложениях для малого бизнеса, где он отвечает повышенным требованиям к точкам доступа и скрытым сетям.

Остались вопросы или есть замечания пишите в комментариях. Удачи в Ваших эксперементах!!!