Сетевое соединение Raspberry Pi 3 Ad-Hoc с конфигурацией wpa_supplicant/WPA2

Вопрос или проблема

Мне нужна помощь с обеспечением безопасности Ad-Hoc сети с помощью wpa_supplicant.

Я пытался настроить беспроводную Ad-Hoc сеть между Raspberry Pi 3, используя встроенный WiFi адаптер.

pi@raspberrypi3bare:~ $ iw list
Wiphy phy0
    max # scan SSIDs: 10
    max scan IEs length: 2048 bytes
    Retry short limit: 7
    Retry long limit: 4
    Coverage class: 0 (up to 0m)
    Устройство поддерживает T-DLS.
    Поддерживаемые шифры:
        * WEP40 (00-0f-ac:1)
        * WEP104 (00-0f-ac:5)
        * TKIP (00-0f-ac:2)
        * CCMP (00-0f-ac:4)
        * CMAC (00-0f-ac:6)
    Доступные антенны: TX 0 RX 0
    Поддерживаемые режимы интерфейса:
         * IBSS
         * managed
         * AP
         * P2P-client
         * P2P-GO
         * P2P-device
    Диапазон 1:
        Возможности: 0x1020
            HT20
            Статическое энергосбережение SM
            RX HT20 SGI
            Без RX STBC
            Максимальная длина AMSDU: 3839 bytes
            DSSS/CCK HT40
        Максимальная длина RX AMPDU 65535 bytes (экспонента: 0x003)
        Минимальное временное расстояние RX AMPDU: 16 usec (0x07)
        HT TX/RX MCS rate индексы поддерживаются: 0-7
        Скорости передачи (не-HT):
            * 1.0 Mbps
            * 2.0 Mbps (поддерживается короткий преамбула)
            * 5.5 Mbps (поддерживается короткий преамбула)
            * 11.0 Mbps (поддерживается короткий преамбула)
...
            * 54.0 Mbps
        Частоты:
            * 2412 MHz [1] (20.0 dBm)
...
            * 2472 MHz [13] (20.0 dBm)
            * 2484 MHz [14] (отключен)
    Поддерживаемые команды:
         * new_interface
         * set_interface
         * new_key
         * start_ap
         * join_ibss
         * set_pmksa
         * del_pmksa
         * flush_pmksa
         * remain_on_channel
         * frame
         * set_channel
         * tdls_oper
         * start_sched_scan
         * start_p2p_device
         * crit_protocol_start
         * crit_protocol_stop
         * connect
         * disconnect
    Поддерживаемые типы TX фреймов:
         * managed: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
         * P2P-client: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
         * P2P-GO: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
         * P2P-device: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
    Поддерживаемые типы RX фреймов:
         * managed: 0x40 0xd0
         * P2P-client: 0x40 0xd0
         * P2P-GO: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
         * P2P-device: 0x40 0xd0
    программные режимы интерфейсов (всегда могут быть добавлены):
    допустимые комбинации интерфейсов:
         * #{ managed } <= 1, #{ P2P-device } <= 1, #{ P2P-client, P2P-GO } <= 1,
           всего <= 3, #channels <= 2
         * #{ managed } <= 1, #{ AP } <= 1, #{ P2P-client } <= 1, #{ P2P-device } <= 1,
           всего <= 4, #channels <= 1

Согласно вышеизложенному, P2P (Ad-Hoc) поддерживается.

Моя конфигурация сетевого интерфейса выглядит так:

auto wlan0
iface wlan0 inet static
        address 192.168.0.10
        netmask 255.255.255.0
        wireless-channel 11
        wireless-essid FooBar2
        wireless-mode ad-hoc
#       wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

При отключенном wpa_supplicant я могу запустить wlan0 на двух разных Pi (с двумя разными IP-адресами), и все работает нормально. Я могу пинговать один Pi с другого (и наоборот).

Когда я пытаюсь запустить wpa_supplicant поверх этого (на обоих Pi), я не могу заставить их работать.

Файл конфигурации wpa_supplicant выглядит так:

pi@raspberrypi3bare:~ $ sudo cat /etc/wpa_supplicant/wpa_supp.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
ap_scan=2
network={
        ssid="FooBar2"
        key_mgmt=WPA-PSK
        psk=102ea4041e1612cc5905c4b9008f5e9aaebe91d20792ca16ab7754fd137865a8
        mode=1
        proto=RSN
        group=CCMP
        pairwise=CCMP
        frequency=2462
}

Вывод команды запуска:

pi@raspberrypi3bare:~ $ sudo wpa_supplicant -c /etc/wpa_supplicant/wpa_supp.conf -D nl80211 -i wlan0
Успешно инициализирован wpa_supplicant
Примечание: интерфейс драйвера nl80211 не предназначен для использования с ap_scan=2; это может привести к сбоям подключения
wlan0: Попытка ассоциироваться с SSID 'FooBar2'
wlan0: Ассоциирован с 7e:6c:29:3d:49:eb
wlan0: CTRL-EVENT-CONNECTED - Подключение к 7e:6c:29:3d:49:eb завершено [id=0 id_str=]
WMM AC: отсутствует IEs
wlan0: CTRL-EVENT-SUBNET-STATUS-UPDATE статус=0


pi@raspberrypi3bare:~ $ ping 192.168.0.30
PING 192.168.0.30 (192.168.0.30) 56(84) bytes of data.
С 192.168.0.10 icmp_seq=1 Хост назначения недоступен

Пара дополнительных деталей:

pi@raspberrypi3bare:~ $ wpa_supplicant -v
wpa_supplicant v2.6
Copyright (c) 2003-2016, Jouni Malinen <[email protected]> и соавторы
pi@raspberrypi3bare:~ $ uname -a
Linux raspberrypi3bare 4.4.21-v7+ #911 SMP Thu Sep 15 14:22:38 BST 2016 armv7l GNU/Linux

Есть идеи, что я могу изменить, чтобы wpa_supplicant заработал?

Кстати: P2P — это Wi-Fi Direct, что очень отличается от Ad Hoc. Ad Hoc относится исключительно к IBSS. Остальная часть этого ответа предполагает, что вы имели в виду IBSS, а не P2P.

Аутентификация WPA2-PSK по IBSS возможна (стандарт IEEE 802.11 определяет, как это сделать), но это немного сложно реализовать, так что я не уверен, насколько это широко поддерживается. Я бы не удивился, если бы wpa_supplicant это не поддерживал, поскольку это требует от спом режимов переключать роли и становиться аутентификатором в некоторых случаях и все еще оставаться спом в других случаях, в зависимости от того, какое устройство имеет более высокий MAC-адрес. Обычно роль аутентификатора WPA2-PSK играет hostapd на устройстве в режиме AP. Я не уверен, существует ли какой-либо код аутентификатора в wpa_supplicant.

Попробуйте сначала заставить работать Ad Hoc (IBSS) с WEP на 40 бит. Как только это будет работать, изучите, поддерживает ли wpa_supplicant WPA2-PSK через IBSS, и как это настроить.

Встроенный Wi-Fi Raspberry Pi не поддерживает зашифрованный IBSS. Попробуйте посмотреть вывод команды iw list, вы не увидите строки “Устройство поддерживает RSN-IBSS”. Вам нужен Wi-Fi адаптер, который это поддерживает, чтобы использовать зашифрованный IBSS.

Несанкционированный IBSS работает нормально с встроенным Wi-Fi Pi.

Вот отличные инструкции по 3 способам настройки IBSS на Raspberry Pi: https://raspberrypi.stackexchange.com/questions/94047/how-to-setup-an-unprotected-ad-hoc-ibss-network-and-if-possible-with-wpa-encry

Ответ или решение

Настройка Ad-Hoc сети на Raspberry Pi 3 с использованием wpa_supplicant и WPA2

Для реализации защищенной Ad-Hoc сети между Raspberry Pi 3 с использованием wpa_supplicant и WPA2, необходимо учесть несколько факторов, исходя из предоставленной информации и возможностей аппаратного обеспечения. Рассмотрим детально каждый шаг.

Шаг 1: Проверка возможностей оборудования

Согласно выводу команды iw list, ваш адаптер Wi-Fi на Raspberry Pi 3 поддерживает режимы работы IBSS (Ad-Hoc) и managed, однако не существует явной поддержки шифрования WPA2 для IBSS. Это важный момент — адаптер должен поддерживать RSN-IBSS для реализации WPA2-PSK в режиме Ad-Hoc, и, как показано, ваш текущий адаптер на это не способен. Возможен только незащищенный IBSS.

Шаг 2: Настройка незащищенной Ad-Hoc сети

Чтобы обеспечить первый опыт работы с вашей сетью, начнем с настройки простого незащищенного IBSS соединения.

  1. Конфигурация сетевого интерфейса:
    Измените файл конфигурации /etc/network/interfaces для wlan0:

    auto wlan0
    iface wlan0 inet static
       address 192.168.0.10
       netmask 255.255.255.0
       wireless-channel 11
       wireless-essid FooBar2
       wireless-mode ad-hoc
  2. Перезапуск сетевых сервисов:
    После внесения изменений перезапустите сетевые настройки:

    sudo ifdown wlan0 && sudo ifup wlan0
  3. Тестирование пинга:
    Убедитесь, что две Raspberry Pi, подключенные через незащищенную Ad-Hoc сеть, могут пинговать друг друга.

Шаг 3: Рассмотрение возможности использования WPA2

Как упоминалось ранее, поддержка WPA2 для IBSS может быть ограниченной вашим аппаратным обеспечением. Если вы хотите продолжить попытки настройки WPA2, вам потребуются дополнительные инструменты и возможно, другой адаптер.

  1. Исследование альтернативных адаптеров:
    Определите поддержку вашей Wi-Fi карты, изучив спецификацию. Вам необходимо устройство, которое поддерживает RSN-IBSS. В случае, если ваше текущее оборудование не подходит, рассмотрите возможность закупки альтернативного адаптера.

  2. Проверка документации wpa_supplicant:
    Изучите текущую документацию по wpa_supplicant, чтобы убедиться, что у вас есть обновленная версия. Более современные версии могут включать поддержку, которая не представлена в v2.6, как в вашем случае.

  3. Настройка wpa_supplicant для WPA2:
    Если у вас будет поддерживаемый адаптер, настройте файл /etc/wpa_supplicant/wpa_supp.conf следующим образом:

    ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
    update_config=1
    ap_scan=2
    network={
       ssid="FooBar2"
       key_mgmt=WPA-PSK
       psk="ваш_пароль"
       proto=RSN
       group=CCMP
       pairwise=CCMP
    }
  4. Запуск wpa_supplicant:
    Для соединения выполните команду:

    sudo wpa_supplicant -B -c /etc/wpa_supplicant/wpa_supp.conf -i wlan0

Заключение

Настройка защищенной Ad-Hoc сети на Raspberry Pi 3 с использованием WPA2 через wpa_supplicant требует наличия совместимого устройства. Адаптеры, такие как TP-Link TL-WN725N или другие адаптеры с поддержкой RSN-IBSS, могут помочь в этих целях.

Если ваше оборудование не поддерживает данную возможность, вы можете использовать незащищенную сеть IBSS. Однако если безопасность ваших данных важна, настоятельно рекомендуется рассмотреть возможности использования AP (Access Point) режима с hostapd, что предлагает более широкий выбор шифрования и аутентификации.

Дополнительные ресурсы и сообщества, такие как Raspberry Pi Forums и Stack Exchange, также могут предоставить полезные советы и поддержку в этом процессе.

Оцените материал
Добавить комментарий

Капча загружается...