Как настроить Wifi-соединение на любом Linux-десктопе
Если вы владелец какого-либо мобильного устройства под управлением OS Linux, то вам в первую очередь придется задуматься над выполнением задачи номер один — настройка соединения с беспроводной точкой доступа Wifi. По умолчанию, стандартные инструменты для Linux-десктопов надежны и удобны в использовании. Например, Wifi Radar , Network Manager , Wicd и многие другие программы этого класса. Конечно, подразумевается, что вы используете окружения типа Gnome или KDE, обладающих очень богатым функционалом и выбором.
Но как быть, если у вас нечто другое и более редкое — E17, Fluxbox, ION или вообще «голая» консоль? В этом случае вам стоит применить классический способ настройки — командная строка.
Давайте рассмотрим два случая настройки соединения с беспроводной точкой доступа:
— графическое приложение Wicd ( для примера );
— консольные утилиты.
Вступление
Предполагается, что у вас имеется беспроводное сетевое устройство (адаптер), который работает под Linux. Если вы вдруг обнаружили, что ваше устройство не работает, можно предложить, как один из вариантов для новичков, поставить последнюю версию дистрибутива Ubuntu и установить проприетарные драйвера для своей беспроводной карточки. Предложенный случай является наиболее простым и действенным, по сравнению с попытками заставить работать адаптер через драйвер ndiswrapper.
Также предполагается, что у вас имеются в наличии два параметра для подключения к беспроводной точке: SSID и идентификационный ключ. Без них (особенно — без второго, так как первый еще можно легко узнать) вы не сможете установить соединение.
Wicd — графическое приложение, написанное на Python. Гибкая и удобная в использовании программа, предлагающая большой функционал. Wicd легко устанавливается и им также легко пользоваться. Достаточно всего нескольких минут для ознакомления с программой. Стоит также заметить, что Wicd, помимо графического интерфейса, имеет и консольный вариант «исполнения», не уступающий по функциональности.
Командная строка
Давайте теперь посмотрим, как настроить 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. Если не был обнаружен желаемый, то причина заключается только в одном — нет драйверов для него и не включена поддержка этого интерфейса в ядре Linux.
2 . Запускаем беспроводной сетевой адаптер:
здесь :
— wlan0 — стандартное в большинстве Linux-систем имя wifi-карточки;
— up — опция говорит команде ifconfig запустить для работы («поднять») сетевое устройство.
3 . Теперь нам надо сканировать эфир вокруг себя на наличие доступных hot-spot’ов:
— wlan0 — имя беспроводного адаптера;
— scan — команда iwlist запускается в режиме сканирования.
Результатом работы iwlist будет детальный отчет, из которого на данном этапе нас интересует только одна строчка: ESSID:»Some_Name». Значение параметра ESSID («Some_Name») — это имя беспроводной точки доступа. Теперь мы знаем, к какой конкретно wifi-точке мы будем подключаться.
4 . Выполняем подключение:
— wlan0 — сетевой адаптер, на котором настраивается соединение;
— essid — задаем имя точки доступа, к которой подключаемся;
— key — указываем ключ шифрования, использующийся этой точкой доступа для передачи данных.
Команда iwconfig по умолчанию использует для ключа шифрования данные в шестнадцатеричном виде HEX. Если вы хотите указать ключ в виде простого текста (ASCII), вам необходимо использовать опцию s .
5 . Последний шаг — получаем от dhcp-сервера wifi-точки IP-адрес:
Естественно, вышеуказанные шаги выполнять каждый раз утомительно. Можно упростить процесс установки соединения, написав скрипт подключения, в котором мы объединим все эти команды в одно целое:
Здесь мы добавили еще одну команду sleep с параметром 10 секунд. Это рекомендуется делать перед получением IP-адреса для надежности установки соединения.
Сохраняем этот файл под каким-либо именем (например, wireless_up) и делаем его исполняемым командой:
Переносим wireless_up по пути /usr/local/bin, чтобы сделать его глобально видимым всей системой.
Теперь вам достаточно набрать в командной строке:
. и соединение будет установлено.
Рассмотрим более сложный случай — соединение с точкой доступа по WPA-шифрованию
Соединение с таким шифрованием поддерживает только утилита wpa_supplicant, поэтому она нам понадобиться. Также, опять таки, предполагаем, что мы знаем ключ (пароль) шифрования этой точки доступа.
1 . Генерируем пароль на основе этого ключа с помощью утилиты wpa_passphrase, которая входит в состав пакета wpa_supplicant. Дело в том, что пароль, который мы будем использовать далее, должен быть в виде шестнадцатиричного числа:
Утилита выдаст сгенерированную строку psk, которую мы вставим в конфигурационный файл wpa_supplicant.conf:
Это очень упрощенный файл конфигурации, но он будет работать. Возможно, вам потребуется добавить в шапку этого файла еще одну строку:
для предоставления необходимых прав доступа.
2 . «Поднимаем» интерфейс wlan0:
3. Указываем, к какой точке мы хотим подключиться:
4 . Запускаем утилиту wpa_supplicant на установку соединения:
здесь :
— B — запускать команду wpa_supplicant в фоновом режиме;
— Dwext — говорим утилите wpa_supplicant использовать драйвер wext для интерфейса wlan0;
— i — задаем настраиваемый сетевой интерфейс (wlan0 в нашем случае);
— с — указываем путь к конфигурационному файлу wpa_supplicant.conf.
5 . Проверяем, что соединение установлено:
На выводе увидим подробную информацию по указанному интерфейсу wlan0.
6 . Получаем локальный IP-адрес:
7 .Упрощаем процесс, создав по пути /etc/network/interfaces запись следующего вида:
Заключение
В зависимости от дистрибутива Linux, существует множество способов настройки wifi-соединений. Именно благодаря такому разнообразию настроить соединение можно практически в любой Linux-системе.
Главное, чтобы сам беспроводной адаптер поддерживался в Linux на уровне драйверов. Но это уже зависит главным образом от разработчиков операционных систем.
Источник
Linux с вай фаем
В последнее время беспроводные (wi-fi) локальные сети (WLAN — Wireless Local Area Network) приобрели широкое распространение. В данном практическом руководстве рассматривается простейший случай: настройка и подключение компьютера на Debian GNU/Linux к уже существующей wi-fi локальной сети. Указаны особенности настройки wi-fi карточек: мобильной Intel 2200 BG (в ноутбуке Dell) и PCI-карточки D-Link DWA-510 (на чипе RaLink RT2561/RT61), установленной в стационарном компьютере.
В приведенном ниже типичном примере сеть имеет адрес 192.168.7.0, базовая wi-fi станция (точка доступа, AP — access point) является также шлюзом в интернет и имеет адрес 192.168.7.1, маска wi-fi подсети 255.255.255.0, радиосигнал идет на 3-ем канале (задается в настройках точки доступа), шифрование wi-fi сигнала осуществляется по алгоритму WPA методом TKIP с помощью PSK ключа (PSK — pre-shared key).
2. Модуль ядра и установка прошивки (фирменного программного обеспечения) для wi-fi карточки
У многих дистрибутивов определение типа wi-fi карточки и настройка соответствующего программного модуля таким образом, чтобы он загружался при каждом запуске системы, происходит автоматически в процессе инсталляции операционной системы на компьютере. Однако наличие в системе модуля не означает, что wi-fi карточка будет сразу работать. Для работы многих карточек нужно еще где-то взять специальное фирменное программное обеспечение (прошивку) и указазать модулю путь к каталогу, в котором она будет находится.
- Таким образом, настройка wi-fi карточки распадается на 2 этапа:
- проверка наличия в операционной системе модуля ядра для работы с карточкой;
- установка прошивки для карточки.
Чтобы узнать производителя и тип карточки, можно дать команду, которая выведет строчку с указанием на PCI-устройство, связанное с беспроводной (wireless) сетью:
Для карточки Intel 2200 BG получаем вывод строки:
Если вывода нет, надо дать команду и среди разных сетевых контроллеров найти тот, который стоит на wi-fi карточке.
Для D-Link-овской карточки получаем подобный вышеприведенному вывод — однако с указанием производителя не карточки, а чипа (RaLink RT2561/RT61). Это важно, поскольку модуль и прошивка подбираются для чипа. Две разные карточки одного производителя и одной модели могут быть основаны на разных чипах — соответственно, их работоспособность под GNU/Linux и сложность настройки могут отличаться.
Далее надо понять, установлен ли уже модуль при инсталляции операционной системы. Имя модуля обычно содержит номер модели, иногда — сокращение имени производителя. Команда имеет такой вид (под рутом): Если перебор всех возможных вариантов названия, как и просмотр вывода всех подгруженных модулей командой не дал результата — значит, при инсталляции системы карточка не распозналась и надо либо установить дистрибутив с более новым ядром, где, возможно, карточка уже поддрживается, либо попытаться найти информацию в интернете о работоспособности чипа данной карточки под GNU/Linux (задав в поисковике фразу наподобие » <модель_чипа>linux»). Ряд чипов под GNU/Linux не поддерживаются.
Обе рассмотренные в данной статье карточки были обнаружены дистрибутивом Debian Lenny и соответствующие модули ядра были настроены для автоматической загрузки во время старта системы. Убедимся в этом.
Для Intel 2200 BG дадим команду поиска модуля и получим вывод:
Для RaLink RT2561/RT61 я пытался искать сначала модуль rt2561, но этот вариант не дал результата; потом я попробовал параметр «rt61» и обнаружил, что есть модуль rt61pci (который, в свою очередь, используется модулями rt2x00pci, rt2x00lib и eeprom_93cx6):
2.2. Установка фирменного программного обеспечения (прошивки)
Даже при наличии модуля ядра карточка, как правило, не будет работать без firmware — фирменного программного обеспечения (прошивки), т.е. двоичной программы, которая подгружается для обеспечения функциональности чипа.
Например, можно убедиться, что карточку D-Link DWA-510 на чипе RaLink RT2561/RT61 rev B 802.11g система видит, даже создала для этих целей интерфейсы (и не один, а сразу два — это необычно), wlan0 и wmaster0, но они оба неактивны: К беспроводным относится только интерфейс wlan0, что видно из вывода команды, показывающей беспроводные интерфейсы:
Любые попытки обратиться к интерфейсу wlan0 (после того, как он был прописан в файле /etc/network/interfaces, об этом см. ниже) приводили к сообщению, что он не настроен. Вывод команды dmesg показал ошибку — отсутствие фирменной прошивки для этой карточки.
Где взять прошивку? Ответ на этот вопрос имеет несколько вариантов.
1. Попытаться узнать, нет ли среди пакетов, идущих в составе дистрибутива, пакета, содержащего эту прошивку? Естественно, этот пакет не может находиться в группе свободных пакетов Debian (т.е. ни в репозитории main, ни в contrib), он может быть только в репозитории non-free. Поэтому соответствующую строку в файле /etc/apt/sources.list, которая отвечает за подключение к сетевому репозиторию, надо настроить на не-свободную часть репозитория: вместо вписываем и даем команду, позволяющую обновить список пакетов: Теперь пытаемся искать по фразе, соответствующей названию чипа / модуля для чипа — она должна быть в названии или описании соответствующего пакета; т.е. даем команду
Для Intel 2200 поиск не дал положительных результатов, а вот для чипа RaLink RT2561/RT61 такой пакет нашелся (ищем по фразе «rt61»): Посмотрим теперь, это то, что нам надо, или нет: Из описания следует, что это как раз то, что нам нужно (binary firmware), поэтому инсталлируем данный пакет: После его установки необходимая прошивка была помещена в /lib/firmware. Карточка стала готовой к работе.
2. Попытаться найти прошивку для чипа карточки в интернете и загрузить оттуда. Задаем в поисковике фразу » <модель_чипа>linux firmware» или » <модель_чипа>linux driver» и внимательно смотрим результаты.
Именно так нашлась прошивка для карточки Intel 2200 BG. Поиск в Google по сочетанию «Intel Wireless 2200BG linux driver» уже первым результатом дает ссылку на сайт, где находится прошивка этой карточки для GNU/Linux — http://ipw2200.sourceforge.net/ (см. раздел сайта «Firmware»). Вообще, корпорация Intel известна тем, что для большинства своих устройств разрабатывает и предоставляет драйверы под GNU/Linux. Поэтому при покупке оборудования имеет смысл учитывать это обстоятельство, если есть планы использовать GNU/Linux.
Скачав с сайта прошивку последней версии (на данный момент — 3.0 по адресу http://ipw2200.sourceforge.net/firmware.php?fid=7), получаем файл архива ipw2200-fw-3.0.tgz. В режиме суперпользователя распаковываем его содержимое в директорию /lib/firmware (в некоторых дистирбутивах это может быть директория /usr/share/firmware или /usr/lib/hotplug/firmware/). В результате в этой директории будут находиться файлы:
3. Попытаться использовать бинарный файл, идущий в составе драйвера карточи под MS Windows, поставляемого вместе с устройством. Это делается с помощью программы ndiswrapper. Подробнее см., например, здесь: http://citkit.ru/articles/423/ (раздел «Включаем»).
3. Установка необходимых программ
Теперь необходимо поставить пакеты для работы с беспроводными сетями — как минимум, wireless-tools и (для обеспечения шифрования по алгоритму WPA) wpasupplicant. Для кого-то могут быть полезны и графические утилиты (мне не пригодились): kwifimanager, kwirelessmonitor и (для шифрования по WPA) wpagui. Инсталлируем; для этого под рутом даем команду:
Также, по совету М. Конника, имеет смысл поставить пакеты для работы с ACPI (системой энергосбережения): В результате будет запущен демон acpid и в /etc/acpi добавится ряд необходимых скриптов.
4. Возможные проблемы с выключателем wi-fi карточки в ноутбуке
После перезагрузки попытка проверить работоспособность (об этом см. ниже) ноутбучной wi-fi карточки Intel 2200 показыват, что она по-прежнему неработоспособна.
Смотрим вывод сообщений системы при загрузке: Листаем вниз и находим примерно следующие строки:
Модуль загружается (о чем свидетельствует надпись ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.2.2kmprq), однако не работает — по очень простой и банальной причине: в BIOS’е компьютера в разделе «Wireless» («Беспроводная сеть») это устройство. отключено при старте компьютера! Об этом и сообщает надпись «Выключатель wi-fi инициирован» (по английски звучит более зловеще: «Radio Frequency Kill Switch is On» — «Убийца-переключатель радиопередатчика включен»). Чтобы катрочка заработала, надо этот выключатель отключить («Kill switch must be turned off for wireless networking to work»).
Проблема решается просто: перезагружаем компьютер, входим в BIOS (нажимаем Del или другую специальную клавишу до начала загрузки операционной системы), выставляем в BIOS’е wi-fi-карточку как изначально активированную, если это ноутбук — разрешаем ее включать-выключать с помощью нажатия специальной комбинации клавиш — функциональной клавиши и той, где нарисован передатчик (у меня это Fn + F2).
Запускаем систему вновь и имеем: Неприятное сообщение больше не появляется.
Если выключатель-«убийцу» отключить не удалось, можно попробовать более сложные способы — например, использовать для этого специальную программу rfswitch, которая производит принудительное отключение (сайт: http://rfswitch.sourceforge.net/), или перекомпилировать ядро (алгоритм — здесь).
5. Проверка работоспособности wi-fi-карточки
Теперь можно попробовать поймать сигнал от wi-fi-точки доступа. Даем команду чтобы узнать, какое имя получил в системе беспроводной интерфейс, соответствующий нашей карточке. Для ноутбучной карточки Intel 2200 у меня появился новый интерфейс eth1, для карточки в стационарном компьютере (на чипе RaLink RT2561/RT61) появилось аж два интерфейса — wlan0 и wmaster0, но только первый из них является беспроводным (чтобы выяснить это, можно дать команду iwconfig -a , пример см. выше)
Затем для найденного беспроводного интерфейса задаем команду (покажем на примере eth1) для сканирования эфира на предмет обнаружения wi-fi точки доступа:
Здесь видно, что точка доступа 11:22:6B:81:A8:6A, предоставляет доступ в сеть с именем «home_wireless_network» (такое название я дал сети при настройке точки доступа через web-интерфейс) на 3-ем канале. При этом используется шифрование по алгоритму WPA методом TKIP с помощью ключа (PSK — pre-shared key).
Самый простой, удобный и надежный способ настроить беспроводную сеть в Debian GNU/Linux — записать ее параметры в файл /etc/network/interfaces .
Примечание 1 (для любителей графических конфигурялок). Данный файл в Debain GNU/Linux исполняет роль самой удобной из всех возможных конфигурялок: нужно всего лишь записать подряд несколько строчек с адекватными значениями. Если же Вы твердо намерены использовать графическую конфигурялку, то тогда для Вас не составит труда, руководствуясь значениями в соответствующие поля вписать те же значения, которые приведены далее в конфигурационном файле /etc/network/interfaces .
Примечание 2. Беспроводной интерфейс может быть настроен из консоли и другим способом — с помощью iwconfig.
6. Настройка беспроводного интерфейса
со статическим адресом компьютера в беспроводной сети
При развертывании беспроводной сети оптимальным вариантом является назначение компьютерам статических адресов — прежде всего, в целях повышения безопасности.
Ниже приведен пример части конфигурационного файла /etc/network/interfaces (с подробными комментариями), отвечающего за работу wi-fi сети, где адреса компьютеров — статические, заранее назначенные администратором.
Все параметры, которые начинаются с «wireless-«, относятся к настройке беспроводной сети, а с «wpa-» — к настройке шифрования при передачи данных по протоколу WPA (Wi-Fi Protected Access), который сейчас считается более надежным, чем уже устаревший WEP (Wired Equivalent Privacy). Точно такие же настройки должны быть выставлены и в беспроводной точке доступа (маршрутизаторе).
Естественно, на компьютере должны быть прописаны сервера DNS (сервера, которые позволяют по введенному символьному адресу получить цифровой сетевой адрес; например, для lenta.ru это будет 81.19.69.232 и т.д.). Обычно их указывают в файле /etc/resolv.conf следующим образом: Адреса других публичных DNS-серверов можно посмотреть здесь.
Теперь перезагружаемся и, в случае необходимости, активируем интерфейс eth1 комадной из-под рута:
Естественно, если до этого использовался сетевой проводной интерфейс (у меня он имеет обозначение eth0), то его нужно предварительно дезактивировать (из-под рута):
Аналогично отключается, в случае необходимости, и беспроводной интерфейс:
Если же есть желание, чтобы eth1 активировался автоматически при запуске системы (и в ряде других случаев), то надо перед описанием интерфейса (т.е. перед iface eth1 inet static) добавить такую строчку:
7. Настройка беспроводного интерфейса
с динамически распределяемыми адресами компьютеров в беспроводной сети
Этот случай аналогичен предыдущему, за исключением того, что в части конфигурационного файла /etc/network/interfaces, отвечающего за беспроводной интерфейс, вместо строки надо вписать и удалить строку, жестко задающую адрес компьютера:
Примечание. Не забывайте про настройку адресов DNS-серверов (см. выше).
8. Некоторые тонкости настройки WPA
Пользователи GNU/Linux с ядром 2.4 или 2.6 меньше, чем 2.6.14, должны явным образом указать драйвер для WPA (для Debian — все там же, в файле /etc/network/interfaces):
- где — один из следующих:
- wext — наиболее общий драйвер (работает в большинстве случаев);
- atmel — драйвер для ATMEL AT76C5XXx (USB, PCMCIA);
- wired — драйвер для проводной Ethernet сети.
Элемент | Возможные значения (в файле /etc/network/interfaces разрешенные значения перечисляются через пробел) | Описание |
wpa-ssid | устанавливает название (ssid) сети | |
wpa-bssid | Пример:00:1a:2b:3c:4d:5e | идентификатор (bssid) точки доступа, к которой идет подключение |
wpa-psk | Пример:iehRHbfGy89620ksjDHFЗ | WPA-ключ шифрования |
wpa-key-mgmt | NONE, WPA-PSK, WPA-EAP,IEEE8021X | список принимаемых способов шифрования |
wpa-group | CCMP, TKIP, WEP104,WEP40 | список приемлемых групп шифрования для WPA |
wpa-pairwise | CCMP, TKIP, NONE | список попарных методов шифрования для WPA |
wpa-auth-alg | OPEN, SHARED, LEAP | список допустимых алгоритмов аутентификации для IEEE 802.11 |
wpa-proto | WPA, RSN | список принимаемых протоколов |
wpa-identity | Пример:vasya | имя пользователя, получаемое у администратора (EAP-аутентификация) |
wpa-password | Пример:rRt89Nbvc4 | пароль (EAP-аутентификация) |
9. Заключение
Описанный в статье способ настройки wi-fi сети является универсальным для Debian GNU/Linux. Однако у него есть свой недостаток: в случае, если регулярно используются два интерфейса — например, проводной и wi-fi сети — переключение между интерфейсами производится вручную и требует знания пароля суперпользователя. Во многих случаях он может быть неизвестен рядовому пользователю.
В случае частого и активного использования нескольких интерфейсов или регулярного подключения к новым wi-fi-сетям (и первое, и второе справедливо при работе на ноутбуке) рекомендуется освоить альтернативный подход — программу NetworkManager. Узнать о ней больше можно, например, здесь.
В случае использования KDE наблюдать за работой интерфейса(ов) удобно с помощью программы KNemo (после установки настраивается из «Центра управления KDE» —> «Сеть и интернет» —> «Монитор сети»).
Источник