Андрей Смирнов
Время чтения: ~12 мин.
Просмотров: 0

Подключаемся к WiFi(WPA2) через консоль в Debian Linux

Если вы пользуетесь какой-либо операционной системой на базе ядра linux, то скорее всего уже видели графические приложения для подключения к беспроводными сетям. Но если графического приложения еще нет, и для установки его требуется наличие сети, а для получения доступа к Интернету необходимо подключиться к беспроводной точке, то выход тогда только один — настройка WiFi из командной строки. Или еще пример — настроить сервер по ssh, чтобы он мог работать с беспроводным контроллером.

Установка необходимых пакетов

В первую очередь необходимо проверить, установлены ли пакет wpasupplicant и wireless-tools. Эти пакеты позволят вам подключаться к беспроводным сетям с WPA и WPA2 аутентификацией. В Debian и Ubuntu это делается командами

dpkg -l | grep wpasupplicant  dpkg -l | grep wireless-tools

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

apt-get install wpasupplicant wireless-tools

Кроме того, может понадобиться поставить микрокод (firmware) для устройства, установив соответствующий производителю пакет. Микрокод также называют прошивкой, но это не совсем правильно. Микрокод загружается в устройство перед началом работы с ним, а прошивка в устройстве находится постоянно. Для Intel это может быть, например, пакет firmware-iwlwifi из репозитория non-free. Микрокод часто лежит именно в этой ветке репозиториев. Либо это может быть пакет firmware-realtek, либо firmware-linux-free.

Проверка беспроводного контроллера

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

03:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8188CE 802.11b/g/n WiFi Adapter (rev 01)

А в списке интерфейсов должен присутствовать соответствующий сетевой интерфейс, обычно это wlan0. Просмотреть список можно командой

ifconfig -a

Настройка WiFi из командной строки

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

# iwlist scanning

На экран будет выведен список доступных сетей в виде записей такого вида:

Cell 04 - Address: 64:70:02:A4:D5:4E            Channel:2            Frequency:2.417 GHz (Channel 2)            Quality=55/70  Signal level=-55 dBm            Encryption key:on            ESSID:"wireless-net"            Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s                      9 Mb/s; 12 Mb/s; 18 Mb/s            Bit Rates:24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/s            Mode:Master            Extra:tsf=000000efaa1c94dc            Extra: Last beacon: 260ms ago            IE: Unknown: 0005616E67656C            IE: Unknown: 010882848B960C121824            IE: Unknown: 030102            IE: Unknown: 2A0100            IE: IEEE 802.11i/WPA2 Version 1                Group Cipher : CCMP                Pairwise Ciphers (1) : CCMP                Authentication Suites (1) : PSK            IE: Unknown: 32043048606C            IE: Unknown: 2D1AEF1103FFFF0000000000000000000000000000000406E6E70D00            IE: Unknown: 331AEF1103FFFF0000000000000000000000000000000406E6E70D00            IE: Unknown: 3D1602051100000000000000000000000000000000000000            IE: Unknown: 341602051100000000000000000000000000000000000000            IE: Unknown: DD180050F2020101830003A4000027A4000042435E0062322F00            IE: Unknown: DD0900037F01010000FF7F            IE: Unknown:  DD990050F204104A0001101044000102103B00010310470010000102030405060708090A0B0C0D0E0F1021000754502D4C494E4B10230009544C2D57523834314E10240003382E3010420003312E301054000800060050F204000110110019576972656C65737320526F7574657220544C2D57523834314E100800020086103C000101104900140024E26002000101600000020001600100020001

Из этой информации нам понадобится поле «ESSID», представляющее название точки доступа, в данном случае «wireless-net», а также строчки «IEEE 802.11i/WPA2 Version 1» и «Authentication Suites (1) : PSK». Эти два значения дают нам понимание того, что используется WPA2-PSK аутентификация.

Создаем файл /etc/wpa_supplicant/wpa_supplicant.conf:

wpa_passphrase wireless-net password > /etc/wpa_supplicant/wpa_supplicant.conf

И затем даем команду

wpa_supplicant -B -iwlan0 -Dwext -c/etc/wpa_supplicant/wpa_supplicant.conf

После этого, если адрес не получен автоматически, вызываем DHCP-клиент:

dhclient wlan0

После получения адреса Интернет может быть недоступен. Необходимо командой route проверить таблицы роутинга. Если шлюз по умолчанию отсутствует, то надо добавить его командой

route add default gateway 

Если адрес указан верно, то вы сможете получить доступ к Интернету. Но обычно DHCP-клиент получает шлюз по умолчанию автоматически

Изменение конфигурационных файлов

Теперь нам необходимо задать в конфигурационных файлах параметры беспроводной сети — название и ключ.

Записываем в файл /etc/network/interfaces следующее:

auto wlan0  iface wlan0 inet dhcp  wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

После этого поднимаем сетевой интерфейс:

# ifconfig wlan0 up

или

# ifup wlan0

Вот и всё. Жду ваших комментариев

Если вы владелец какого-либо мобильного устройства под управлением OS Linux, то вам в первую очередь придется задуматься над выполнением задачи номер один — настройка соединения с беспроводной точкой доступа Wifi. По умолчанию, стандартные инструменты для Linux-десктопов надежны и удобны в использовании. Например, Wifi Radar, Network Manager, Wicd и многие другие программы этого класса. Конечно, подразумевается, что вы используете окружения типа Gnome или KDE, обладающих очень богатым функционалом и выбором.

Но как быть, если у вас нечто другое и более редкое — E17, Fluxbox, ION или вообще «голая» консоль? В этом случае вам стоит применить классический способ настройки — командная строка.

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

  • графическое приложение Wicd (для примера);
  • консольные утилиты.

Вступление

Предполагается, что у вас имеется беспроводное сетевое устройство (адаптер), который работает под Linux. Если вы вдруг обнаружили, что ваше устройство не работает, можно предложить, как один из вариантов для новичков, поставить последнюю версию дистрибутива Ubuntu и установить проприетарные драйвера для своей беспроводной карточки. Предложенный случай является наиболее простым и действенным, по сравнению с попытками заставить работать адаптер через драйвер ndiswrapper. Также предполагается, что у вас имеются в наличии два параметра для подключения к беспроводной точке: SSID и идентификационный ключ. Без них (особенно — без второго, так как первый еще можно легко узнать) вы не сможете установить соединение.

Wicd

Wicd — графическое приложение, написанное на Python. Гибкая и удобная в использовании программа, предлагающая большой функционал. Wicd легко устанавливается и им также легко пользоваться. Достаточно всего нескольких минут для ознакомления с программой. Стоит также заметить, что Wicd, помимо графического интерфейса, имеет и консольный вариант «исполнения», не уступающий по функциональности.

wicd_main_window.png

Командная строка

Давайте теперь посмотрим, как настроить wifi-соединение через командную строку. К слову сказать, такой способ является универсальным, так как используются утилиты, являющиеся стандартными для всех дистрибутивов Linux. Более того, все приложения с графическим интерфейсом (GUI) основаны на работе именно этих утилит. Образно говоря, если мы «снимем» «крышу» GUI у любого графического приложения, то под ней мы увидим скромных и незаметных тружеников консоли: ifconfig, wireless-tools, wpa_supplicant, ping, nmap и многих других.

Для выполнения нашей задачи понадобятся следующие утилиты:

  • ifconfig: полностью управляет работой любого сетевого адаптера вашего компьютера (будь то проводной или беспроводной интерфейс);
  • iwlist: выдает список доступных для подключения (находящихся в радиусе досягаемости) беспроводных дочек доступа;
  • iwconfig: утилита управления и конфигурирования беспроводных сетевых устройств (адаптеров);
  • dhclient (или его налоги): автоматически получает IP-адрес от dhcp-сервера беспроводной точки;
  • wpa_supplicant: утилита для настройки шифрованных соединений.

Перед началом настройки wifi-соединения логичным было бы проверить наличие всех этих утилит в системе (хотя, почти все они входят в стандартный набор Linux-дистрибутивов). Давайте, все же, убедимся в том, что они есть у нас, выполнив совсем несложные команды (см. man which):

  • which ifconfig
  • which iwlist
  • which iwconfig
  • which dhclient
  • which wpa_supplicant

При выполнении каждой из этих команд вы увидите путь, по которому они располагаются в файловой системе. Если вдруг не увидите — вам придется установить отсутствующие. Наиболее простой и рекомендуемый — это менеджером пакетов того дистрибутива Linux, которым вы пользуетесь. Как альтернатива — можно предложить установку из исходников, но такой путь требует достаточного опыта от пользователя.

Рассмотрим пример подключения к wifi-точке с шифрованием WEP

  1. Первое, что мы сделаем — посмотрим, какие сетевые адаптеры имеются у нас на компьютере:
# ifconfig -a 

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

  1. Запускаем беспроводной сетевой адаптер:
# ifconfig wlan0 up 

здесь:

  • wlan0 — стандартное в большинстве Linux-систем имя wifi-карточки;
  • up — опция говорит команде ifconfig запустить для работы («поднять») сетевое устройство.
  1. Теперь нам надо сканировать эфир вокруг себя на наличие доступных hot-spot’ов:
# iwlist wlan0 scan 

здесь:

  • wlan0 — имя беспроводного адаптера;
  • scan — команда iwlist запускается в режиме сканирования.

Результатом работы iwlist будет детальный отчет, из которого на данном этапе нас интересует только одна строчка: ESSID:»Some_Name». Значение параметра ESSID («Some_Name») — это имя беспроводной точки доступа. Теперь мы знаем, к какой конкретно wifi-точке мы будем подключаться.

  1. Выполняем подключение:
# iwconfig wlan0 essid Some_Name key Wireless_Key 

здесь:

  • wlan0 — сетевой адаптер, на котором настраивается соединение;
  • essid — задаем имя точки доступа, к которой подключаемся;
  • key — указываем ключ шифрования, использующийся этой точкой доступа для передачи данных.

Замечание:

Команда iwconfig по умолчанию использует для ключа шифрования данные в шестнадцатеричном виде HEX. Если вы хотите указать ключ в виде простого текста (ASCII), вам необходимо использовать опцию s. Например, так:

# iwconfig wlan0 essid Some_Name key s:Wireless_Key 

Соединение установлено.

  1. Последний шаг — получаем от dhcp-сервера wifi-точки IP-адрес:
# dhclient wlan0 

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

#! /bin/bash ifconfig wlan0 up iwconfig wlan0 essid Some_Name key s:Wireless_Key sleep 10 dhclient wlan0 
# chmod u+x wireless_up 

Переносим wireless_up по пути /usr/local/bin, чтобы сделать его глобально видимым всей системой. Теперь вам достаточно набрать в командной строке:

# wireless_up 

и соединение будет установлено.

Рассмотрим более сложный случай — соединение с точкой доступа по WPA-шифрованию

Соединение с таким шифрованием поддерживает только утилита wpa_supplicant, поэтому она нам понадобиться. Также, опять таки, предполагаем, что мы знаем ключ (пароль) шифрования этой точки доступа.

  1. Генерируем пароль на основе этого ключа с помощью утилиты wpa_passphrase, которая входит в состав пакета wpa_supplicant. Дело в том, что пароль, который мы будем использовать далее, должен быть в виде шестнадцатиричного числа:
# wpa_passphrase ssid password 

Утилита выдаст сгенерированную строку psk, которую мы вставим в конфигурационный файл wpa_supplicant.conf:

# sudo nano -w /etc/wpa_supplicant.conf Network={ ssid=SSID psk=PSK } 

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

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=wheel 
# ifconfig wlan0 up 
  1. Указываем, к какой точке мы хотим подключиться:
# iwconfig wlan0 essid ssid 
  1. Запускаем утилиту wpa_supplicant на установку соединения:
# wpa_supplicant -B -Dwext -i wlan0 -c /etc/wpa_supplicant.conf 

здесь:

  • -B — запускать команду wpa_supplicant в фоновом режиме;
  • -Dwext — говорим утилите wpa_supplicant использовать драйвер wext для интерфейса wlan0;
  • -i — задаем настраиваемый сетевой интерфейс (wlan0 в нашем случае);
  • — указываем путь к конфигурационному файлу wpa_supplicant.conf.
  1. Проверяем, что соединение установлено:
# iwconfig wlan0 

На выводе увидим подробную информацию по указанному интерфейсу wlan0.

  1. Получаем локальный IP-адрес:
# dhclient wlan0 

7.Упрощаем процесс, создав по пути /etc/network/interfaces запись следующего вида:

auto wlan0 iface wlan0 inet dhcp pre-up wpa_supplicant -Bw -Dwext -i wlan0 -c /etc/wpa_supplicant.conf post-down killall -q wpa_supplicant 

Заключение

В зависимости от дистрибутива Linux, существует множество способов настройки wifi-соединений. Именно благодаря такому разнообразию настроить соединение можно практически в любой Linux-системе.

Главное, чтобы сам беспроводной адаптер поддерживался в Linux на уровне драйверов. Но это уже зависит главным образом от разработчиков операционных систем.

Автор: В. СемененкоДата публикации: май 2011 г.Линукс по-русски

23.01.2016

Кали Линукс не видит wifi модуль ?

Всем привет, это очередной урок по решению вопросов по неисправностям и несовместимости некоторого установленного оборудования в ноутбуки с установленной операционной системой Кали Линукс . На всеобъемлемость не претендую, покажу как решил вопрос с конкретной моделью ноутбука. Кали установлена на жёсткий диск основной системой – не ВИРТУАЛКА! Если вы предпочитаете работу в виртуальной машине, обратитесь за некоторой информацией к статье Как установить виртуальную Кали Линукс?

Параметры машины таковы:

  • Имеется бюджетный ноутбук Lenovo B590
  • На борту Кали Линукс версия 2.0
  • Процессор от Intel с 2-мя ядрами (потом посмотрим списком…)
  • Диск, оперативная память нас не волнуют, ибо…

Симптомы:

Без дополнительного модема wifi не работает, Кали Линукс не видит wifi никакого , и вообще система не понимает, установлен ли внутри модуль беспроводного соединения. Рассмотрю решение проблемы пошагово.

Любые операции начинаем с команды:

apt-get clean && apt-get update && apt-get upgrade

Для начала взглянем на список установленного оборудования для приёма и трансляции сигналов. Он не богат:

spisok-wifi.jpgТеперь взглянем, что установлено на борту Lenovo B590 и работает ли (да работает, конечно; из-под второй, установленной на том же Lenovo B590 windows 7, wifi работает отлично). Введём команду просмотра всего оборудования, кто не помнит – запоминайте – пригодится:

lspci

Lenovo-B590.jpg

А вот и установленный на Lenovo B590 этой версии модуль, из-за которого Кали Линукс не видит wifi:

02:00.0 Network controller: Broadcom Corporation BCM43142 802.11b/g/n

wifi-modul-Broadcom-Corporation-BCM43142-802.11.jpg

Что ж, ситуация знакома: модуль на месте, драйвера – нет. Обратившись к страничке поддержки драйверов (а тогда она выглядела именно так) этого семейства для Линукс, и присмотревшись к разноцветной табличке списка поддерживаемых устройств, обнаружил, что устройство в списке не без проблем:

spisok-ustrojstv.jpg

Ну не сидеть же нам без wifi, и не покупать дешёвенький модуль на USB (не вздумайте купить без оглядки другой модуль для своего ноута – 99% вероятности, что конфигурация ноутбука этого вам просто не позволит сделать). А альфа-карты нам нужны для другого. Поехали в Debian за справкой и посмотрим, что есть для нас новенького. Оказывается, есть и давно. Тогда установим последние версии пакетов linux-image, linux-headers и broadcom-sta-dkms. Откроем терминал и пропишем знакомой уже командой (некоторые флаги могли устареть). Но предварительно добавим к Кали ещё один репозиторий:

leafpad /etc/apt/sources.list

Сюда пропишем новый адрес с новой строки:

deb http://httpredir.debian.org/debian/ stretch main contrib non-free

А теперь установка:

apt-get update apt-get install linux-image-$(uname -r|sed 's,[^-]*-[^-]*-,,') linux-headers-$(uname -r|sed 's,[^-]*-[^-]*-,,') broadcom-sta-dkms

ustanovka-paketov.jpg

На комментарии терминала на рисунке не смотрите, у меня всё уже стоит. Следите за синтаксисом команды (она не вся влезла в фото – поздно заметил). Поддержка динамического ядра модуля DKMS установит в Кали новое устройство с названием wl. Теперь выгрузим конфликтующие модули (если таковые имеются):

modprobe -r b44 b43 b43legacy ssb brcmsmac bcma

И, наконец, загружаем новообразованный модуль:

modprobe wl

Если ошибок терминал не вернул, перезагружать не нужно. Проверим, что показывает NetworkManager Кали:

NetworkManager-Kali-Linuks.jpg

Менеджер заметил модуль wifi в нашем Lenovo B590. Проверим, есть ли он в списке устройств через терминал:

iwconfig

kali-linuks-vidit-BCM43142.jpg

Привет… Новообразованный wlan6 режим мониторинга поддерживать не будет, однако для комфортной “официальной” работы его предостаточно. Если на каком-то из этапов терминал заругался, не примените перезагрузить Кали с командой на полное обновление:

apt-get clean && apt-get update && apt-get upgrade -y && apt-get dist-upgrade -y

и повторить установку. Успехов.

РубрикаLinuxБраузер Tor в Кали Линукс.Проигрыватель VLC Кали ЛинуксИспользуемые источники:

  • https://mnorin.com/nastrojka-wifi-iz-komandnoj-stroki.html
  • https://ergoz.ru/kak-nastroit-wifi-soedinenie-na-lyubom-linux-desktope/
  • https://computer76.ru/2016/01/23/bcm43142-driver-in-kali-linux/

Рейтинг автора
5
Подборку подготовил
Андрей Ульянов
Наш эксперт
Написано статей
168
Ссылка на основную публикацию
Похожие публикации