Gentoo Logo

1.  Wstęp

Konfiguracja sieci bezprzewodowej w systemie Linux nie jest rzeczą łatwą. Istnieją dwie drogi dzięki, którym można to osiągnąć: graficzne nakładki lub linia komend.

Najłatwiejszym sposobem jest użycie graficznej nakładki w przypadku gdy posiadamy już zainstalowane środowisko graficzne. Większość z tych aplikacji, jak na przykład wicd czy NetworkManager jest bardzo łatwa w konfiguracji. Wystarczy kilka kliknięć, żeby połączyć się z dowolną siecią bezprzewodową.

Uwaga: wicd oferuje narzędzie uruchamiane z linii komend jako dodatek do głównego graficznego interfejsu. Aby uzyskać dostęp do tej dodatkowej funkcjonalności należy wicd zainstalować z flagą USE ncurses. Aplikacja wicd-curses jest w szczególności przydatna dla osób, które pomimo braku środowiska graficznego bazującego na gtk, potrzebują łatwego i nie wymagającego ręcznej edycji plików narzędzia.

W przypadku gdy nie chcemy używać graficznych aplikacji, konfiguracja sieci bezprzewodowej opiera się na edycji kilku plików. Zajmuje to więcej czasu jednak wymaga mniejszej ilości pakietów, które należy zainstalować. Ponieważ graficzne aplikacje, są łatwe w obsłudze, skupimy się na metodzie konfiguracji z linii komend.

Sieć bezprzewodową możemy skonfigurować instalując wireless-tools bądź wpa_supplicant. Ważną rzeczą, którą należy zapamiętać jest fakt, że konfiguracja sieci odbywa się w sposób globalny, a nie na konkretnych interfejsie.

Najlepszym wyborem jest aplikacja wpa_supplicant. Listę wspieranych sterowników znajdziemy na stronie domowej.

wireless-tools wspiera niemalże wszystkie karty oraz sterowniki, ale nie potrafi połączyć się z access pointami, które korzystają tylko z WPA. Jeśli nasza sieć zabezpieczona jest jedynie przy pomocy WEP, prostota wireless-tools może być czynnikiem decydującym o jego wyborze.

Ostrzeżenie: Sterownik linux-wlan-ng nie jest w chwili obecnej wspierany przez baselayout. Spowodowane to jest tym, że linux-wlan-ng posiada zestaw własnych ustawień i konfigurację która jest zupełnie inna od pozostałych. Developerzy linux-wlan-ng są namawiani do przejścia na ustawienia zgodne z wireless-tools - gdy to zostanie dokonane, baselayout pozwoli na użycie linux-wlan-ng.

1.  WPA Supplicant

WPA Supplicant to pakiet, który pozwala połączyć się do punktów dostępowych z włączonym WPA.

Listing 1.1: Instalacja wpa_supplicant

# emerge net-wireless/wpa_supplicant

Ważne: Należy mieć włączoną opcję CONFIG_PACKET w jądrze, aby wpa_supplicant działało.

Uwaga: W zależności od użytych flag USE wpa_supplicant może zainstalować graficzny interfejs napisany w Qt4, który zintegruje się z KDE. Aby uzyskać dostęp do tego interfejsu należy przed zainstalowaniem wpa_supplicant uruchomić jako administrator polecenie echo "net-wireless/wpa_supplicant qt4" >> /etc/portage/package.use.

Teraz należy skonfigurować /etc/conf.d/net i wskazać, że wpa_supplicant ma być używany w pierwszej kolejności, przed wireless-tools (jeśli obydwa są zainstalowane, w pierwszej kolejności używany jest wireless-tools).

Listing 1.1: Konfiguracja /etc/conf.d/net dla wpa_supplicant

# wpa_supplicant będzie użyty przed wireless-tools
modules=( "wpa_supplicant" )

# Bardzo istotne jest, aby wskazać wpa_supplicant który sterownik
# powinien zostać użyty, gdyż na obecnym etapie rozwoju nie jest jeszcze
# najlepszy w samodzielnym zgadywaniu
wpa_supplicant_eth0="-Dmadwifi"

Uwaga: Jeżeli używany jest sterownik host-ap, należy ustawić tryb zarządzania w karcie, zanim zacznie poprawnie współpracować z wpa_supplicant. Aby to osiągnąć, można użyć iwconfig_eth0="mode managed" w /etc/conf.d/net.

Nie było to trudne, prawda? Nadal jednak trzeba skonfigurować wpa_supplicant samo w sobie, co jest dość trudne w zależności od tego jak bezpieczne są access pointy, z którymi następuje połączenie. Poniższy przykład jest uproszczoną wersją z pliku /usr/share/doc/wpa_supplicant-<version>/wpa_supplicant.conf.gz, który pochodzi z wpa_supplicant.

Listing 1.1: Przykładowy /etc/wpa_supplicant/wpa_supplicant.conf

# Zmiana poniższej linijki może spowodować, że wpa_supplicant nie będzie działać
ctrl_interface=/var/run/wpa_supplicant

# Należy być pewnym, że tylko root ma dostęp do konfiguracji WPA
ctrl_interface_group=0

# Niech wpa_supplicant zajmie sie wyszukiwaniem i ustawianiem AP
ap_scan=1

# Prosty przykład: WPA-PSK, PSK oraz hasło w  ASCII umożliwiają poprawną autoryzację
network={
   ssid="proste"
   psk="bardzo tajne hasło"
   # Im wyższy priorytet, tym wcześniej zostanie dopasowane
   priority=5
}

# Podobne jak poprzednie, ale będzie dokonane skanowanie SSID-ów (dla
# AP, które nie wysyłają swojego SSID-a)
network={
   ssid="drugi ssid"
   scan_ssid=1
   psk="bardzo tajne hasło"
   priority=2
}

# Jedynie WPA-PSK jest używane. Dowolna kombinacja hasła jest akceptowana
network={
   ssid="przykład"
   proto=WPA
   key_mgmt=WPA-PSK
   pairwise=CCMP TKIP
   group=CCMP TKIP WEP104 WEP40
   psk=06b4be19da289f475aa46a33cb793029d4ab3db7a23ee92382eb0106c72ac7bb
   priority=2
}

# Połączenie bez szyfrowania (brak WPA, brak IEEE 802.1X)
network={
   ssid="test-bez-szyfrowania"
   key_mgmt=NONE
}

# Połączenie ze współdzielonym WEP (brak WPA, brak IEEE 802.1X)
network={
   ssid="test-statycznego-wep"
   key_mgmt=NONE
   # Klucze umieszczone w cudzysłowiach są kluczami ASCII
   wep_key0="abcde"
   # Klucze bez cudzysłowiów są kluczami w postaci szesnastkowej
   wep_key1=0102030405
   wep_key2="1234567890123"
   wep_tx_keyidx=0
   priority=5
}

# Połączenie ze współdzielonym WEP z kluczem (brak WPA, brak IEEE
# 802.1X) używając autoryzację ze współdzielonym kluczem IEEE 802.11
network={
   ssid="test2-statycznego-wep"
   key_mgmt=NONE
   wep_key0="abcde"
   wep_key1=0102030405
   wep_key2="1234567890123"
   wep_tx_keyidx=0
   priority=5
   auth_alg=SHARED
}

# Sieć IBSS/ad-hoc z WPA-None/TKIP
network={
   ssid="test adhoc"
   mode=1
   proto=WPA
   key_mgmt=WPA-NONE
   pairwise=NONE
   group=TKIP
   psk="tajne hasło"
}

1.  Narzędzia do sieci bezprzewodowych

Wstępna konfiguracja i tryb zarządzany

Wireless Tools posiadają podstawowe metody na konfigurację podstawowych interfejsów sieci bezprzewodowych aż do ustawień poziomu zabezpieczeń WEP. Mimo, że WEP to dość słaba metoda zabezpieczeń, jest najczęściej stosowana.

Konfiguracje Wireless Tools są kontrolowane przy pomocy kilku głównych zmiennych. Przykładowa konfiguracja poniżej powinna opisać wszystko co jest potrzebne. Jedyne o czym należy pamiętać, to fakt, że dana konfiguracja nie oznacza "połącz się z najlepszym nieszyfrowanym access pointem" - zawsze nastąpi próba połączenia z czymkolwiek.

Listing 1.1: Instalacja wireless-tools

# emerge net-wireless/wireless-tools

Uwaga: Mimo że ustawienia sieci bezprzewodowych można trzymać w /etc/conf.d/wireless, my radzimy przetrzymać je w /etc/conf.d/net.

Ważne: Koniecznie należy zajrzeć do dokumentacji opisującej (nazwy zmiennych).

Listing 1.1: Przykładowe ustawienia iwconfig w /etc/conf.d/net

# W pierwszej kolejności zostanie użyte iwconfig przed wpa_supplicant
modules=( "iwconfig" )

# Konfiguracja dla Access Pointów nazwanych ESSID1 oraz ESSID2
# Można skonfigurować do 4 kluczy WEP, ale tylko jeden może być aktywny
# w danym momencie, tak aby domyślny indeks [1] był ustawiony na klucz [1] i z
# powrotem aby ustawić klucz na [1]. Dokonuje się tego w przypadku gdy
# ESSID został skonfigurowany dla kluczy WEP innych niż 1.
# Poprzedzając klucz przy pomocy s: oznacza że jest to klucz w ASCII, w innym
# przypadku jest to klucz w HEX
# enc open oznacza otwarte bezpieczeństwo (najbezpieczniejsze)
# enc restricted oznacza zastrzeżone bezpieczeństwo (mniej bezpieczne)
key_ESSID1="[1] s:twojklucz key [1] enc open"
key_ESSID2="[1] aaaa-bbbb-cccc-dd key [1] enc restricted"

# Poniższe zadziała tylko gdy będą poszukiwane dostępne Access Pointy

# Niekiedy widocznych jest więcej Access Pointów, więc należy
# zdefiniować który jest preferowany i w jakiej kolejności należy się łączyć
preferred_aps=( "ESSID1" "ESSID2" )

Konfiguracja wyboru punktów dostępu

Można dodać kilka opcji, aby lepiej skonfigurować wybór Access Pointów, jednakże na ogół nie są one wymagane.

Można zdecydować czy łączymy się tylko z preferowanymi Access Pointami czy nie. Domyślnie, jeśli żadne z ustawień nie zadziałają i można połączyć się do nieszyfrowanego Access Pointa, to nastąpi połączenie. Można to kontrolować przy pomocy zmiennej associate_order. Poniżej znajduje się tabela z wartościami oraz jak wpływają na kontrolę.

Wartość Opis
any Domyślne zachowanie
preferredonly Będzie można połączyć się jedynie z AP z listy preferowanych
forcepreferred Będą dokonywane połączenia z AP w preferowanej kolejności jeśli nie zostały one odnalezione w skanowaniu
forcepreferredonly Nie będzie skanowania w poszukiwaniu AP - w zamian nastąpi próba połączenia się z każdym w kolejności
forceany Podobnie jak forcepreferred + połącz się z dowolnym dostępnym AP

Ostatecznie, istnieje możliwość wyboru blacklist_aps oraz unique_ap. blacklist_aps działa podobnie jak preferred_aps. unique_ap to wartość tak lub nie które wskazuje czy drugi interfejs bezprzewodowy może połączyć się do tego samego Access Pointa co pierwszy interfejs.

Listing 1.1: przykład z blacklist_aps oraz unique_ap

# Niekiedy nie powinno nastąpić połączenie do poszczególnych access pointów
blacklist_aps=( "ESSID3" "ESSID4" )

# Jeżeli jest więcej niż jedna karta bezprzewodowa, można określić czy
# powinno nastąpić połączenie każdej karty z tym samym punktem dostępu czy nie
# Wartości to "yes" (tak) lub "no" (nie)
# Domyślnie jest "yes"
unique_ap="yes"

Tryb Ad-Hoc oraz Zarządzany

Jeżeli zachodzi potrzeba ustawienia własnego węzła Ad-Hoc w przypadku braku możliwości połączenia się z jakimkolwiek Access Pointem, to również jest to możliwe.

Listing 1.1: Przenieś się na tryb ad-hoc

adhoc_essid_eth0="Ten Węzeł Adhoc"

A co z połączeniami do sieci Ad-Hoc lub działaniem w trybie zarządcy, aby stać się Access Pointem? Poniżej znajduje się konfiguracja do tego! Może zajść potrzeba, aby ustawić klucze WEP pokazane powyżej.

Listing 1.1: Przykładowa konfiguracja ad-hoc/master

# Ustawienie trybu - może być zarządzany (domyślnie), ad-hoc lub
# zarządcy. Nie wszystkie sterowniki umożliwiaj skorzystanie z tych trybów
mode_eth0="ad-hoc"

# Ustawienie ESSID interfejsu
# W trybie zarządzanym, zmusza to interfejs do połączenia się z wyznaczonym
# ESSIESSID-em niczym innym
essid_eth0="Ten węzeł Adhoc"

# Jeśli nie zostanie wyznaczony żaden inny, zostanie użyty 3.
channel_eth0="9"

Ważne: Poniżej znajduje się dosłowny wycinek z BSD wavelan documentation, który znajduje się w zasobach dokumentacji NetBSD Jest 14 kanałów do wyboru. Kanały od 1 do 11 są legalne w Północnej Ameryce, kanały od 1 do 13 w większości Europy, kanały od 10 do 13 we Francji, a kanał 14 jest przeznaczony dla Japonii. W przypadku wątpliwości, należy odnieść się do dokumentacji znajdującej się przy karcie bezprzewodowej lub access poincie. Należy upewnić się, że wybrany kanał jest ten sam który jest obsługiwany przez access point (lub inna karta znajdująca się w sieci typu ad-hoc). Domyślnym kanałem dla kart w Północnej Ameryce oraz Europie jest kanał 3; domyślny dla kart francuskich jest 11, zaś dla tych sprzedawanych w Japonii to 14.

Rozwiązywanie problemów z Wireless Tools

Jest kilka zmiennych, których można użyć do ustawienia i uruchomienia sieci bezprzewodowej, pomimo napotkanych problemów. Poniżej znajduje się tabela, która przedstawia zmienne do wypróbowania.

Zmienna Domyślna wartość Opis
iwconfig_eth0 Szczegóły dotyczące iwconfig znajdują się w manualu iwconfig
iwpriv_eth0 Szczegóły dotycząca iwpriv znajdują się w manualu iwpriv
sleep_scan_eth0 0 Liczba sekund uśpienia przed rozpoczęciem skanowania. Jest to potrzebne dla tych sterowników, które potrzebują więcej czasu na uruchomienie zanim mogą zostać użyte.
sleep_associate_eth0 5 Liczba sekund oczekiwania na połączenie się interfejsu z Access Pointem przed przeniesieniem się na kolejny
associate_test_eth0 MAC Niektóre sterowniki nie zerują adresów MAC przypisanych gdy zgubią adres lub następuje próba połączenia. Niektóre sterowniki nie zerują poziomu jakości gdy zgubią adres lub następuje próba połączenia. Prawidłowe wartości to MAC, quality lub all.
scan_mode_eth0 Niektóre sterowniki muszą dokonać skanowania w trybie ad-hoc, więc jeśli skanowanie nie działa, należy ustawić tutaj ad-hoc.
iwpriv_scan_pre_eth0 Wysyła polecenia iwpriv do interfejsu przed skanowaniem. Więcej informacji znajduje się w man iwpriv.
iwpriv_scan_post_eth0 Wysyła polecenia iwpriv do interfejsu po skanowaniu. Więcej informacji znajduje się w man iwpriv.

1.  Definiowanie konfiguracji sieci w zależności od ESSID

Niekiedy po połączeniu do ESSID1, zachodzi potrzeba otrzymania statycznego adresu IP, zaś w przypadku ESSID2 - dynamicznego przez DHCP. Większość zmiennych może być ustawianych w zależności od ESSIDa. Poniżej jest opisane jak tego dokonać.

Uwaga: Poniższe działają jeśli używa się WPA Supplicant lub Wireless Tools.

Ważne: Koniecznie należy zajrzeć do dokumentacji opisującej (nazwy zmiennych).

Listing 1.1: nadpisywanie ustawień sieciowych w zależności od ESSIDa

config_ESSID1=( "192.168.0.3/24 brd 192.168.0.255" )
routes_ESSID1=( "default via 192.168.0.1" )

config_ESSID2=( "dhcp" )
fallback_ESSID2=( "192.168.3.4/24" )
fallback_route_ESSID2=( "default via 192.168.3.1" )

# Można skonfigurować serwery nazw i inne rzeczy
# NOTATKA: DHCP to przepisze, chyba że zostanie ustawione inaczej
dns_servers_ESSID1=( "192.168.0.1" "192.168.0.2" )
dns_domain_ESSID1="some.domain"
dns_search_domains_ESSID1="szukaj.tej.domeny szukaj.tamtej.domeny"

# Nadpisuje się adres MAC adresem Access Pointa. Jest to przydatne gdy
# zachodzi potrzeba przemieszczania się między różnymi lokalizacjami, które
# posiadają ten sam ESSID
config_001122334455=( "dhcp" )
dhcpcd_001122334455="-t 10"
dns_servers_001122334455=( "192.168.0.1" "192.168.0.2" )

Zaktualizowano 24 maja 2010

Oryginalna wersja tego dokumentu została po raz ostatni zaktualizowana 13 sierpnia 2011. Jeśli chcesz pomóc w aktualizacji tego dokumentu do najnowszej wersji, skontaktuj się z Łukaszem Damentko, koordynatorem polskiego projektu tłumaczeń dokumentacji Gentoo.

Podsumowanie: To nie jest prosta sprawa, na szczeście zwykle udaje się jednak połączyć.

Donate to support our development efforts.

Copyright 2001-2012 Gentoo Foundation, Inc. Questions, Comments? Contact us.