Библиотека сайта rus-linux.net
Беспроводная сеть в 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 | >> | Продолжение |