Подешавање Wi-Fi мреже у Debian-у
Историјско упутство за Debian Lenny и тадашњи хардвер. Називи пакета, репозиторијуми и WPA/TKIP поставке су архивски примери, а не актуелан поступак инсталације. DNS адресе 192.0.2.53 и 192.0.2.54 су примери за документацију: замените их стварним DNS серверима. Један интерфејс подешавајте једним мрежним менаџером, према документацији инсталираног издања Debian-а.
Приручник описује Debian Lenny и тадашњу опрему. Примери спремишта, пакета и WPA/TKIP-а припадају том историјском подешавању.
Више пута сам наилазио на овај приручник, који ми помаже да подесим Wi-Fi у Debian-у, али тек после дуге претраге. Зато сам одлучио да га сачувам на свом блогу: овде ћу га увек наћи. Приручник је написао Дм. Јуревич, веб-уредник сајта КБ МДА.
1. Увод
Бежичне локалне мреже (WLAN, Wireless Local Area Network) постале су широко распрострањене. Овај практични приручник обрађује једноставан случај: подешавање рачунара са Debian GNU/Linux-ом за повезивање на постојећу 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. Маска подмреже је 255.255.255.0. Приступна тачка подешена је на канал 3 и WPA шифровање методом TKIP са унапред дељеним кључем (PSK, pre-shared key).
2. Модул језгра и инсталирање фирмвера за Wi-Fi картицу
Многе дистрибуције препознају бежичну картицу и подешавају њен софтверски модул за аутоматско учитавање при сваком покретању још током инсталирања оперативног система. Међутим, присуство модула не значи да ће картица одмах радити. Многим картицама потребан је и посебан фирмвер, који треба сместити у директоријум у коме га модул може пронаћи.
- Подешавање картице зато има две фазе:
- проверити да ли систем има модул језгра за картицу;
- инсталирати фирмвер за картицу.
2.1. Модул језгра
Да бисте утврдили произвођача и модел, извршите команду која приказује PCI уређај за бежичну мрежу:
$ lspci | grep -i wireless
За Intel 2200 BG излаз је:
02:03.0 Network controller: Intel Corporation PRO/Wireless 2200BG Network Connection
Ако нема излаза, извршите
lspci | grep -i network
и пронађите бежичну картицу међу мрежним контролерима.
Картица D-Link даје сличан излаз, али наводи произвођача чипа RaLink RT2561/RT61, а не саме картице. То је важно јер модул и фирмвер морају одговарати чипу. Две картице истог произвођача и модела могу имати различите чипове, па се подршка у GNU/Linux-у и сложеност подешавања могу разликовати.
Затим проверите да ли је модул већ учитан током инсталације. Назив обично садржи број модела, понекад и скраћени назив произвођача. Извршите као root:
# lsmod | grep -i {модел_чипа}
Ако испробавање могућих назива и преглед свих учитаних модула командом
# lsmod | less
не дају резултат, инсталатер није препознао картицу. Покушајте са дистрибуцијом која има новије језгро са подршком за њу или потражите информације о чипу у GNU/Linux-у, фразом попут „{модел_чипа} linux“. Неки чипови нису подржани.
Debian Lenny је препознао обе описане картице и подесио аутоматско учитавање њихових модула језгра. Проверимо то.
За Intel 2200 BG претрага модула даје:
# lsmod | grep -i 2200[Модул] [Величина] [Број корисника] [Користе га]ipw2200 130760 0ieee80211 30632 1 ipw2200firmware_class 9088 2 ipw2200,pcmcia
За RaLink RT2561/RT61 најпре сам безуспешно тражио rt2561. Претрага „rt61“ пронашла је rt61pci и повезане модуле rt2x00pci, rt2x00lib и eeprom_93cx6:
# lsmod | grep -i rt61[Модул] [Величина] [Број корисника] [Користе га]rt61pci 2212 0rt2x00pci 10208 1 rt61pcirt2x00lib 21280 2 rt61pci,rt2x00pcieeprom_93cx6 2304 1 rt61pci
2.2. Инсталирање фирмвера
Чак и уз присутан модул језгра, картица можда неће радити без фирмвера: бинарног програма који се учитава да би чип функционисао.
На пример, систем види D-Link DWA-510 са чипом RaLink RT2561/RT61 rev B 802.11g и чак ствара два интерфејса, што је необично: wlan0 и wmaster0, али оба су неактивна:
# ifconfig -aeth0 Link encap:Ethernet HWaddr 00:0c:6e:4e:24:04 ...lo Link encap:Local Loopback ...wlan0 Link encap:Ethernet HWaddr 00:1c:f0:d4:34:61 BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)wmaster0 Link encap:UNSPEC HWaddr 00-1C-F0-D4-34-61-65-74-00-00-00-00-00-00-00-00 BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
# iwconfiglo no wireless extensions.eth0 no wireless extensions.wmaster0 no wireless extensions.wlan0 IEEE 802.11g ESSID:"" Mode:Managed Channel:0 Access Point: Not-Associated Tx-Power=0 dBm Retry min limit:7 RTS thr:off Fragment thr=2352 B Encryption key:off Link Quality:0 Signal level:0 Noise level:0 Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0
Покушаји коришћења wlan0 после додавања у /etc/network/interfaces (види испод) давали су поруку да није подешен. Излаз dmesg открио је разлог: недостаје фирмвер за ову картицу.
Где набавити фирмвер? Постоји неколико могућности.
1. Потражите пакет дистрибуције који садржи фирмвер.У овде коришћеној верзији Debian-а пакет овог неслободног фирмвера није ни у main нити у contrib, већ у non-free. Зато измените запис спремишта у датотеци /etc/apt/sources.list да омогућите неслободни део. Замените
deb http://ftp.ru.debian.org/debian/ lenny maindeb-src http://ftp.ru.debian.org/debian/ lenny main
са
deb http://ftp.ru.debian.org/debian/ lenny main contrib non-freedeb-src http://ftp.ru.debian.org/debian/ lenny main contrib non-free
и ажурирајте списак пакета:
# aptitude update
Тражите назив чипа или модула у називима и описима пакета:
# apt-cache search {фраза_за_претрагу}
За Intel 2200 претрага није дала резултат, али је за RaLink RT2561/RT61 пронашла пакет по фрази „rt61“:
# apt-cache search rt61firmware-ralink - Binary firmware for Ralink RT2561, RT2571, RT2661 and RT2671 wireless cards
Проверимо да ли је то потребан пакет:
# aptitude show firmware-ralinkПакет: firmware-ralinkНов: даСтање: није инсталиранВерзија: 0.12Приоритет: необавезанОдељак: non-free/adminОдржавалац: Debian Kernel Team <[email protected]>Распакована величина: 69,6kПредлаже: initramfs-tools, linux-imageОпис: бинарни фирмвер за Ralink RT2561, RT2571, RT2661 и RT2671 wireless cards. This package contains the binary firmware for PCI, CardBus and USB wireless network cards with the Ralink RT2501 [Turbo], RT2600, RT5201 [Turbo], RT5600 or RT5201USB chipset, supported by the rt61, rt61pci, or rt73, rt73usb drivers. Contents: * Ralink RT2561 (RT2501/RT5201 chipset) firmware, version 1.2 * Ralink RT2561S (RT2501 Turbo/RT5201 Turbo chipset) firmware, version 1.2 * Ralink RT2661 (RT2600/RT5600 chipset) firmware, version 1.2 * Ralink RT2571W/RT2671 (RT2501USB/RT5201USB chipset) firmware, version 1.8Сајт: http://www.ralinktech.com/ralink/Home/Support/Linux.html
Опис потврђује да пакет садржи потребан бинарни фирмвер, па га инсталирамо:
# aptitude install firmware-ralink
После инсталације потребан фирмвер појавио се у /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. Као root распакујте њен садржај у /lib/firmware (неке дистрибуције користе /usr/share/firmware или /usr/lib/hotplug/firmware/). Директоријум ће затим садржати:
# ls -l /lib/firmware-rw-r--r-- 1 root root 191142 Mar 7 2006 ipw2200-bss.fw-rw-r--r-- 1 root root 185660 Mar 7 2006 ipw2200-ibss.fw-rw-r--r-- 1 root root 187836 Mar 7 2006 ipw2200-sniffer.fw-rw-r--r-- 1 root root 12007 Mar 7 2006 LICENSE.ipw2200-fw
3. Пробајте бинарну датотеку из драјвера картице за MS Windows који се испоручује уз уређај. За то се користи ndiswrapper. Пример погледајте овде: http://citkit.ru/articles/423/ (одељак „Включаем“).
3. Инсталирање потребних програма
Инсталирајте пакете за бежичне мреже, барем wireless-tools и, за WPA шифровање, wpasupplicant. Могу бити корисни и графички алати, мада мени нису били потребни: kwifimanager, kwirelessmonitor и, за WPA, wpagui. Инсталирајте их као root:
# aptitude install wireless-tools wpasupplicant kwifimanager kwirelessmonitor wpagui
Такође, по савету М. Конника, инсталирајте пакете за ACPI управљање напајањем:
# aptitude install acpi-support acpid laptop-mode-tools
То ће покренути демон acpid и додати потребне скрипте у /etc/acpi.
4. Могући проблеми са Wi-Fi прекидачем на лаптопу
После поновног покретања, провера картице Intel 2200 (види испод) показује да и даље не ради.
Прегледајте поруке при покретању:
# dmesg | less
Померите се надоле до редова налик овим:
[ 8.443703] ieee80211_crypt: registered algorithm 'NULL'[ 8.468166] ieee80211: 802.11 data/management/control stack, git-1.1.13[ 8.468170] ieee80211: Copyright (C) 2004-2005 Intel Corporation[ 8.527267] ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.2.2kmprq[ 8.527271] ipw2200: Copyright(c) 2003-2006 Intel Corporation[ 8.527350] ACPI: PCI Interrupt 0000:02:03.0[A] -> GSI 17 (level, low) -> IRQ 17[ 8.547046] ipw2200: Detected Intel PRO/Wireless 2200BG Network Connection[ 8.934885] ipw2200: Radio Frequency Kill Switch is On:[ 8.971250] Kill switch must be turned off for wireless networking to work....[ 9.272808] ipw2200: Detected geography ZZD (13 802.11bg channels, 0 802.11a channels)
Модул се учитава, на шта указује ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.2.2kmprq, али не ради из једноставног разлога. У BIOS-у, у одељку «Wireless» („Бежична мрежа“), уређај је искључен при покретању! То јавља порука „Radio Frequency Kill Switch is On“. Злокобно назван „kill switch“ блокира радио-предајник; следећа порука објашњава: „Kill switch must be turned off for wireless networking to work“, односно блокаду треба искључити да би мрежа радила.
Поново покрените рачунар, уђите у BIOS тастером Delete или одговарајућим тастером пре учитавања система и омогућите Wi-Fi картицу при покретању. На лаптопу дозволите управљање комбинацијом функцијских тастера; код мене је то Fn + F2, са симболом предајника на F2.
Поново покрените систем:
# dmesg | less...[ 8.443703] ieee80211_crypt: registered algorithm 'NULL'[ 8.468166] ieee80211: 802.11 data/management/control stack, git-1.1.13[ 8.468170] ieee80211: Copyright (C) 2004-2005 Intel Corporation[ 8.527267] ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.2.2kmprq[ 8.527271] ipw2200: Copyright(c) 2003-2006 Intel Corporation[ 8.527350] ACPI: PCI Interrupt 0000:02:03.0[A] -> GSI 17 (level, low) -> IRQ 17[ 8.547046] ipw2200: Detected Intel PRO/Wireless 2200BG Network Connection...[ 9.272808] ipw2200: Detected geography ZZD (13 802.11bg channels, 0 802.11a channels)
Непријатна порука се више не појављује.
Ако не можете искључити блокаду, сложенији начини укључују програм rfswitch, који принудно искључује прекидач (сајт: http://rfswitch.sourceforge.net/), или поновно превођење језгра, описано овде).
5. Провера Wi-Fi картице
Сада покушајте да пронађете приступну тачку. Извршите
# ifconfig -a
да сазнате назив додељен бежичном интерфејсу картице. Intel 2200 у мом лаптопу појавио се као eth1. RaLink RT2561/RT61 у стоном рачунару створио је два интерфејса, wlan0 и wmaster0, али је само први бежични. То можете проверити командом iwconfig -a; погледајте пример изнад)
Затим претражите приступне тачке преко бежичног интерфејса; овде је пример за eth1:
# iwlist eth1 scaneth1 Scan completed : Cell 01 - Address: 11:22:6B:81:A8:6A ESSID:"home_wireless_network" Protocol:IEEE 802.11bg Mode:Master Frequency:2.422 GHz (Channel 3) Encryption key:on Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 6 Mb/s; 9 Mb/s 11 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s 48 Mb/s; 54 Mb/s Quality=100/100 Signal level=-19 dBm IE: WPA Version 1 Group Cipher : TKIP Pairwise Ciphers (1) : TKIP Authentication Suites (1) : PSK Extra: Last beacon: 176ms ago
Излаз показује приступну тачку 11:22:6B:81:A8:6A са мрежом „home_wireless_network“ на каналу 3. Тај назив сам задао преко веб-интерфејса приступне тачке. Мрежа користи WPA са TKIP-ом и унапред дељеним PSK кључем.
Једноставан начин подешавања мреже у овој Debian конфигурацији јесте уписивање параметара у /etc/network/interfaces .
Напомена 1, за оне који више воле графичке алате: ова датотека је и сама згодан начин подешавања. Потребно је само неколико редова са одговарајућим вредностима. Ако ипак користите графичку алатку, у њена поља унесите исте вредности које су испод наведене у датотеци /etc/network/interfaces .
Напомена 2. Други начин подешавања бежичног интерфејса из конзоле јесте помоћу iwconfig.
6. Подешавање бежичног интерфејса
са статичком адресом
У овој мрежи рачунарима додељујемо статичке адресе ради предвидљивог подешавања. Сама статичка адреса не обезбеђује заштиту мреже.
Следећи одељак /etc/network/interfaces подешава бежичну мрежу са адресама које је администратор унапред доделио. Детаљни коментари објашњавају сваки параметар.
#-------------------------------------------------# Интерфејс бежичне локалне мреже: eth1#-------------------------------------------------## Опис интерфејса:# inet: IPv4 мрежа# static: фиксна IP адресаiface eth1 inet static # Обавезна адреса интерфејса # Наш рачунар користи ову адресу # у бежичној мрежи 192.168.7.* address 192.168.7.15 # Обавезна маска подмреже netmask 255.255.255.0 # Адреса мреже network 192.168.7.0 # Адреса за емитовање broadcast 192.168.7.255 # Мрежни пролаз: бежична приступна тачка # Задаје се при подешавању приступне тачке gateway 192.168.7.1 # Назив мреже: home_wireless_network wireless-essid home_wireless_network # managed: повезивање са приступном тачком wireless-mode managed # Канал 3, у складу са приступном тачком wireless-channel 3 # Аутоматски одредити брзину преноса wireless-rate auto #------------------------------------------------- # Подешавања WPA шифровања #------------------------------------------------- # # WPA SSID: назив мреже # У овом примеру home_wireless_network wpa-ssid home_wireless_network # Унапред дељени WPA кључ # Задат при подешавању приступне тачке # Користите лозинку од 8-63 знака или кључ од 64 хексадецималне цифре # Овај пример користи лозинку wpa-psk paw6102bdse889mpaaj9828nhhiizpsye8732j # Управљање кључевима: WPA-PSK wpa-key-mgmt WPA-PSK # Шифре за парове: TKIP и CCMP wpa-pairwise TKIP CCMP # Групна шифра: TKIP wpa-group TKIP # Протокол: WPA wpa-proto WPA
Параметри који почињу са „wireless-“ подешавају бежичну мрежу; они који почињу са „wpa-“ подешавају WPA (Wi-Fi Protected Access). У време описаног подешавања WPA је имао предност над WEP-ом (Wired Equivalent Privacy). Приступна тачка мора имати одговарајућа подешавања.
Такође треба задати DNS сервере, који претварају доменска имена у IP адресе. На пример, у изворном приручнику наведени су lenta.ru и адреса 81.19.69.232. Адресе DNS сервера обично се уписују у /etc/resolv.conf овако:
# Пример /etc/resolv.conf## После nameserver наводи се IP адреса DNS сервера## Можете користити DNS сервере интернет провајдера;# затражите њихове адресе од провајдера.# Или користите јавне сервере# чије време одзива може бити дуже.## Испод су две адресе јавних сервера из изворног примера#nameserver 192.0.2.53nameserver 192.0.2.54
Остале адресе јавних DNS сервера наведене су овде.
Поново покрените систем и по потреби активирајте eth1 као root:
# ifup eth1
Ако сте користили жични интерфејс, код мене је то eth0, искључите га ако потпуно прелазите на Wi-Fi:
# ifdown eth0
За искључивање бежичног интерфејса користите одговарајућу команду:
# ifdown eth1
Да би се eth1 аутоматски активирао при покретању, додајте овај ред испред његовог описа, односно испред iface eth1 inet static:
auto eth1
7. Подешавање бежичног интерфејса
са динамички додељеним адресама
Овај случај је сличан претходном, али у одељку бежичног интерфејса у /etc/network/interfaces замените
iface eth1 inet static
са
iface eth1 inet dhcp
и уклоните фиксну адресу испод, као и статичке параметре netmask, network, broadcast и gateway. DHCP ће обезбедити мрежна подешавања:
address 192.168.7.15
Напомена. Не заборавите да проверите DNS подешавања (види изнад).
8. Додатна WPA подешавања
За GNU/Linux језгро 2.4 или 2.6 старије од 2.6.14 изричито наведите WPA драјвер. У овој Debian конфигурацији додајте га у /etc/network/interfaces):
wpa-driver {драјвер}
- где {драјвер} има једну од следећих вредности:
- wext: општи драјвер, погодан у већини случајева;
- atmel: драјвер за ATMEL AT76C5XXx (USB, PCMCIA);
- wired: драјвер за жични Ethernet.
Уобичајени WPA параметри
У Debian-у се наводе у одговарајућем одељку /etc/network/interfaces);
преузето одавде
У Debian-у се наводе у одговарајућем одељку /etc/network/interfaces);
преузето одавде
| Параметар | Могуће вредности (у /etc/network/interfaces дозвољене вредности раздвајају се размацима) |
Опис |
| wpa-ssid | {текстуална ниска} | задаје назив мреже (SSID) |
| wpa-bssid | Пример:00:1a:2b:3c:4d:5e | идентификатор (BSSID) приступне тачке за повезивање |
| wpa-psk | Пример:iehRHbfGy89620ksjDHF3 | унапред дељени 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. Закључак
Описани начин ради са традиционалним Debian мрежним алатима. Има недостатак када редовно прелазите између два интерфејса, на пример жичне и wi-fi мреже: пребацивање се обавља ручно и захтева root лозинку, коју обичан корисник можда не зна.
Ако често користите више интерфејса или се повезујете на нове Wi-Fi мреже, што је уобичајено на лаптопу, размотрите алтернативни приступ који пружа NetworkManager. Више о њему можете прочитати овде.
