Памятка по Wi-Fi в Linux: подсказки и решение проблем


Оглавление

1. Проблемы и ошибки Wi-Fi в Linux

2. Рецепты популярных действий с Wi-Fi в Linux

Как задать вопрос о проблеме с Wi-Fi адаптером

3. Частые ошибки Wi-Fi в Linux

4. Вопросы и ответы по Wi-Fi в Linux

5. Драйверы и прошивки


Проблемы и ошибки Wi-Fi в Linux

Эта статья представляет собой сборник проблем Wi-Fi, с которыми вы можете столкнуться в Linux. Охвачены вопросы как тестирования безопасности беспроводных сетей, так и подключения к Wi-Fi.

Если вы не нашли решения для своей проблемы с Wi-Fi, то спрашивайте в комментариях. Данная статья буде пополняться описанием новых проблем Wi-Fi и их решениями.

Рецепты популярных действий с Wi-Fi в Linux

Как узнать имя беспроводного интерфейса

iw dev

Имя интерфейса в строке «Interface»:

Если вы получили ошибку:

bash: iw: команда не найдена

То выполните данную команду с sudo:

sudo iw dev

Как остановить программы, которые мешают аудиту безопасности Wi-Fi

Настоятельно рекомендуется перед переводом Wi-Fi интерфейса в режим монитора выполнить следующие две команды:

sudo systemctl stop NetworkManager
sudo airmon-ng check kill

Если у вас странные ошибки при использовании режима монитора, то обязательно выполните эти команды.

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

sudo systemctl start NetworkManager

Примечание: Смотрите также следующий раздел «Как вывести определённый сетевой интерфейс из-под управления NetworkManager не выключая NetworkManager».

Как вывести определённый сетевой интерфейс из-под управления NetworkManager не выключая NetworkManager

Необязательно полностью отключать NetworkManager, можно сделать так, что NetworkManager не будет управлять определённым сетевым интерфейсом.


Чтобы на время сделать интерфейс unmanaged (без управления), выполните команду вида:

nmcli dev set ИНТЕРФЕЙС managed no

Чтобы NetworkManager не трогал сетевой интерфейс сразу после запуска службы и чтобы эта настройка сохранилась после перезагрузки, нужно использовать метод keyfile. Для этого откройте файл /etc/NetworkManager/NetworkManager.conf:

sudo gedit /etc/NetworkManager/NetworkManager.conf

И добавьте туда строки вида:

[keyfile]
unmanaged-devices=mac:00:11:22:33:44:55;mac:66:77:88:99:00:aa

Либо используя следующий синтаксис можно указать имена сетевых интерфейсов:

[keyfile]
unmanaged-devices=interface-name:eth*,except:interface-name:eth0;interface-name:wlan*

Сохраните сделанные изменения и перезапустите службу:

sudo systemctl restart NetworkManager

Проверим:

nmcli dev status

Подробности смотрите в статье «Как запретить NetworkManager управлять определённым интерфейсом»

Как перевести карту в режим монитора перед началом аудита безопасности Wi-Fi в Linux

sudo ip link set <ИНТЕРФЕЙС> down
sudo iw <ИНТЕРФЕЙС> set monitor control
sudo ip link set <ИНТЕРФЕЙС> up

Как вернуть адаптер в управляемый режим

sudo ip link set <ИНТЕРФЕЙС> down
sudo iw <ИНТЕРФЕЙС> set type managed
sudo ip link set <ИНТЕРФЕЙС> up

Как поменять канал Wi-Fi адаптера

Устанавливать каналы можно только когда адаптер находится в режиме монитора:

sudo iw dev <ИНТЕРФЕЙС> set channel <НОМЕР>

Как проверить, поддерживает Wi-Fi адаптер беспроводные инъекции

sudo aireplay-ng -9 <ИНТЕРФЕЙС>

Как узнать, какие частоты поддерживает адаптер и другие характеристики

iw list

Как поменять регион для увеличения мощности


Чтобы проверить текущее значение:

sudo iw reg get

Чтобы установить новый регион:

sudo iw reg set BZ

Чтобы увеличить мощность:

sudo ip link set <ИНТЕРФЕЙС> down
sudo iw dev <ИНТЕРФЕЙС> set txpower fixed 30mBm
# sudo iw <ИНТЕРФЕЙС> set monitor control # если нужно, переводим в режим монитора
sudo ip link set <ИНТЕРФЕЙС> up

Нюансы смотрите в статье «Как увеличить мощность (TX Power) Wi-Fi карты».

Как сканировать ТД в командной строке

Для таких сканирований не нужен режим монитора.

Для сканирования точек доступа:

sudo iw dev <ИНТЕРФЕЙС> scan

Чтобы сканировать и вывести только названия ТД:

sudo iw dev <ИНТЕРФЕЙС> scan | grep SSID

Как получить данные беспроводного интерфейса на канальном уровне

Чтобы вывести информацию на уровне передачи данных от устройства к устройству (он называется канальный (data link)):

iw dev <ИНТЕРФЕЙС> link

Как подключиться к Точке Доступа Wi-Fi в командной строке

Нам нужно сформировать конфигурационный файл. Делается это командой:

wpa_passphrase название_ТД пароль > конфигурационный_файл

Подключаемся к точке доступа:

wpa_supplicant -B -i <ИНТЕРФЕЙС> -c конфигурационный_файл

Для получения автоматических настроек по протоколу DHCP (присвоенный IP адрес, IP адрес шлюза и IP адреса DNS серверов) выполните команду:

dhclient <ИНТЕРФЕЙС>

Как подключиться к Точке Доступа Wi-Fi в командной строке зная WPS пин


Подробную инструкцию смотрите в статье Решение проблемы: Reaver показывает WPS пин, но не показывает пароль WPA-PSK.

Как увидеть все ТД

sudo airodump-ng ИНТЕРФЕЙС --manufacturer --uptime --wps

Автоматизированный захват рукопожатий:

 

Как выполнить поиск ТД на 5 GHz

sudo airodump-ng --channel 36-165 ИНТЕРФЕЙС

Конвертация в хеш Hashcat (.hccapx)

  • Для конвертации в хеш формата режима 22000 для взлома пароля (Hashcat v6.0.0+) с помощью hcxpcapngtool (пакет hcxtools):
hcxpcapngtool -o hash.hc22000 -E wordlist dumpfile.pcapng
  • Для конвертации в хеш формата HCCAPX для взлома пароля (Hashcat v3.6+) с помощью cap2hccapx (пакет hashcat-utils):
cap2hccapx РУКОПОЖАТИЕ.pcap ХЕШ.hccapx
  • Для конвертации в хеш формата HCCAPX для взлома пароля (Hashcat v3.6+) с помощью aircrack-ng:
aircrack-ng -j ХЕШ ХЕНДШЕЙК.pcap

Запуск брут-форса (взлома) пароля Wi-Fi сети в Hashcat

  • Атака по словарю:
hashcat --force --hwmon-temp-abort=100 -D 1,2 -a 0 -m 22000 ХЕШ.hc22000 СЛОВАРЬ.txt
  • Атака по маске (брут-форс, полный перебор):
hashcat --force --hwmon-temp-abort=100 -D 1,2 -a 3 -m 22000 ХЕШ.hc22000 ?d?d?d?d?d?d?d?d

В примере выше маска — пароли из цифр длиной 8 символов.

Встроенные наборы символов:

  l | abcdefghijklmnopqrstuvwxyz
  u | ABCDEFGHIJKLMNOPQRSTUVWXYZ
  d | 0123456789
  h | 0123456789abcdef
  H | 0123456789ABCDEF
  s |  !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
  a | ?l?u?d?s

Смотрите также:

Конвертация в хеш John the Ripper

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

wpapcap2john wpa.cap > wi-fi.hash

Можно сохранить рукопожатие для определённой точки доступа, её нужно указать с опцией -m, указывать нужно не название, а BSSID — проще говоря, MAC адрес.

Чтобы сохранить рукопожатие только для определённой ТД, выполните команду вида:

wpapcap2john -m 'MAC-АДРЕС' wpa.cap > wi-fi.hash

Запуск брут-форса (взлома) пароля Wi-Fi сети в John the Ripper

Ддля запуска атаки по словарю, используя центральный процессор, выполните команду вида:

john --format=wpapsk --wordlist=/ПУТЬ/ДО/СЛОВАРЯ --fork=ЯДРА /ПУТЬ/ДО/wi-fi.hash

Для запуска атаки по словарю, используя видеокарту, выполните команду:

john --format=wpapsk-opencl --wordlist=/ПУТЬ/ДО/СЛОВАРЯ /ПУТЬ/ДО/wi-fi.hash

Чтобы перебрать все пароли, состоящие только из цифр и длиной от 8 до 10 символов и выполнять вычисления на ЦП, запустите команду вида:

john --format=wpapsk --fork=ЯДРА --mask='?d' --min-length=8 --max-length=10 /ПУТЬ/ДО/wi-fi.hash

Чтобы перебрать все пароли, состоящие только из цифр и длиной от 8 до 10 символов и выполнять вычисления на видеокарте, выполните команду вида:

john --format=wpapsk-opencl --mask='?d' --min-length=8 --max-length=10 '/ПУТЬ/ДО/wi-fi.hash'

Чтобы перебрать все пароли, состоящие из цифр, а также большим и маленьких букв, длиной 8 символов и выполнять вычисления на ЦП, запустите команду вида:

john --format=wpapsk --fork=ЯДРА -1=?l?u?d --mask='?1' --min-length=8 --max-length=8 /ПУТЬ/ДО/wi-fi.hash

Чтобы перебрать все пароли, состоящие из цифр, а также большим и маленьких букв, длиной 8 символов и выполнять вычисления на видеокарте, выполните команду вида:

john --format=wpapsk-opencl -1=?l?u?d --mask='?1' --min-length=8 --max-length=8 /ПУТЬ/ДО/wi-fi.hash

Как добавить виртуальный интерфейс в режиме монитора

Чтобы добавить новый виртуальный интерфейс в режиме монитора:

sudo iw ИНТЕРФЕЙС interface add НОВЫЙ_ИНТЕРФЕЙС type monitor

Чтобы добавить новый виртуальный интерфейс в режиме монитора и установить для него MAC-адрес:

sudo iw ИНТЕРФЕЙС interface add НОВЫЙ_ИНТЕРФЕЙС type monitor addr MAC_АДРЕС

Подробности смотрите в статье «Виртуальные Wi-Fi интерфейсы для одновременного использования Wi-Fi адаптера в разных режимах».

Как создать ТД на компьютере

С помощью create_ap вы можете сделать Точку Доступа в одну команду. Благодаря ТД все ваши устройства смогут использовать одно проводное подключение или вы сможете усилить сигнал от удалённой точки доступа.

Например, чтобы создать ТД с именем MyAccessPoint и паролем PASSWORD1 на беспроводном интерфейсе wlan0, Интернет-подключение будет обеспечиваться через интерфейс eth0:

sudo create_ap wlan0 eth0 MyAccessPoint PASSWORD1

Как усилить Wi-Fi сигнал от удалённой ТД

Вы можете усилить сигнал от удалённой Точки Доступа если у вас имеется два или хотя бы один Wi-Fi адаптер. Подробности смотрите в статье «Виртуальные Wi-Fi интерфейсы для одновременного использования Wi-Fi адаптера в разных режимах».

Как поменять MAC-адрес Wi-Fi адаптера

Поскольку со сменой MAC-адреса имеются неочевидные нюансы, то для начала рекомендуется познакомиться со статьёй «Как поменять MAC-адрес в Linux, как включить и отключить автоматическую смену (спуфинг) MAC в Linux»

Для спуфинга MAC-адреса на совершенно произвольный адрес:

sudo macchanger -r wlan0

Как задать вопрос о проблеме с Wi-Fi адаптером

Для начала укажите название Wi-Fi адаптера. Если вы его покупали с АлиЭкспресс, то обязательно укажите это тоже!!!

Укажите суть вашей проблемы, примеры:

  • не умею подключаться к Wi-Fi в Linux
  • не получается перевести в режим монитора
  • не получается захватить рукопожатие и т.д.

Напишите, какие команды вводите и какой результат получаете. Чем подробнее информация, тем больше шансов на помощь.

Если вы просто пишите, что «у меня не работает режим монитора/захват рукопожатий/деаутентификация/беспроводная инъекция/что-то своё/…» и не даёте никакой дальнейшей информации, то никто не знает, оно у вас действительно не работает или вы неправильно это делаете. На заданный понятно и полно вопрос мы обязательно постараемся ответить. Ввязываться в беседы, где надо вытягивать информацию по частям чтобы вам же и помочь, не очень интересно.

Также покажите вывод следующих команд:

# Для USB Wi-Fi адаптера
lsusb

# Для PCI Wi-Fi адаптера
lspci

Для любых адаптеров:

sudo iw dev
sudo airmon-ng
rfkill
uname -a

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

iw event
ip monitor
journalctl -f

По крайней мере, выводимая этими командами информация может дать вам подсказку о причине проблемы или сообщить хоть какие-то ошибки, если ваша проблема не сопровождается выводом ошибок.

Частые ошибки Wi-Fi в Linux

Ошибка «Operation not permitted (-1)»

Пример:

command failed: Operation not permitted (-1)

Означает, что недостаточно прав, запустите команду iw с sudo.

Device or resource busy (-16)

Пример:

command failed: Device or resource busy (-16)

Данная ошибка возникает, например, если вы пытаетесь перевести Wi-Fi адаптер на определённый канал, но он не в режиме монитора и/или не в состоянии up. Начните с перевода карты в режим монитора, переведите беспроводную карту в состояние up, а затем установите желаемый канал. Например:

sudo ip link set wlp0s20f0u2 down
sudo iw wlp0s20f0u2 set monitor control
sudo ip link set wlp0s20f0u2 up
sudo iw dev wlp0s20f0u2 set channel 64
# ИЛИ можно указать частоту:
sudo iw wlp0s20f0u2 set freq 5320

Другой причиной ошибки может быть то, что вы пытаетесь перевести в режим монитора или в управляемый режим сетевой интерфейс, который находится в состоянии «up».

Ошибка «command failed: Network is down (-100)» во время сканирования «iw dev wlan0 scan»

Если во время сканирования сетей с помощью команды «iw dev ИНТЕРФЕЙС scan»:

sudo iw dev wlan0 scan | grep SSID

вы получили следующую ошибку:

command failed: Network is down (-100)

то она означает, что сетевой адаптер находится в режиме «down», то есть не активирован. Для его активации выполните команду:

sudo ip link set wlan0 up

Если это не помогло, то проверьте не заблокирован ли интерфейс:

rfkill

Если интерфейс заблокирован, то разблокируйте его, а затем снова переведите в режим «up».

rfkill unblock all

Ошибка «command failed: Operation not supported (-95)» во время сканирования «iw dev wlan0 scan»

Если при сканировании сетей с помощью iw

sudo iw dev wlan0 scan | grep SSID

вы получили следующую ошибку

command failed: Operation not supported (-95)

то её причина может быть в том, что в данный момент сетевой интерфейс находится в режиме монитора (monitor), для исправления ошибки переведите его в управляемый режим (managed).

Ошибка «command failed: Device or resource busy (-16)» во время сканирования «iw dev wlan0 scan»

Если при сканировании сетей с помощью iw

sudo iw dev wlan0 scan | grep SSID

вы получили следующую ошибку

command failed: Device or resource busy (-16)

То её причина в том, что сетевое устройство уже используется другой программой. Попробуйте выполнить сканирование позже, либо попытайтесь выявить, какая программ использует сетевой интерфейс.

Не удаётся запустить режим AP в диапазоне 5 ГГц

По-видимому, со специальным кодом страны 00 (глобальный) для всех используемых частот в диапазоне 5 ГГц будет установлен флаг no-ir (no-initiating-radiation), который не позволит hostapd использовать их. Вам нужно будет установить crda и указать код страны, чтобы разрешённые в вашей стране частоты были доступны для hostapd.

Режим точки доступа Wi-Fi 5 ГГц: что означает «no-ir»?

cfg80211 имеет функцию под названием beacon hinting, чтобы помочь cfg80211 разрешить карте снимать флаги пассивного сканирования и запрета маяков. Флаги пассивного сканирования используются на каналах, чтобы гарантировать, что интерфейс не будет выдавать пробный запрос. Флаг no-ir существует, чтобы позволить определениям регулирующих доменов запрещать устройству инициировать излучение любого рода, включая использование маяков, поэтому, например, интерфейсы AP/IBSS/Mesh/GO не смогут инициировать связь по этим каналам, если только канал не имеет этого флага. Если на канале присутствует какой-либо из этих флагов, устройству запрещается инициировать обмен данными на cfg80211.

Старые флаги нормативных правил, такие как passive-scan (пассивное сканирование) и no-beaconing (отсутствие маяков), изначально были изобретены, чтобы помочь с мировым роумингом, теперь эти два флага объединены в один no-ir, для no-initiating-radiation (отсутствия инициирующего излучения). Если вы не знаете, в какой стране находитесь, вы все равно можете вести себя как интерфейс 802.11 STA, но можете дождаться включения активного сканирования, пока не увидите маяк от точки доступа, если используемый канал не является каналом DFS и не каналами 12- 14 в диапазоне 2,4 ГГц. То же самое можно сказать и об инициировании связи, поэтому как старое пассивное сканирование, так и отсутствие маячков теперь объединены в современных ядрах, поскольку один флаг no-ir может быть снят, если обнаружена точка доступа, передающая маяк на канале, отличном от DFS и канал также не является каналами 12-14 в диапазоне 2,4 ГГц. cfg80211 использует эту часть логики для снятия обоих этих флагов тогда и только тогда, когда wiphy-устройство находится в мировом роуминге.


Источник: https://wireless.wiki.kernel.org/en/developers/regulatory/processing_rules#post_processing_mechanisms

Не виден Wi-Fi интерфейс в системе

  • Убедитесь, что Wi-Fi адаптер подключён.
  • Если вы используете Linux в виртуальной машине, то смотрите «Почему виртуальная машина не видит USB устройство». В виртуальной машине возможно использовать только USB адаптеры.
  • Проверьте, видит ли система устройства:
# Для USB
lsusb

# Для PCI
lspci
  • Не установлен драйвер или прошивка вашей Wi-Fi карты. Кроме установки драйвера, в Linux необходимо установить прошивку устройства. Пользователи могут быть сбиты с толку тем, что даже установка драйвера не гарантирует работу устройства пока для него не установлена прошивка. Прошивки требуются для всех устройств, в том числе на чипсетах Realtek, Atheros, Intel и Mediatek не работают или вовсе не видны в Linux. Пакеты прошивок называются по-разному на различных дистрибутивах, они могут содержать как прошивку для одного устройства, так и для большого количества устройств, подробности смотрите в разделе «Драйверы и прошивки».

Беспроводной интерфейс виден, но его невозможно использовать

Проверьте, не заблокированы ли беспроводные интерфейсы:

rfkill

Если они заблокированы, то включите их командой:

rfkill unblock all

Устройство иногда исчезает или странно отображается в системе

Если драйвер устройства отображается неправильно (например, как ??????), а также неправильно отображается информация о чипсете, примерно как на данном скриншоте:

То

  • попробуйте другой шнур и другое USB гнездо
  • не используйте USB хабы
  • отключите устройство из гнезда и подключите вновь

Если ничего из этого не помогло, то причина может быть в аппаратной проблеме. Особенно если иногда устройство показывается нормально, а иногда пропадает или отображается неправильно — вероятно, неисправно само устройство или плохой контакт.

Не удаётся подключиться к Точке Доступа

Если других проблем не выявлено, но не удаётся подключиться к ТД, то попробуйте подключиться к другой ТД. Если у вас только один роутер, то запустите на мобильном телефоне ТД и подключитесь к ней.

Если подключение удастся, значит какая-то проблема в несовместимости Wi-Fi протоколов. Попробуйте не использовать или наоборот принудительно использовать некоторые стандарты (N, AC). Попробуйте принудительно выбрать другой канал или установить автоматический выбор каналов. Ещё раз внимательно проверьте пароли.

Удалось подключиться к ТД, но Интернета нет

С помощью команды вы сможете посмотреть, действительно ли выполнено подключение (ищите строку, которая начинается на «ssid»):

iw dev

Проверьте, присвоен ли интерфейсу IP адрес:

ip a

Определите IP адрес роутера:

ip route show default

И выполните пинг роутера, например, адрес моего роутера 192.168.0.1, тогда команда:

ping 192.168.0.1

Если роутер не пингуется, значит проблема в подключении до него — например, слишком слабый сигнал до ТД или не настроен IP адрес (служба DHCP не запущена).

Если есть подключение к роутеру, то попробуйте выполнить пинг публичного IP:

ping 8.8.8.8

Если пинг не удался (но сам роутер пингуется), значит проблема с подключением роутера к внешней (WAN) сети. Заходите в настройки роутера и разбирайтесь там.

Попробуйте выполнить трассировку пути — если трассировка обрывается за пределами роутера, то это может означать, что проблемы у вашего Интернет-провайдера или у вышестоящего провайдера.

traceroute 8.8.8.8

Если пинг роутера удался, то попробуйте пинг хоста по имени хоста:

ping google.com

Если пинг по имени хоста не удался, значит проблелма в настройке DNS сервера. Эти настройки могут быть как на уровне системы (например, неправильные настройки в NetworkManager), так и в роутере.

Чтобы увидеть, какой DNS сервер используется, выполните команду:

dig ya.ru

Найдите строку, которая начинается на «;; SERVER» — в этой строке будет адрес сервера имён.

;; SERVER: 8.8.8.8#53(8.8.8.8)

Не получается перевести в режим монитора Wi-Fi адаптер в Windows Subsystem for Linux (WSL) / Cygwin / Docker

В Windows Subsystem for Linux (WSL), а также в Cygwin и Docker нет прямого доступа к железу. У вас не получится использовать Wi-Fi адаптер (а также видео карту и прочее) в данных программных продуктах.

Если вы пользователь Windows, то для вас оптимальный вариант: установить Kali Linux или Arch Linux (BlackArch) в VirtualBox и подключить к этой виртуальной машине USB Wi-Fi адаптер.

Если у вас только PCI (встроенный) Wi-Fi адаптер, то установите Linux на внешний USB диск или на флешку и загрузитесь с него.

В Ubuntu ошибки и предложение отправить отчёты при переводе беспроводной карты в режим монитора

Выберите любой другой дистрибутив — Kali Linux, Debian, Arch Linux, BlackArch или даже Linux Mint — там всё работает нормально.

Вопросы и ответы по Wi-Fi в Linux

Почему меняется MAC адрес, даже если не используется программа для этого

Многие современные дистрибутивы настроены постоянно менять MAC адрес. Подробности об этом, а также как отключить или наоборот включить эту функцию смотрите в статье «Как поменять MAC-адрес в Linux, как включить и отключить автоматическую смену (спуфинг) MAC в Linux».

Как узнать, будет ли поддерживаться Wi-Fi карта для аудита Wi-Fi сетей

Самый простой вариант, это выбрать адаптер из данного списка: «USB Wi-Fi адаптеры с поддержкой режима монитора и беспроводных инъекций».

Если вы хотите определить, поддерживает режим монитора и беспроводные инъекции другой адаптер, не включённый в список, то изучите «Как определить, какой Wi-Fi адаптер подойдёт для Kali Linux».

Современные Wi-Fi карты для беспроводного аудита

Двухдиапазонные беспроводные адаптеры с поддержкой режима монитора и беспроводными инъекциями, а также с поддержкой стандарта AC:

Любой из этих адаптеров будет актуален ещё много лет.

Как увидеть, что происходит с беспроводными интерфейсами

Следующие команды помогут вам увидеть абсолютно всё, что происходит за сценой во время, например, неудачных подключений.

Вы можете использовать вывод следующих команд для решения любых проблем с Wi-Fi.

Следующая команда в реальном времени будет показывать всё, что происходит в вашей системе — например, при подключении беспроводного адаптера, она покажет, какой драйвер загружен или какие проблемы возникли. Также будут выведены сообщения от приложений:

journalctl -f

Вывод программы весьма обширен, но его изучение может подсказать причины проблемы. Смотрите также «Как использовать journalctl для просмотра системных логов Linux».

Следующая команда расскажет о всё, что происходит на уровне межсетевого протокола — как IP адреса присваиваются интерфейсам и какие маршруты прописываются в системе:

ip monitor

Смотрите также «Как использовать команду ip в Linux».

А эта команда покажет все события, связанные с беспроводными сетевыми интерфейсами:

iw event

Эти три команды — важнейший источник информации для разрешения неочевидных проблем. Изучайте их вывод или предоставьте вывод этих команд если вы пытаетесь совместно разрешить вашу проблему с Wi-Fi.

Как увидеть события, происходящие в NetworkManager и wpa_supplicant

Чтобы увидеть, что происходит в NetworkManager в реальном времени:

sudo journalctl -f _COMM=NetworkManager

Чтобы увидеть события из wpa_supplicant:

sudo journalctl -f _COMM=wpa_supplicant

Как узнать, сколько трафика было передано

ip -s -h a show <ИНТЕРФЕЙС>

Почему в Wi-Fi на 5 ГГц недоступны каналы между 64 и 100

С помощью команды

iw list

можно посмотреть, какие частоты поддерживает ваша Wi-Fi карта.

Пример вывода:

Ещё один пример:

Набор каналов чуть различается, но в любом случае частоты в диапазоне каналов 64-100 полностью недоступны. То есть они даже не отключены, а как бы просто не существуют.

Возможно вам тоже любопытно, почему существует разрыв между каналом 64 и 100 в Wi-Fi 5 ГГц?

Ответ 1:

В диапазоне 5,35–5,46 ГГц перечислены различные применения, включая «Воздушную радионавигацию». Здесь будут каналы с 68 по 96. Очевидно, они не хотят, чтобы оборудование с поддержкой Wi-Fi было включено даже случайно, что может помешать навигации самолёта.

Ответ 2:

Эти каналы используются совместно с метеорологическим радаром. Маршрутизатор, использующий эти каналы, должен проверить наличие метеорологического радара. Если обнаружен метеорологический радар, маршрутизатор должен переключиться на другой канал, на котором нет метеорологического радара. Я не помню, как быстро маршрутизатор должен прекратить использовать канал. Это может быть 10 минут.

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

Это может быть корпоративное оборудование. Потребители не могут себе этого позволить.

Итак

Отсутствие упоминания канала в списке поддерживаемых частот, а также следующая запись означают, что ваше Wi-Fi устройство не способно работать на этом канале:

5340 MHz [68] (disabled)

Вы также можете увидеть записи с «no IR»:

5180 MHz [36] (22.0 dBm) (no IR)

Флаг no-ir (no-initiating-radiation) переводится как «отсутствие инициирующего излучения», то есть канал в принципе может использоваться, но не может первым отправить никакие данные, то есть он будет задействован только если получит от роутера beacon (маяки) на этих частотах.

Также можно увидеть записи с «no IR, radar detection»:

5260 MHz [52] (22.0 dBm) (no IR, radar detection)

С no IR мы уже разобрались, а «radar detection» видимо означает, что если обнаружен радар на смежных частотах, то эта частота также перестаёт использоваться — но это скорее догадка, если вы знаете более верный ответ, то напишите его в комментариях.

Можно ли использовать для взлома Wi-Fi старые адаптеры поддерживающие только B и G стандарты

Да, такие адаптеры способны выполнять практически все атаки даже на ТД работающие на стандарте N. Подробности смотрите в статье «Для каких атак подходят старые Wi-Fi адаптеры».

Драйверы и прошивки

Драйверы Wi-Fi в Linux. Поддержка Wi-Fi адаптеров в Linux

В настоящее время Linux поддерживает большинство Wi-Fi карт и драйверы для них уже предустановлены в системе (они являются частью ядра). То есть при покупке нового Wi-Fi адаптера или установке Linux на ноутбук в подавляющем большинстве случаев не требуется никаких действий — Wi-Fi адаптер будет просто работать.

В редких случаях понадобится установить из стандартных репозиториев драйвер и/или прошивку.

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

Список установленных драйверов вы найдёте в папке

echo /usr/lib/modules/`uname -r`/kernel/drivers/net/wireless

Вывод драйверов по производителям:

tree /usr/lib/modules/`uname -r`/kernel/drivers/net/wireless

Если по каким-либо причинам драйвер ещё не попал в ядро, то он может присутствовать в стандартных репозиториях в виде отдельных пакетов:

Итак, драйверы для большинства Wi-Fi адаптеров встроены в ядро и, следовательно, уже установлены на любом Linux. Начните с того, что подсоедините вашу беспроводную карту и попробуйте выполнить подключение к Точке Доступа.

Если возникли проблемы, поищите в репозиториях драйвер и/или прошивку для вашего устройства.

Прошивки для драйверов Linux

Если вы знакомы со статьёй «Модули ядра Linux», то вы знаете, что многим устройствам для правильной работы нужны две вещи: драйвер и прошивка. Драйвер запрашивает прошивку из файловой системы в /lib/firmware. Это специальный файл, необходимый для аппаратного обеспечения, это не бинарный файл. Затем дайвер делает все, что нужно для загрузки прошивки в устройство. Прошивка выполняет программирование оборудования внутри устройства.

Кроме полной неработоспособности, когда система не видит Wi-Fi устройство и беспроводные сети, отсутствие прошивки может привести к частичной неработоспособности, когда система видит устройство, но не может его использовать.

Примеры проблем, которые могут вызвать отсутствующие прошивки:

Установка основных пакетов прошивок, необходимых для работы Wi-Fi устройств, выполняется следующими командами.

В Kali Linux:

sudo apt install kali-linux-firmware

В Debian:

sudo apt install firmware-linux firmware-misc-nonfree firmware-iwlwifi firmware-ath9k-htc

В Ubuntu, Linux Mint:

sudo apt install linux-firmware firmware-iwlwifi firmware-ath9k-htc

В Arch Linux, Manjaro, BlackArch:

sudo pacman -S linux-firmware

Подробности смотрите в статье «Прошивки устройств (firmware) в Linux».

Как проверить, какой драйвер используется

# Для вывода списка только USB устройств и их драйверов
usb-devices
 
# Для вывода списка только PCI устройств и их драйверов
lspci -k
 
# Для вывода списка как USB, так и PCI устройств и их драйверов
sudo lshw

Смотрите также Как узнать, какие модули (драйверы) используются USB и PCI устройствами.


Рекомендуется Вам:

38 комментариев to Памятка по Wi-Fi в Linux: подсказки и решение проблем

  1. Евгений:

    А как же драйвер на Kali для usb 3.0?

    • Alexey:

      Не понимаю, что вы имеете в виду. Но вы напомнили мне и я обновил раздел про драйверы — изменения для realtek-rtl88xxau-dkms и rtl8814au, ссылки на установку в разные дистрибутивы. Для этих драйверов можно переключаться в режим USB 3, может быть, это то, что вам нужна.

      Для всех:

      Добавлен новый пункт «Как вывести определённый сетевой интерфейс из-под управления NetworkManager не выключая NetworkManager». Это очень пригодится тем, кому приходится останавливать службу NetworkManager из-за того, что она мешает. Теперь это делать необязательно.

  2. Vladimir:

    какой раз уже нахожу тут ответ, СПАСИБО!

  3. Григорий:

    Добрый день! На ноуте dell n4030 установлена ubuntu 20.04 LTS. При включении ноутбука сеть настраивается как роутер. LAN смотрит в сторону провайдера, а WiFi является точкой доступа раздающей интернет. Настраивал используя network manager. Проблема заключается в том, что при перезагрузки ноута очень часто я не могу подключится к созданной точке доступа. Я ее вижу, однако при подключении просит ввести пароль сети, а потом выдается невозможно подключиться к сети. Лечится либо включением отключением wifi, либо переконфигурацией точки доступа. Не подскажите в чем проблема?

    • Alexey:

      У меня в Ubuntu тоже ничего не работает, поэтому я её не люблю ))))

      Я бы рекомендовал создавать ТД с помощью специализированной программы create_ap. Использование элементарное.

      Например, чтобы создать ТД с именем MyAccessPoint и паролем PASSWORD1 на беспроводном интерфейсе wlan0, Интернет-подключение будет обеспечиваться через интерфейс eth0:

      sudo create_ap wlan0 eth0 MyAccessPoint PASSWORD1

      Если вы хотите разбираться с NetworkManager, то запустите следующую команду:

      sudo journalctl -f /usr/bin/NetworkManager

      Она будет в реальном времени показывать все события происходящие с NetworkManager.

  4. Denis:

    Добрый день, подскажите пожалуйста как настроить AWUS 1900 8814au Kali Linux 2021.1, драйвер установил, адептер виден в системе, можно через него подключиться к интернету, но почему то когда делаю иньекцию, то н срабатывает, поставил самую последнюю версию драйвера.

  5. d3t5:

    Здравствуйте. Столкнулся с проблемой: хост вин10, на виртуальной машине установлен кали, используется usb wifi адаптер tp-link, драйвер realtek-rtl88xxau-dkms — все работало исправно. переустановил хост с вин10 на убунту20.04(по причине личной неприязни к ос виндовс) и далее по той же конструкции. теперь витруалбокс не видит usb устройств вообще. на хосте встроенный wifi и usbwifi работает без нареканий. Прочитал внимательно Ваши статьи по виртуалбокс и wifi в linux (узнал кое что новое для себя, за что огромное спасибо!) но решения своей проблемы не нашел, может дело в самой убунте и ее «дружбе» с виртуалбокс? скажите, сталкивались ли Вы с таким ранее, если да, то есть ли решение.

    p.s. через тип подключения «сетевой мост» и «nat» соединение работает, но только как eth0

    • Alexey:

      Приветствую! В первую очередь убедитесь, что вы не забыли подключить USB устройство к виртуальной машине.

      Кстати, в настройках виртуальной машины USB Wi-Fi адаптер присутствует?

      Другой вариант — выполнять беспроводные атаки прямо из Ubuntu — какие-то инструменты можно найти в репозиториях Ubuntu, недостающие программы можно установить из исходного кода.

  6. d3t5:

    Не ожидал, что так быстро ответите))благодарю!
    В том то и дело, что в настройках виртуальная машина не видит usb устройств вообще. Пробовал отключить в биос(чтобы убунту не перехватывала на себя устройства — не помогло).

    Да, про второй вариант знаю, подключил репозиторий кали к убунте, но хотелось бы без таких «костылей».

    Вот еще кое что из наблюдений: когда виртуалка с кали работала на вин10, то usb wifi интерфейс определялся как wlan0 и мак адрес был постоянным, спуфить не получалось. сейчас же интерфейс usb wifi определяется убунтой как wlx а сам мак спуфится без проблем. (вот за что люблю Linux — всегда покидывает ребусы и заставляет учиться и думать)) ) Позже попробую на другом устройстве на хост поставить Дебиан + виртуалбокс с кали и usb wifi. Если сработает, значит дело в убунте. (если ошибаюсь поправьте пожалуйста)

    • Alexey:

      Именно с такой проблемой я не сталкивался, но у меня был неприятный опыт использования Wi-Fi адаптеров на Ubuntu. Например, я переводил беспроводной интерфейс в режим монитора и у меня сразу выскакивали сообщения об ошибках и предложения отправить отчёт. Я про это уже писал (вроде даже несколько раз). И с такими проблемами я не сталкивался больше ни на одном дистрибутиве, даже на Linux Mint (издания которой основываются на Ubuntu или Debian), такой проблемы нет.

      Думаю, проблема исчезнет как только попробуете любой другой дистрибутив.

      Что касается подключений репозиторий другого дистрибутива, то я бы крайне не рекомендовал это делать, из-за несовместимости ядер, драйверов и чего-нибудь ещё можно поломать систему. На практике, обычно пользователь реально применяет несколько инструментов, их можно установить из исходников, многие даже устанавливать не надо — достаточно клонировать с GitHub’а.

      ИМХО, если основной системой всё равно предполагается Linux, то я бы вполне рассмотрел Kali Linux в качестве основной ОС. Причём, можно установить без инструментов (чтобы не занимала много места), а затем устанавливать только нужные. Прелесть Rolling дистрибутивов в том, что их никогда не нужно переустанавливать на новые версии. Например, у меня ОС установлена 3 года назад и при этом все пакеты в актуальном состоянии:

      Правда, у меня Arch Linux с репозиториями BlackArch в качестве основной ОС.

      • d3t5:

        Добрый день Алексей! Спустя два месяца, я нашел причину того, что virtualbox на убунте не "видела" usb )))  При установке virtualbox, создалась группа vboxusers, и нужно было всего лишь добавить в нее пользователя sudo usermod -aG vboxusers имя_пользователя. И все заработало, зря об убунту плохо думали:)
         

         

         

  7. d3t5:

    Вы правы! В ubuntu сейчас при переводе usb wifi адаптера в режим монитора терминал завис), а встроенный модуль wifi без проблем переводит. Таким образом ubuntu разрешает использовать usb wifi адаптер только в «мирных целях» и запрещает использовать на виртуалбокс вообще.(капризная Убунту)

    Про подключение репозиторий от других дистрибутивов помню, читал у Вас) я сделал это только для установки пару инструментов и сразу отключил, но спасибо за напоминание!

    Попробую разные варианты, Ubuntu мне нравится для обычного повседневного использования).

    p.s. Большое спасибо за Ваши статьи. По возможности участвую в донорстве, хотелось бы больше, но это у меня хобби и денег мне не приносит (может быть пока), так сказать начинающий энтузиаст))

  8. Дмитрий:

    Добрый день,

    Купил  Alfa AWUS036AC, в USB кали видит (VB) адаптер, но драйвер не определяет. Драйвер накатывал дополнительно realtek-rtl88xxau-dkms, в итоге пишет, что всё ок с ним. Но данный адаптер драйвер не подхватывает, в чем может быть дело?

    • Alexey:

      Приветствую! Как именно проявляется, что «не подхватывает драйвер», что именно не работает?

      Выводит ли беспроводные интерфейсы следующая команда:

      sudo iw dev

      Что выводит следующая команда, когда адаптер подключён:

      sudo lsmod | grep 88XXau
      
      • Дмитрий:

        Добрый день!

        Команды результата не выдают + установил еще одну версию Кали декстоп только в VB. Ситуация аналогичная. При переустановке драйвера заметил это

        Насколько я понял что-то с ядром…

         

         

        • Alexey:

          Во второй команде (которая lsmod) у вас опечатка, но это в данном случае неважно.

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

          По умолчанию заголовки ядра установлены в Kali Linux.

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

          sudo apt remove realtek-rtl88xxau-dkms
          sudo apt update && sudo apt full-upgrade
          reboot
          sudo apt install linux-headers-`uname -r`
          sudo apt install realtek-rtl88xxau-dkms

          Если у вас обычная Kali Linux, то различие версий ядра и заголовков ядра может быть из-за неполного обновления системы. Чтобы это исправить, удалите драйвер:

          sudo apt remove realtek-rtl88xxau-dkms

          Полностью обновите всю систему:

          sudo apt update && sudo apt full-upgrade

          Обязательно (!) перезагрузитесь:

          reboot

          Попробуйте установить драйвер ещё раз:

          sudo apt install realtek-rtl88xxau-dkms
          
          • Дмитрий:

            Спасибо большое, помогло!

            Выполнил 2 команды:
            sudo apt update
            Затем
            sudo apt uprade

            Перезапустил, драйвер сам был доустановлен!

  9. Булат:

    Добрый день!
    Недавно я купил ноутбук Asus TUF Gaming A15 FX506L-HN004 (без ОС) и установил MX Linux 19.4.
    Однако мне не удалось найти драйвер для WiFi адаптера Mediatek MT7961 (хотя на нижней крышке указано: Mediatek MT7921).
    Буду вам весьма признателен за помощь в решении данного вопроса.
    Спасибо.

    • Alexey:

      Приветствую! Драйвер для данного адаптера добавлен в ядро Linux начиная с версий 5.12+.

      То есть вариантов исправить ситуацию два:

      1. Установить дистрибутив с ядром 5.12+ (из известных мне, на данный момент это только Arch Linux)

      2. Установить свежий дистрибутив с любым ядром и выполнить установку последней версии ядра. О том, как это сделать, смотрите статью «Как установить драйвер для Wi-Fi Mediatek MT7921 и Mediatek MT7961 в Linux». Поскольку MX Linux основан на Debian, то вам должны помочь инструкции из этой статьи для Debian.

  10. c0rd:

    Добрый день. Немогу перейти в режим монитора.

    ┌──(root💀kali)-[/home/kali]
    └─# iw wlan0 set monitor control  
    command failed: No such device (-19)

     

                                                                                
    ┌──(root💀kali)-[/home/kali]
    └─# lsusb                                                              130 ⨯
    Bus 002 Device 002: ID 0781:5597 SanDisk Corp. Cruzer Glide 3.0
    Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    Bus 001 Device 004: ID 04f2:b5e0 Chicony Electronics Co., Ltd VGA WebCam
    Bus 001 Device 003: ID 04ca:3015 Lite-On Technology Corp. Qualcomm Atheros QCA9377 Bluetooth
    Bus 001 Device 002: ID 2357:010c TP-Link TL-WN722N v2/v3 [Realtek RTL8188EUS]
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

     

     

    • Alexey:

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

      iw dev
      
  11. c0rd:

    ┌──(root💀kali)-[/home/kali]
    └─# iw dev                                                               1 ⨯
    phy#0
            Unnamed/non-netdev interface
                    wdev 0x6
                    addr 98:22:ef:7c:df:d5
                    type P2P-device
                    txpower 0.00 dBm
            Interface wlan1
                    ifindex 4
                    wdev 0x1
                    addr d6:ac:47:dc:09:08
                    type managed
                    txpower 0.00 dBm
                    multicast TXQ:
                            qsz-byt qsz-pkt flows   drops   marks   overlmt hashcol      tx-bytes        tx-packets
                            0       0       0       0       0       0       0   00

     

    • Alexey:

      Так и есть, замените в предыдущей команде имя интерфейса на wlan1. Перед выполнением команд, проверяйте текущее имя интерфейса с помощью «iw dev».

      • c0rd:

        wlan1, — это фдаптер компа, еще маленькая деталь Kali стоит на флешки это недолжно влиять , на видимость wi-fi адаптера , интернет есть

      • c0rd:

        вот так работает wlan1

        ┌──(root💀kali)-[/home/kali]
        └─# airodump-ng wlan1             

         CH 12 ][ Elapsed: 42 s ][ 2021-10-10 06:28                                  
                                                                                
         BSSID              PWR  Beacons    #Data, #/s  CH   MB   ENC CIPHER  AUTH E
                                                                            
                                                                                BSSID              STATION            PWR   Rate    Lost    Frames  Notes 

        • Alexey:

          В том смысле что пусто? Много причин может быть: от того, что просто не отключён NetworkManager до проблем с драйверами. Найдите раздел «Как остановить программы, которые мешают аудиту безопасности Wi-Fi» и начните с этих команд.

          Всё уже было и всё уже обмусолено. Эта статья не такая большая, просто прочитайте её целиком.

  12. c0rd:

    ┌──(root💀kali)-[/home/kali]
    └─# iwconfig                      
    lo        no wireless extensions.

    eth0      no wireless extensions.

    wlan0     IEEE 802.11bgn  ESSID:"Boorboon"  Nickname:"<WIFI@REALTEK>"
              Mode:Managed  Frequency:2.472 GHz  Access Point: 38:2C:4A:CE:1B:70   
              Bit Rate:72.2 Mb/s   Sensitivity:0/0  
              Retry:off   RTS thr:off   Fragment thr:off
              Encryption key:****-****-****-****-****-****-****-****   Security mode:open
              Power Management:off
              Link Quality=100/100  Signal level=64/100  Noise level=0/100
              Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
              Tx excessive retries:0  Invalid misc:0   Missed beacon:0

    wlan1     IEEE 802.11  Mode:Monitor  Frequency:2.412 GHz  Tx-Power=-2147483648 dBm   
              Retry short limit:7   RTS thr:off   Fragment thr:off
              Power Management:on

     

    • Alexey:

      Что выводит команда iwconfig мне не интересно. Отвыкайте от использования этой команды.

      Но она в данном случае показывает всё верно:

      • wlan0 — подключён к ТД
      • на wlan1 — режим монитора

      Всё норм.

      • c0rd:

         

        это и есть мой wi-fi адаптер и он не переводиться.

        wlan0 IEEE 802.11bgn ESSID:"Boorboon" Nickname:"" Mode:Managed Frequency:2.472 GHz Access Point: 38:2C:4A:CE:1B:70

        • c0rd:

          команда iw dev его не показывает.

          ──(root💀kali)-[/home/kali]
          └─# iw dev                   
          phy#0
                  Interface wlan1
                          ifindex 4
                          wdev 0x1
                          addr 98:22:ef:7c:df:d5
                          type managed
                          txpower 0.00 dBm
                          multicast TXQ:
                                  qsz-byt qsz-pkt flows   drops   marks   overlmt hashcol      tx-bytes        tx-packets
                                  0       0       0       0       0       0       0   00

          поэтому я пользовался iwconfig , чтоб біла видна ситуация.

  13. c0rd:

    Разобрался , проблема была с USB адаптером , точнее с его прошифкой. Сейчас все работает.

  14. Ruslan:

    Здравствуйте! Проблема в том, что kali использует встроенный wi fi адаптер ноутбука atheros и всячески игнорирует usb адаптер Asus ac56… Командой  lsusb видно, что usb адаптер kali видит, но все подключения идут через встроенный, iw dev показывает только встроенный, драйвер для  Realtek rtl88xxau пишет — нет в каталоге.

    В корне видно, что присутствует драйвер rtl8xxxu…

    update и upgrade также пробовал… Скачивает обновляет но ситуация не меняется. Каким образом можно задействовать именно usb адаптер? 

    • Alexey:

      Приветствую! Начните с установки драйвера и прошивок:

      sudo apt install realtek-rtl88xxau-dkms
      sudo apt install kali-linux-firmware

      После установки перезагрузите компьютер и проверьте.

      Если не поможет, то в трёх окнах терминалов запустите команды:

      iw event
      ip monitor
      journalctl -f

      После этого подключите беспроводной адаптер. Подождите пару секунд, остановите выполнение команд и проанализируйте вывод. Если не разберётесь, то напишите его здесь в комментарии.

  15. Ruslan:

    Вао всё получилось!!! как так то… я пробовал эту команду realtek-rtl88xxau, терминал ответил, что пакеты не найдены… так же как и на команды realtek-rtl8812au и realtek-rtl8xxxu{как в корневой папке}… А сейчас всё получилось! Примного Благодарен Вам Алексей!!!

  16. Gen:

    Ноутбук без разьема проводной интернет,только WiFi.Сразу поставил убунту 20.04 без проблем WiFi работает. Начал устанавливать Астру -не возможно найти в перечне драйвер wireless-AC 9462. Что делать? И другие операционки не устанавливают драйвера пробовал windows- не устанавливает.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *