Basic Guide To Get Wireless Working - WiFi

Due to the complexity of law, sidux will only provide dfsg-free software, please check this link for additional information on non-free sources for firmware

To get wlan WiFi working, you need a wired connection for just a few minutes to download the appropriate firmware.

If a wired connection is not possible you will have to put the firmware on a removable device (pendrive e.g.) and install it as root from there using:

#dpkg -i <firmware.deb>

To find the appropriate firmware without knowing the make or brand of your wireless chip, you can use the command:

#fw-detect

This will give you the following information:

#apt-get update
#apt-get install <name of firmware>
#modprobe -r <modulename>
#modprobe <modulename>

Open the metapackage-installer in kmenu - utilities. There go to the 2nd tab (non-free sources) and hit the install non-free button. That will update your sources list in order to allow non-free apps to be installed.

Go to the first tab Metapackages and open the non_free section. There you will find the most common firmware for wireless WiFi devices for an easy install.

Alternatively you may use the apt-get install line that fw-detect command gave you. After that is done, you need to issue some commands in konsole before configuring the device.

You have to load the module now in order to be able to configure your device.

As root in konsole do:

modprobe -r <modulename>

modprobe <modulename>

As <modulename> uses the info that fw-detect gave you before. A helpful function of Konsole can be used here: bash completion:
If you just write the first few letters of <modulename> and then hit the TAB key, it completes the module name (e.g. modprobe ipw TAB key) That also prevents misspelling.

Both modprobe commands dont give any output if successful, so if the normal prompt returns, the module got loaded fine.

You can check this with:

#lsmod | grep <module>

Now start Ceni from K-Menu - Internet or run it from konsole as root with Getting Online - Ceni. Your wireless WiFi device should be shown now and is ready to be configured.

To set up a Wlan WiFi GUI see WiFi - roaming WPA-GUI

Режимы использования wpasupplicant для Debian

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

Пакет wpasupplicant в Debian предоставляет два (2) режима использования, которые полностью интегрированы в системную сетевую инфраструктуру: ifupdown.

Обеспечение

1. Спецификация "backend"-ов для wpa_supplicant драйвера

* Таблица поддерживаемых драйверов
* Основные рекомендации по использованию драйвера

2. Режим #1: Управляемый (Managed Mode)

* Пример
* Таблица основных опций
* Важные замечания, относящиеся к режиму
* Как это работает

3. Режим #2: Роуминг (Roaming Mode)
Com

* wpa_supplicant.conf
* /etc/network/interfaces
* Контроль роуминга с помощью wpa_action
* Тонкая настройка роуминга
* Файл журнала
ц * Использование внешних mapping скриптов ()
* /etc/network/interfaces с внешним mapping

4. Проблемы

* Скрытый ssids

5. Соображения по безопасности

* Права доступа конфигурационного файла

1.Спецификация "backend"-ов для wpa_supplicant драйвера

Использование wext driver backend возможно для всех интерфейсов, тип которых не определен явно как 'wpa-driver'. Пользователи ядер серии 2.4 kernels, или 2.6 менее 2.6.14 должны указывать тип wpa-driver.

Таблица поддерживаемых драйверов

Driver Description
wext Linux wireless extensions (generic)

Основные рекомендации по конкретным драйверам

Все адаптеры Intel Pro Wireless (ipw2100, ipw2200 and ipw3945) используют как backend 'wext', за исключением случаев когда используемое ядро старше 2.6.14

Madwifi поддерживает как 'wext' так и 'madwifi' backend-ы. 'wext' предпочтительнее, однако 'madwifi' в некоторых ситуациях может работать лучше.

Ndiswrapper БОЛЕЕ НЕ ПОДДЕРЖИВАЕТСЯ 'ndiswrapper' с версии 1.16. Следовательно, должен использоваться 'wext', только если Вы не используете устаревший релиз ndiswrapper.

Установите тип устройства в разделе interfaces(5) соответствующий Вашему случаю с помощью опций 'wpa-driver'. Например:

iface eth0 inet dhcp
	wpa-driver wext
	. . . . . more options

2. Режим #1: Managed Mode

Этот режим предоставляет возможность устанавливать соединение с помощью wpa_supplicant с одной определенной сетью. Это аналогично работе пакета wireless-tools. Каждый элемент устанавливаемого посредством wpa_supplicant соединения предваряется префиксом 'wpa-' и получает значение, используемое для данного элемента.

Пример режима #1 wpa.conf file - Пример 1.
Пример режима #1 wpa.conf file - Пример 1.
NOTE: значение 'wpa-psk' правильно только при соблюдении следующих условий:

   1. Это ascii-строка длиной от 8 до 63 знаков
   2. Это шестнадцатиричная строка из 64 элементов. 

# Подключение к точке доступа ssid 'NETBEER' с типом шифрования 
# WPA-PSK/WPA2-PSK. Подразумевается использование 'wext' backend-а 
#  wpa_supplicant, поскольку нет указанных опций wpa-driver . 
# Пароль записывается строкой ASCII. DHCP используется для 
# получения сетевого адреса.
#
iface wlan0 inet dhcp

        wpa-ssid NETBEER
        # plaintext passphrase
        wpa-psk PlainTextSecret

# Подключение к точке доступа ssid 'homezone' с типом шифрования 
# WPA-PSK/WPA2-PSK, используя 'wext' backend  wpa_supplicant. 
# Строка psk представлена шестнадцатиричной записью. DHCP используется для 
# получения сетевого адреса.
#
iface wlan0 inet dhcp
        wpa-driver wext
        wpa-ssid homezone
        # hexadecimal psk is encoded from a plaintext passphrase
        wpa-psk 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f

# Подключение к точке доступа ssid 'HotSpot1' и bssid of '00:1a:2b:3c:4d:5e' 
# с типом шифрования WPA-PSK/WPA2-PSK, используя backend 'madwifi' 
#wpa_supplicant. Пароль - простым текстом (ASCII). 
# Используется статический сетевой адрес. 
#
iface ath0 inet static

        wpa-driver madwifi
        wpa-ssid HotSpot1
        wpa-bssid 00:1a:2b:3c:4d:5e
        # plaintext passphrase
        wpa-psk madhotspot
        wpa-key-mgmt WPA-PSK
        wpa-pairwise TKIP CCMP
        wpa-group TKIP CCMP
        wpa-proto WPA RSN
        # static ip settings
        address 192.168.0.100
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.0.255
        gateway 192.168.0.1

# Использование пользовательского файла wpa_supplicant.conf для eth1. 
#Вся сетевая информация о пользовательских настройках сохраняется в 
# wpa_supplicant.conf. Тип wpa-driver не указан 
# , поэтому используется 'wext'. Получение сетевого адреса по DHCP. 
#
iface eth1 inet dhcp

wpa-conf /path/to/wpa_supplicant.conf

Таблица основных опций

Обзор основных опций 'wpa-', которые могут быть использованы в разделе для беспроводных устройств файла /etc/network/interfaces. Смотри 'Важные замечания о Managed Mode' раздел о допустимых и неправильных значениях 'wpa-'.

Замечание: все значения чувствительны к регистру

Значение	Пример значения		Описание
=======         =============           ===========
wpa-ssid        plaintextstring         устанавливает ssid вашей сети
wpa-bssid       00:1a:2b:3c:4d:5e       bssid вашего AP
wpa-psk         0123456789......        Ваш открытый wpa ключ. Используйте
                                        wpa_passphrase(8) для генерации psk
                                        из значений пароля и ssid
wpa-key-mgmt    NONE, WPA-PSK, WPA-EAP, лист принятых удостоверяющих ключей
                IEEE8021X               управляемые протоколы
wpa-group       CCMP, TKIP, WEP104,     перечень допустимых типов group шифрования для WPA
                WEP40
wpa-pairwise    CCMP, TKIP, NONE        Перечень допустимых типов pairwise шифрования для
                                        WPA
wpa-auth-alg    OPEN, SHARED, LEAP      перечень разрешенных алгоритмов аутентификации IEEE 802.11
                                        
wpa-proto       WPA, RSN                перечень допустимых протоколов
wpa-identity    myplaintextname         предоставленное пользовательское имя
                                        (EAP аутентификация)
wpa-password    myplaintextpassword     ваш пароль (EAP аутентификация)
wpa-scan-ssid   0 or 1                  включает сканирование ssid с указанными
                                        Probe Request фреймами
wpa-ap-scan     0 or 1 or 2             Устанавливает логику сканирования
                                        wpa_supplicant

Функциональность wpa_cli(8) требует дальнейшей доработки. Все что пропущено на данный момент считается содержащим ошибки.Баг-репорты и патчи всегда приветствуются!

Важные замечания о Managed Mode

Для 'wpa-' опций необходимо указать хотя бы значение ssid. Только некоторые опции имеют глобальный эффект. Это: 'wpa-ap-scan' and 'wpa-preauthenticate'.

Любая 'wpa-' опция для конкретного устройства в файле interfaces(5) file is запуска wpa_supplicant демона.

Скрипт wpasupplicant ifupdown пытается определить правильный тип ввода данных для каждой опции. Так, если вводится строка простым текстом и заключается в кавычки, ввод перенапрвляется wpa_cli, который осуществляет вставку в соответствующий блок network, сформированый через wpa_supplicant ctrl_interface сокет.

Запуск ifup вручную с опцией '--verbose' покажет все используемые команды для создания блока network wpa_cli. Если значение параметра любой wpa-* опции, использованной Вами в файле /etc/network/interfaces, заключено в двойные кавычки. то оно будет воспринято как "plaintext" or "ascii" тип ввода.

Некоторые типы значений подразумевают 16ти ричный ввод (например wpa-wep-key*). Значение 'type' опции wpa-psk, однако, определяется простой проверкой на наличие более чем одного нешестнадцатиричного символа.

Как это работает

Как сказано ранее, каждый определенный элемент wpa_supplicant предваряется префиксом 'wpa-'. Каждый элемент соответствует спецификации описанной в wpa_supplicant.conf(5), wpa_supplicant(8) и wpa_cli(8) man-страничках.

Запуск осуществляется без каких-либо предопределенных значений, и wpa_cli сетевую конфигурацию непосредственно из строк ввода, содержащих 'wpa-*'. Изначально wpa_supplicant/wpa_cli не устанавливает напрямую свойства устройств (как установка essid с iwconfig, например), а указывает устройству на предпочтительную точку доступа для ассоциации с таковой. Когда устройство просканирует диапазон и установит доступность указанной точки, тогда будут установлены и указанные ранее свойства.

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

 /etc/wpa_supplicant/ifupdown.sh
/etc/wpa_supplicant/functions.sh

ifupdown.sh:Он вызывается в фазах 'pre-up', 'pre-down' и 'post-down' ifupdown.

В 'pre-up' фазе, a wpa_supplicant запускается серией команд wpa_cli, которые устанавливают сетевую конфигурацию в соответствии со значениями 'wpa-'опций файла /etc/network/interfaces для физического устройства.

Если wpa-roam используется, wpa_cli запускается в фазе post-up'.

В фазе 'pre-down'убивается уже существующая копия процесса wpa-cli.

В фазе 'post-down' демон wpa_supplicant останавливается.

3. Режим #2: Roaming Mode

Этим пакетом предоставлен упрощенный и изолированный механизм roaming. Он представлен в форме одного из скриптов wpa_cli - /sbin/wpa_action, и будучи активированным предполагает дальнейший контроль с помощью ifupdown. Ман страничка wpa_action(8) содержит подробное описание технических подробностей.

Для активации roaming-интерфейса адаптируйте приведенный ниже фрагмент файла interfaces(5):

iface eth1 inet manual
	wpa-driver wext
        wpa-roam /path/to/wpa_supplicant.conf

В данном примере стартуют два демона: wpa_supplicant и wpa_cli. Что безусловно требует специальной настройки wpa_supplicant.conf. Хорошей отправной точкой можно считать файл конфигурации поставляемый вместе с документацией:

 # copy the template to /etc/wpa_supplicant/
        cp /usr/share/doc/wpasupplicant/examples/wpa-roam.conf \
                /etc/wpa_supplicant/wpa_supplicant.conf
        # allow only root to read and write to file
        chmod 0600 /etc/wpa_supplicant/wpa_supplicant.conf

NOTE: it is critical that the used wpa_supplicant.conf defines the location of
      the 'ctrl_interface' so that a communication socket is created for the 
      wpa_cli (wpa-roam daemon) to attach. The mentioned example configuration,
      /usr/share/doc/wpasupplicant/examples/wpa-roam.conf, has been set to a
      sane default.

Конечно данный файл потребует дополнительного редактирования соответственно Вашей сетевой конфигурации и включения блоков для всех известных сетевых адаптеров. Если все изложенное остается для Вас непонятным, изучите внимательно ман страницу If you do not understand what this means, start reading the If you do not understand what this means, start reading the wpa_supplicant.conf(5).

Для каждой сети возможно указать специальную опцию 'id_str'(простая текстовая строка). Текстовые строки- основа создаваемых профилей сети, так же они коррелируют с логическими интерфейсами, указанными в файле interfaces(5). Отсутствие данной опции подразумевает, что логический интерфейс 'default' будет использован как запасной. Выбрать данный интефейс возможно с помощью опции 'wpa-default-iface'.

Что же все это значит? Продемонстрируем с помощью маленькогог примера из ман странички wpa_action(8).

Пример wpa_supplicant.conf
wpa_supplicant.conf example:
network={
        ssid="foo"
        key_mgmt=NONE
        # this id_str will notify /sbin/wpa_action to 'ifup uni'
        id_str="uni"
}

network={
        ssid="bar"
        psk=123456789...
        # this id_str will notify /sbin/wpa_action to 'ifup home_static'
        id_str="home_static"
}

network={
        ssid=""
        key_mgmt=NONE
        # no 'id_str' parameter is given, /sbin/wpa_action will 'ifup default'
}
Пример /etc/network/interfaces
/etc/network/interfaces example:
# the roaming interface MUST use the manual inet method
# 'allow-hotplug' or 'auto' ensures the daemon starts automatically
allow-hotplug eth1
iface eth1 inet manual

        wpa-driver wext
        wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf

 
# no id_str, 'default' is used as the fallback mapping target
iface default inet dhcp


# id_str="uni"
iface uni inet dhcp

# id_str="home_static"
iface home_static inet static

        address 192.168.0.20
        netmask 255.255.255.0
        network 192.168.0.0

        broadcast 192.168.0.255
        gateway 192.168.0.1

Логический интерфейс поднимается с помощью ifup и останавливается с помощью ifdown также, как wpa_supplicant устанавливает и разрывает привязки к ассоциированным с ним сетями с помощью опции 'id_str', используемой в файле конфигурации wpa_supplicant.conf .

Журнал событий /sbin/wpa_action создается в /var/log/wpa_action.log, пожалуйста присоединяйте его , когда сообщаете о возникших проблемах.

Interacting with wpa_supplicant with wpa_cli and wpa_gui

The wpa_supplicant process can be interacted with by members of the "netdev" group if the example roaming configuration was used as is (or by whatever group or gid specified by the GROUP= crtl_interface parameter).

# the default ctrl_interface option used in the example file
	# /usr/share/doc/wpasupplicant/examples/wpa-roam.conf
        ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev

To interact with the supplicant, the wpa_cli (command line) and wpa_gui (QT)
have been provided. With these you may connect, disconnect, add/delete new
network blocks, provide required interactive security information and so on.

Roaming Daemon и wpa_action

Будучи запущенным roaming daemon, в дальнейшем контролируется с помощью ifupdown. Таким образом: wpa_cli вызывает ifup, когда wpa_supplicant успешно ассоциируется с точкой доступа, и вызывает ifdown, когда соединение потеряно или разорванно. Пока roaming daemon остается активным, вместо ifupdown используйте /sbin/wpa_action для его остановки и перезагрузки. Например, чтобы остановить romaing daemon на устройстве 'eth1':

wpa_action eth1 stop

Для внесения новых дополнительных деталей конфигурации нет необходимости останавливать roaming daemon . Отредактируйте wpa_supplicant.conf для внесения необходимых дополнений и, опционально, /etc/network/interfaces для указания новой сети (с пометкой 'id_str') и просто перезапустите демона:

wpa_action eth1 reload

Полное техническое описание может быть найдено в тексте ман страницы wpa_action(8).

Тонкая настройка Roaming Setup

Вы можете столкнуться с ситуацией , когда несколько точек доступа находятся в непосредственной близости. Вы можете вручную указать одну из них- предпочтительную, используя wpa_cli или wpa_gui, или же вы можете выставить индивидуальные приоритеты для каждой из точек.Данную возможность предоставляет опция 'priority' файла wpa_supplicant.conf.

Файл журнала

События roaming dameon заносятся в файл журнала /var/log/wpa_action.log. Регистрируется следующая информация:

*time and date
*interface name and action event
*values of enviromental variables (WPA_ID, WPA_ID_STR, WPA_CTRL_DIR)
*ifupdown command executed
*wpa_cli status (based on WPA-PSK, network may display different info)
*bssid
*ssid
*id
*id_str
*pairwise_cipher
*group_cipher
*key_mgmt
*wpa_state
*ip_address

Использование внешних Mapping Scripts (такиь как guessnet)

В дополнение к возможности создания ассоциаций с логическими интерфейсами с помощью опции 'id_str', wpa_action допускает использование внешних mapping script-ов. Такой скрипт возвращает имя того логического интерфейса, который будет поднят. Любые mapping script, работающие с ifupdown (см. man interfaces), также будут работать, будучи вызванными из wpa_action.

Для использования добавьте строку 'wpa-mapping-script name-of-the-script' в раздел физического роуминга устройств файла interfaces. (Можно указать абсолютный путь к mapping script.)

Содержимое строки, начинающейся с wpa-map передается на ввод mapping script.(количество строк, по одной для каждого wpa-mapX, неограничено). Например:

iface wlan0 inet manual
        wpa-driver wext
        wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
        wpa-mapping-script guessnet-ifupdown
        wpa-map0 home
        wpa-map1 work
        wpa-map2 school
        # ... additional wpa-mapX lines as required

Пол умолчанию mapping script используется только если не указана опция 'id_str'. Для полного отключения соответствий, задаваемых 'id_str' и использования только внешних mapping script, укажите 'wpa-mapping-script-priority 1' для изменения поведения, заданного по умолчанию.

Если mapping script возвращает пустую строку, wpa_action будет использовать 'default' интерфейс, если только не указана альтернатива опцией 'wpa-roam-default-iface'.

Ниже приведен пример с использованием guessnet-ifupdown как внешнего mapping script.

Пример /etc/network/interfaces с внешних mapping
/etc/network/interfaces with external mapping example:
allow-hotplug wlan0
iface wlan0 inet manual

        wpa-driver wext
        wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
        wpa-roam-default-iface default-wparoam
        wpa-mapping-script guessnet-ifupdown
        wpa-map default: default-guessnet
        wpa-map0 home_static
        wpa-map1 work_static


# school can only be chosen via 'id_str' matching
iface school inet dhcp

        # resolvconf
        dns-nameservers 11.22.33.44 55.66.77.88

iface home_static inet static

        address 192.168.0.20
        netmask 255.255.255.0

        network 192.168.0.0
        broadcast 192.168.0.255
        gateway 192.168.0.1
        test peer address 192.168.0.1 mac 00:01:02:03:04:05


iface work_static inet static

        address 192.168.3.200
        netmask 255.255.255.0
        network 192.168.3.0
        broadcast 192.168.3.255

        gateway 192.168.3.1
        test peer address 192.168.3.1 mac 00:01:02:03:04:05

iface default-guessnet inet dhcp

iface default-wparoam inet dhcp

В примере wpa_action использует guessnet для выбора подходящего логического интерфейса только, если в файле wpa_supplicant.conf. не используется опция 'id_str' для текущего интерфейса

Строка 'wpa-map' представляет guessnet с тестируемым логическим интерфейсом, а также интерфейсом по умолчанию для использования в случае, когда все тесты закончатся неудачно. Строка 'test' каждого логического интерфейса используется guessnet чтобы определить, действительно ли мы подключены к этой сети. например, guessnet выбирает логический интерфейс 'home_static' , если в данной сети присутствует устройство с IP адресом 192.168.0.1, MAC адресом 00:01:02:03:04:05. Ну в случае неудачи всех попыток теста, будет сконфигурированно устройство 'default-guessnet'.

Для большей информации обратитесь к руководству man guessnet (8).

4. Трудности

Для отладки соединения, а также в случае проблем ассоциации или аутентификации, запустите `wpa_cli -i <interface>` в отдельном сеансе shell, до запуска самого интерфейса. Используйте сперва команду 'level 0' для получения всей отладочной информации. Потом `ifup --verbose <interface>` для получения подробного вывода от скрипта, стартующего wpasupplicant.

Скрытые ssids

Для справки ознакомтесь с #358137. С целью иметь возможнеость ассоциировать со скрытыми ssids, попробуйте установить опцию 'ap_scan=1' в секции global, и 'scan_ssid=1' в секции network block файла wpa_supplicant.conf file. при использовании управляемого режима, вставьте следующие строки:

iface eth1 inet dhcp
wpa-conf managed
wpa-ap-scan 1
wpa-scan-ssid 1
# ... additional options for your setup

В соответствии с #368770, ассоциация может потребовать очень много времени приподключении к сетям использующим WEP. В некоторых случаях выставление параметра 'ap_scan=2' в конфигурационном файле (или использование абзаца 'wpa-ap-scan 2' , что эквивалентно) помогает значительно ускорить этот процесс.

5. Замечания по безопасности

Права доступа конфигурационного файла

Является важным обеспечить сохранность PSK и другой подобной информации относительно частной настройки сети, поэтому важные конфигурационные файлы, содержащие такие данные должны быть доступны только для чтения их владельцем. Например:

chmod 0600 /etc/network/interfaces
# substitute the path of your wpa_supplicant.conf file
chmod 0600 /etc/wpa_supplicant/wpa_supplicant.conf

По умолчанию /etc/network/interfaces доступен для чтения всем, и следовательно непроигоден для хранения секретных ключей и паролей.

Page last revised 02/09/2008 1500 UTC