Наши партнеры

UnixForum






Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Тематический каталог -> Аппаратное обеспечение

Беспроводная сеть в Linux

Оригинал: "Linux Wireless Networking"
Автор: Петер Харрисон (Peter Harrison)
Перевод: Н.Ромоданов
Дата перевода: 10.09.2009 г.

Сети с Wireless-Tools для Linux

Пакет Wireless Tools для Linux, установленный по умолчанию, вероятно, наиболее соответствует требования стандарта 802.11a/b.

Использование команды iwconfig для конфигурации пакета wireless-tools

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

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

Наиболее часто используемая команда в пакете Wireless Tools – iwconfig, которую Вы можете использовать для конфигурирования большинства параметров беспроводной сети, в том числе задания SSID и выбора режима работы. Выбор режима работы Managed означает, что в сети имеется беспроводная точка доступа WAP, а Ad-hoc указывает, что ее нет.

Например, если беспроводная сетевая плата имеет имя eth0, а ESSID вашей сети – homenet, то команды будут следующими:

iwconfig eth0 mode Managed
iwconfig eth0 essid homenet

Теперь ваша сетевая плата должна стать полностью функциональной. Вам нужно будет запускать эти команды iwconfig всякий раз, когда Вы используете команду ifup. Однако, возникает проблема – не забывать это делать. В следующем разделе будет показано, как сделать изменения, внесенные командой iwconfig, постоянными.

Сохранение конфигурации wireless-tools

После того, как Вы проверили свою конфигурацию ad-hoc, вам потребуется сохранить сделанные изменения. Способы сохранение изменений слегка варьируются в зависимости от используемого дистрибутива.

Fedora / RedHat

Конфигурация беспроводной сети в Fedora / RedHat потребует внесения нескольких дополнительных строк в конфигурационные файлы вашей сетевой платы.

1. Сконфигурируйте файл /etc/sysconfig/network-scripts/ifcfg-eth0 обычным образом, как если это была обычная сетевая плата Ethernet.

DHCP Version           Fixed IP Version
============          =================
 
DEVICE=eth0           DEVICE=eth0
USERCTL=yes           IPADDR=192.168.1.100
ONBOOT=yes            NETMASK=255.255.255.0
BOOTPROTO=dhcp        ONBOOT=yes
                      BOOTPROTO=static

Прим. пер.: DHCP Version - вариант для динамически распределяемых ip адресов; Fixed IP Version – вариант с фиксированными ip адресами.

2. Для того, чтобы указать, что сетевая плата беспроводная, в конце добавьте приведенные ниже инструкции: укажите используемый ESSID (в нашем случае homenet) и в качестве режима работы выберите Managed (точка доступа WAP присутствует на сети) или Ad-hoc (точки доступа нет). "Managed" является наиболее вероятным вариантом в случае, если в вашей сети имеется беспроводный маршрутизатор или точка доступа.

Если Вы используете беспроводный маршрутизатор и сетевую плату стандарта 802.11g, то можно указать максимальную скорость, равную 54Мбит/сек – максимальной скорости передачи данных, обеспечиваемую этим протоколом. Если нет, то по умолчанию будет использоваться скорость, равная 11 Мбит/сек – максимальная скорость более медленных протоколов. Сетевая плата автоматически использует тип протокола с точкой доступа WAP. Вам нужно просто указать максимальную скорость.

#
# Wireless configuration
#
TYPE=Wireless
MODE=Managed
ESSID=homenet
RATE=54Mb/s

Эти команды нужны только в главном интерфейсном файле. Они не нужны для IP алиасов. При использовании команд ifup и ifdown ваша беспроводная сетевая плата должна функционировать точно также, как и обычная сетевая плата Ethernet.

Debian / Ubuntu

Конфигурация в системах Debian / Ubuntu требует добавления в файл /etc/network/interfaces правильного параметра wireless-essid.

#
# File: /etc/network/interfaces
#

# The primary network interface
auto eth1
iface eth1 inet static
        address 192.168.1.100
        netmask 255.255.255.0
        wireless-essid homenet

auto eth0
iface eth0 inet dhcp
        wireless-essid jamrock

В этом примере интерфейс eth1 использует для идентификатора ESSID значение homenet, тогда как интерфейс eth0 использует для идентификатора ESSID значение jamrock.

Конфигурирование схемы шифрования WEP

В Linux поддерживаются обе схемы шифрования WEP и WPA. Ниже рассказывается, как Вы можете сконфигурировать их на своей системе.

Генерация ключа WEP

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

[root@bigboy tmp]# dd if=/dev/random bs=1 count=5 2>/dev/null | xxd -ps
c276246d65
[root@bigboy tmp]#

По умолчанию WEP для Linux использует 40 битовый ключ, форматированный в шестнадцатеричной нотации, т.е. посредством цифр от 0 до 9 и букв от A до F. Следовательно, в приведенном выше примере требуется задать количество байтов равным 5, и в результате будет сгенерировано в два раза больше (десять) шестнадцатеричных символов. В таблице 13.1 показано число байтов, требуемое для генерации ключей различной длины, и соответствующее число шестнадцатеричных символов, которые должны быть в ключе.

Таблица 13-1 Соотношение числа байтов и длин ключа WEP
Длина ключа (биты) Количество байт Количество шестнадцатеричных символов
40 5 10
64 8 16
104 13 26
128 16 32
152 19 28
232 29 58
256 32 64

Если Вы решили сделать свой собственный ключ, то используйте правильное количество шестнадцатеричных цифр.

Конфигурирование ключа WEP для Fedora / RedHat

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

iwconfig eth0 key 967136deac

Те же самые правила (отсутствие запятых или других нешестнадцатеричных символов среди десяти символов ключа) применяются, когда для шифрования используется файл /etc/sysconfig/network-scripts :

#
# File: ifcfg-eth0
#

DEVICE=eth0
IPADDR=192.168.1.100
NETMASK=255.255.255.0
ONBOOT=yes
BOOTPROTO=static
TYPE=Wireless
MODE=Managed
ESSID=homenet
KEY=967136deac

Замечание: Использование файлов ключей в директории /etc/sysconfig/network-scripts поддерживается только в новых версиях Fedora . Формат файла тот же самый, как и в старых вариантах конфигурационных фалов интерфейса. Помните, в конфигурационном файле интерфейса не поддерживается использование инструкции KEY.

#
# File: /etc/sysconfig/network-scripts/keys-eth0
#
KEY=967136deac

Конфигурирование ключа WEP для Debian / Ubuntu

Конфигурация в системах Debian / Ubuntu требует добавления в файл /etc/network/interfaces правильного параметра wireless-essid.

#
# File: /etc/network/interfaces
#

# The primary network interface
auto eth1
iface eth1 inet static
        address 192.168.1.100
        netmask 255.255.255.0
        wireless-key 967136deac
        wireless-essid homenet

В этом примере указывается, что должны использоваться значение нашего ключа WEP, равное 967136deac, и ESSID, равный homenet, и они будут использоваться сразу, как только будет активирован беспроводный интерфейс eth1.

Шифрование WPA

В Linux шифрование WPA основывается на демоне- суппликанте, который от имени операционной системы запрашивает проверку подлинности доступа, а также выполняет шифрование данных. Он запускается независимо от демона сети и, поэтому, для шифрования WPA сетевые интерфейсы вообще не конфигурируются.

blockqoute>Прим.перев.: Слово "supplicant" переводится как "проситель". Подходящего компьютерного термина для перевода я не нашел, поэтому оставляю название в виде транслитерации английского термина. Домашняя страница проекта WPA Supplicant - http://hostap.epitest.fi/wpa_supplicant/blockqoute>

Установка суппликанта шифрования WPA

Установка проста. Установите пакет RPM wpa_supplicant или пакет DEB wpasupplicant. Если вам нужно вспомнить, как это делается, смотрите Главу 6 "Установка программного обеспечения Linux", где это подробно описано.

Файл wpa_supplicant.conf

Основным конфигурационным файлом суппликанта WPA является файл /etc/wpa_supplicant/wpa_supplicant.conf. Его конфигурирование хорошо задокументировано, с примерами, в страницах man.

[root@bigboy tmp]# man wpa_supplicant.conf

Замечание: В Debian / Ubuntu файл может не создаваться во время установки и вам следует его создать вручную следующим образом:

root@u-server:/tmp# mkdir -p /etc/wpa_supplicant
root@u-server:/tmp# vi /etc/wpa_supplicant/wpa_supplicant.conf 

В этой главе мы сфокусируемся только на простом методе шифрования PSK WPA, другие методы выходят за рамки рассмотрения настоящее книги.

В этом примере мы установим идентификатор SSID равным homenet и будем использовать WPA-PSK шифрование с ключом шифрования "ketchup_and_mustard".

#
# File: wpa_supplicant.conf
#
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=root
network={
        ssid="homenet"
        key_mgmt=WPA-PSK
        psk="ketchup_and_mustard"
}

Если Вы обеспокоены, что люди могут прочитать ваш файл wpa_supplicant.conf, то зашифруйте ключ PSK с помощью команды wpa_passphrase, которая сгенерирует пример конфигурации. Она потребует в качестве аргументов идентификатор SSID и незашифрованный ключ. В этом примере мы видим, что незашифрованную строку psk="ketchup_and_mustard" можно заменить зашифрованным эквивалентом, в котором не используются кавычки.

[root@bigboy tmp]# wpa_passphrase homenet ketchup_and_mustard
network={
        ssid="homenet"
        #psk="ketchup_and_mustard"
        psk=aeaa365d1703f88afc11715cd997b71038ce5798907510bd1b1c6786d33c8c3a
}
[root@bigboy tmp]#

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

Дальнейшие шаги по шифрованию WPA - Fedora / RedHat

Суппликант WPA также использует файл /etc/sysconfig/wpa_supplicant, в котором определяется, какие интерфейсы должны контролироваться и какие для этого драйвера должны использоваться.

В этом примере WPA следует применять к интерфейсу eth0 и по умолчанию использовать драйвер "wext".

#
# File: /etc/sysconfig/wpa_supplicant
#
INTERFACES="-ieth0"
DRIVERS="-Dwext"

Здесь мы видим, что WPA сконфигурирован для wlan0, создаваемого с помощью драйвера ndiswrapper.

#
# File: /etc/sysconfig/wpa_supplicant
#
INTERFACES="-iwlan0"
DRIVERS="-Dndiswrapper"

Дальнейшую подсказку, касающуюся файла wpa_supplicant, можно получить из страниц man.

[root@bigboy tmp]# man wpa_supplicant

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

[root@bigboy tmp]# service wpa_supplicant restart 
[root@bigboy tmp]# chkconfig wpa_supplicant on

Наконец сконфигурируйте свою сетевую плату также, как и для беспроводной сети, но без идентификатора SSID и ключа шифрования, поскольку эта информация будет подаваться через суппликант WPA.

File: /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
IPADDR=192.168.1.100
NETMASK=255.255.255.0
ONBOOT=yes
TYPE=Wireless
MODE=Managed

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

Дальнейшие шаги по шифрованию WPA - Debian / Ubuntu

Суппликант WPA можно вызвать из командной строки. В системах Debian / Ubuntu нужно модифицировать файл /etc/network/interfaces и включить в него параметр pre-up, за которым будет следовать допустимый набор команд суппликанта WPA. В данном примере с помощью опции "-c" дается ссылка на файл /etc/wpa_supplicant/wpa_supplicant.conf, а нужный интерфейс определяется с помощью опции "-i". Затем используется параметр post-down, в котором определяются команды, останавливающие работу демона суппликанта WPA при остановке интерфейса eth1.

#
# File: /etc/network/interfaces
#

# The primary network interface
auto eth1
iface eth1 inet static
        address 192.168.1.100
        netmask 255.255.255.0
        wireless-essid homenet
        pre-up wpa_supplicant -Bw -Dwext -ieth1 -c/etc/wpa_supplicant/wpa_supplicant.conf
        post-down killall -q wpa_supplicant

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

 Назад   <<  Страницы:  1   2   3   4   5   >>   Продолжение