Ero sivun ”WLAN” versioiden välillä
Rivi 272: | Rivi 272: | ||
Ndiswrapperilla on kannattajansa ja vastustajansa. Toisaalta sillä saadaan joillekin wlan-korteille tuki Linuxiin, mutta toisaalta joudutaan ajamaan vierasta suljetun lähdekoodin binääriä, joka ''myrkyttää'' (taint) kernelin. Jos ''myrkytetty'' ydin panikoi tai siihen tulee muuta vikaa, tuskin kukaan on halukas selvittämään asiaa: on lähes mahdotonta selvittää vikaa tilanteessa, jossa osaan kerneliä ei ole lähdekoodia saatavilla. NDISWrapper itsessään on kuitenkin GPL-lisenssin alainen. Pelätään myös, että wrapperin olemassaolo jarruttaa natiiviajurien kehitystä. LKML:n (Linux Kernel Mailing List) keskusteluissa on vakavasti ehdotettu 8 kilotavujen pinojen tuen poistamista ja siirtymistä kokonaan 4K pinon käyttöön. Tämä käytännössä estäisi Ndiswrapperin toimiminnan nykyisessä muodossaan. Ratkaisuna tähän voisi olla se että wrapper ajaisi Windows binääriä erillisessä muistiavaruudessa. | Ndiswrapperilla on kannattajansa ja vastustajansa. Toisaalta sillä saadaan joillekin wlan-korteille tuki Linuxiin, mutta toisaalta joudutaan ajamaan vierasta suljetun lähdekoodin binääriä, joka ''myrkyttää'' (taint) kernelin. Jos ''myrkytetty'' ydin panikoi tai siihen tulee muuta vikaa, tuskin kukaan on halukas selvittämään asiaa: on lähes mahdotonta selvittää vikaa tilanteessa, jossa osaan kerneliä ei ole lähdekoodia saatavilla. NDISWrapper itsessään on kuitenkin GPL-lisenssin alainen. Pelätään myös, että wrapperin olemassaolo jarruttaa natiiviajurien kehitystä. LKML:n (Linux Kernel Mailing List) keskusteluissa on vakavasti ehdotettu 8 kilotavujen pinojen tuen poistamista ja siirtymistä kokonaan 4K pinon käyttöön. Tämä käytännössä estäisi Ndiswrapperin toimiminnan nykyisessä muodossaan. Ratkaisuna tähän voisi olla se että wrapper ajaisi Windows binääriä erillisessä muistiavaruudessa. | ||
'''Huomaa:''' Ndiswrapper toimii parhaiten ytimessä, joka on käännetty käyttämään 8 kilotavun pinoja (ytimen asetus CONFIG_4KSTACKS pois päältä). Windowsissa pinon koko on | '''Huomaa:''' Ndiswrapper toimii parhaiten ytimessä, joka on käännetty | ||
käyttämään 8 kilotavun pinoja (ytimen asetus CONFIG_4KSTACKS pois päältä). | |||
Windowsissa pinon koko on ilmeisesti 12k. | |||
* [http://ndiswrapper.sourceforge.net/phpwiki/ ndiswrapper: wiki] | * [http://ndiswrapper.sourceforge.net/phpwiki/ ndiswrapper: wiki] |
Versio 11. tammikuuta 2006 kello 03.27
Mitä?
Wlan-korttien tuki ei ole Linuxissa yhtä kattavaa kuin Windows-maailmassa. Tämä johtuu pelkästään piirivalmistajien haluttomuudesta julkaista koodia/rajapintoja/tietoa laitteistosta kehittäjille. Piirivalmistajista ehkä Conexant ja Broadcom ovat kaikkein tunnetuimpia tässä kyseenalaisessa puuhassa.
Kaikki Wlan-kortit eivät siis toimi Linuxissa. Muutoksia on tapahtumassa ja Linuxin Wlan-tuki tulee paranemaan huomattavasti lähiaikoina. Yhtenäistä 802.11 Wlan rajapintaa (802.11 stack) ollaan parhaillaan kehittämässä Jeff Garzikin johdolla ajurikehityksen helpottamiseksi. 802.11 stack tuli ensimmäistä kertaa käyttöön 2.6.14 kernelissä.
Toisaalta Linuxin ajurit tarjoavat monia sellaisia ominaisuuksia, mitä Windows-versioissa ei ole.
Miksi?
Langaton verkko sopii loistavasti joka kodin verkoksi, koska verkkokaapelointia ei tarvita. Jos sattuu omistamaan kannettavan, internetin käyttö onnistuu langattomasti lähes joka paikasta asunnossa tai jopa ulkoa, (oman) tukiaseman kautta. Taloyhtiöissä ja kommuuneissa nettiyhteyttä myös voidaan helposti jakaa langattomasti. Yksi tukiasema keskimäärin kantaa esteettömissä olosuhteissa noin 150-200 metriä.
Langaton verkkoyhteys on kätevä myös hotelleissa, joihin yleensä yhteyksiä tarjoaa Sonera Homerun. Tämä on verkko jossa ei ole salausta, mutta tunnistautuminen (eng. authentication) vaaditaan yhteyden käyttämiseen. Päivän yhteysaikakortti maksaa noin 15 € ja kuukauden noin 80 €. Tämä yhteystapa on kätevä jos matkustelee paljon.
Eräs nokkela Wlan-harrastaja kertoi, että jättämällä ping-komennon taustalle, voi yhdellä yhteyskortilla käyttää nettiä rajattomasti. Tämä on vain kuulopuhetta, joku voisi varmistaa asian oikeellisuuden.
Toinen laaja WLAN-verkkototeutus on SparkNet. Se kattaa melkein koko Suomen.
Avoimia Wlan-pisteitä on myös muulla tarjolla, joskus avoimia verkkoja on myös kotikäyttäjillä tahallisesti tai osaamattomuuden takia. Kannattaa huomioida, että toisten verkkoyhteyksien luvaton käyttäminen on rikos.
Langattoman verkon tietoturva (WEP/WPA/WPA2)
Langaton verkkoyhteys tuo myös omat ongelmansa tietoturvallisuuden suhteen, kun tieto kulkee ilman salausta voi siihen päästä käsiksi ilkeämieliset henkilöt.
Siksi tulisi aina käyttää turvallisinta mahdollista salaustekniikkaa mikä on laitteiston puolesta mahdollista. Eli jos wlan laitteet ajurit mukaan lukien osaavat WPA:n tai WPA2:n ei ole mitään järkeä käyttää WEP salausta.
- WEP (Wired Equivalent Privacy)
Nykyisin tuki WEP-salaukselle löytyy kaikista Linux-ajureista ja toimii yleensä hyvin. Osassa ajureita (esim. hostap), voidaan jopa valita käytetäänkö kortin firmwarea vai ajurin mahdollistamaa ohjelmallista salausta. Johtuen RC4-salausalgoritmin virheellisestä toteutustavasta (ei siis suoranaisesti RC4-algoritmista itsestään), WEP-salausta ei pidetä enää turvallisena. WEP-salauksessa myöskään salausavaimen pituuden kasvattaminen (64 bit->128 bit->256 bit) ei oleellisesti paranna salauksen tehoa.
Uudehkoissa tukiasemissa ja WLAN-korteissa on paikkailtu WEP-salauksen heikkouksia estämällä ns. heikkojen avainten luominen (weak keys avoidance). Näin ollen WEP-salauksen murtamiseen tarvitaan enemmän dataa. Salauksen murtamiseen tarvitaan noin 500-1000 GB liikennettä, jonka jälkeen salausavaimen selvittäminen yleensä onnistuu. Tapauksesta ja onnesta riippuen esimerkiksi 64 bittiä pitkä avain voi murtua 5 minuutissa ja 128 bittinen 20 minuutissa.
WEP-salauksen vahvuutta voidaan parantaa myös käyttämällä dynaamista avainta (Dynamic WEP Keying), jolloin 128-bittinen WEP-salausavain vaihdetaan määrävälein (esimerkiksi 5 minuutin välein). Dynaaminen avain edellyttää IEEE802.1X-protokollan ("Port Based Authentication Protocol") käyttöä ja vaatii autentikointipalvelimeksi Radius-palvelimen. Tukiasemassa pitää olla IEEE802.1X-tuki ja WLAN-asiakas (client) tarvitsee IEEE802.1X supplicantin. Supplicant voi olla esim. wpa_supplicant tai Xsupplicant.
- WPA (WiFi Protected Access)
Yleensä WLAN-kortin ajurin lisäksi tarvitaan wpa_supplicant (poikeuksena on Ralink rt2500, jossa supplicant on toistaiseksi ajurissa "sisään rakennettuna" ), jotta WPA/WPA2-salaus saadaan toimimaan. Valitettava tosiasia kuitenkin on, että joidenkin korttien ajurit (esim. prism54) ovat vielä keskeneräisiä wpa_supplicantin tuen suhteen ja toimivuus ei siten ole välttämättä täydellinen.
Yritys- ja kotiverkoissa on syytä käyttää vähintään WPA/WPA2-salausta, mikäli se suinkin on mahdollista. WPA-salauksessa käytetään vaihtuvaa avainta salaukseen (TKIP eli Temporal Key Integrity Protocol), eli jokainen radiotielle lähetettävä paketti salataan eri avaimella. TKIP on "laajennus" 128-bittisestä WEP:stä lisättynä MIC:llä (Message Identity Check). Kummatkin käyttävät RC4-algoritmia salaukseen.
Laajemmissa verkoissa on yleensä käytössä WPA-Enterprise (Radius+IEEE802.1X+TKIP). Tällöin käyttäjien autentikointi tapahtuu erillisellä protokollalla (EAP eli Extensible Authentication Protocol) Radius-palvelimelta.
Pienissä verkoissa ei yleensä ole Radius-palvelinta (tosin Linux maailmassa tälläisenkin saa helposti pystyyn esim. FreeRADIUS:lla), jolloin joudutaan käyttämään WPA-PSK:ta (Preshared Key, "WPA-Personal") eli kaikille verkon laitteille jaetaan yhteinen avain, jota vasten autentikoidaan. Tämä mahdollistaa periaatteessa esimerkiksi sanakirjoihin perustuvat hyökkäykset.
On myös wlan-tuotteita joissa WPA:n kanssa voidaan käyttää AES-salausta TKIP-salauksen sijaan. Tämä johtuu siitä että, joillakin valmistajilla oli AES valmiina jo ennen kuin AES-salauksen mahdollistava WPA2 standardi 802.11i tuli voimaan. WPA:ssa AES voi olla optiona, mutta WPA2:ssa se kuuluu standardiin eli on siten pakollinen kaikkissa 802.11i standardin mukaisissa laitteissa.
- WPA2/RSN (802.11i/RSN Robust Security Network)
WPA2 on seuraavan sukupolven WPA. Myös siitä on Personal- ja Enterprise- (Radius+IEEE802.1X+AES) muodot. Erona WPA:han on mm. että WPA2 käyttää salaukseen vahvempaa AES-salausalgoritmia TKIP/RC4:n sijaan. 802.11i esittelee myös key caching:n ja pre-authentication:n.
WPA/WPA2:ssa salaus on huomattavasti tehokkaampaa kuin perinteisessä WEP:ssä. TKIP-algoritmille on olemassa salasanakirjoihin perustuvia murtomentelmä (eivät kovin tehokkaita mikäli PSK > 20 merkkiä eikä selväkielinen). AES-algoritmille ei tunneta tehokkaita murtomenetelmiä.
- MUUT
Muita suojausmentelmiä ovat muun muassa MAC-suodatus, jossa tukiasemalle kerrotaan etukäteen WLAN-asiakkaiden (client) MAC osoitteet. Vain tunnettujen laitteiden sallitaan liikennöidä tukiaseman kautta. MAC-suodatuksen tuoma lisäsuoja on heikko, koska WLAN-kortin MAC-osoite on helppo vaihtaa ohjelmallisesti.
Tukiasemalle voidaan määrittää, että verkon-nimeä (SSID) ei lähetetä automaattisesti (hide SSID). Tästä saatu hyöty on niin ikään pieni: tukiasema joutuu paljastamaan SSID:n kun uusi WLAN-asiakas liittyy verkkoon, jolloin myös passiivinen kuuntelija saa sen selville.
Lähetystehon pudottaminen voi olla järkevää. Myös WLAN-liikenteen VPN-tunnelointi voi olla perusteltua joissain tapauksissa.
- Hyökkäystyökalut
Airsnort ja Wepcrack ovat yleisimpiä WEP-salauksen murtamiseen käytettyjä työkaluja. Uusien salaustekniikoiden (AES) yleistyessä nämä työkalut ovat jo lähes menettäneet käytännön hyödyllisyytensä.
Toinen mielenkiintoinen hyökkäystapa on esiintyä tukiasemana HostAP-ajurin avulla ja syöttää (inject) omaa dataa verkon asiakkaille.
Minkä kortin ostan ja mistä?
Nykytietämyksen mukaan rt2500-piirisarjaiset Wlan-kortit ovat parhaita. Tilanne voi muuttua uusien piirisarjojen tullessa markkinoille. Lisäksi valmistajilla on ikävä taipumus nostaa tuotteiden katetta vaihtamalla käyttöön muiden valmistajien piirisarjoja – jopa saman tuotteen sisällä. Linux-käyttäjälle tämä näkyy niin, että toimivaksi todettu tuote ei toimikkaan. Hyviä esimerkkejä tälläistä tuotteista ovat 3Comin OfficeConnect versio 2.
Suositeltavat tuotteet:
- A-Link WL54PC RT2500/CardBus
- A-Link WL54H RT2500/RT2561T/PCI
- D-Link DWL-G122 Rt2570/USB
- Edimax EW-7108PCG ????/CardBus
- A-Link:n kotisivu
- Muita RT2500-piirisarjaisia kortteja
Jos saat muita tuettuja kortteja edullisesti käytettynä, niin se voi olla ostamisen arvoista. Ei ole suositeltavaa ostaa muita kuin RT2500 piirisarjaisia laitteita uutena. Kun olet ostamassa kannettavaa, muista tarkistaa myös sen piirisarja.
Varoitus: Näyttää siltä, että ainakin suosittu A-Link WL54H on vaihtanut piirisarjaansa: RT2500-> RT2561T. RT2561T:lle ei kuitenkaan ole OpenSource (GPL) -ajuria (rt2x00 projekti), vaan siihen Ralink tarjoaa tällä hetkellä vain binääriajuria.
Jos haluat säästää rahaa, niin MBnetin hintaseuranta kertoo edullisimat ostospaikat.
Piirisarjojen tunnistaminen
Korttien piirisarjojen tunnistamisen kanssa voi olla joskus ongelmia. Voit käyttää lspci-komentoa tarkistaaksesi, mikä piirisarja kortissa on. Komento toimii PCI- ja CardBus-korttien kanssa (CardBus on PCI-väylän laajennus ja 32-bittinen). lspci-komento löytyy pci-tools-paketista.
[root@ap root]# lspci 00:00.0 Host bridge: Intel Corp. 430HX - 82439HX TXC [Triton II] (rev 03) 00:07.0 ISA bridge: Intel Corp. 82371SB PIIX3 ISA [Natoma/Triton II] (rev 01) 00:07.1 IDE interface: Intel Corp. 82371SB PIIX3 IDE [Natoma/Triton II] 00:09.0 Network controller: Intersil Corporation Prism 2.5 Wavelan chipset (rev 01) 00:0a.0 VGA compatible controller: S3 Inc. 86c764/765 [Trio32/64/64V+] (rev 54) 00:0b.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10) 00:0c.0 PCMCIA bridge: Cirrus Logic CL 6729 (rev 07)
Lihavoidusta kohdasta löytyy Prism2.5-piirisarjainen PCI Wlan-kortti.
Vanhemmista pccard korteista eli PCMCIA-korteista saa tietoa cardctl ident komennolla (PCMCIA on ISA-väylän laajennus ja 16-bittinen). Kuitenkaan cardctl ident ei kerro PCMCIA-kortin piirisarjaa, vaan lähinnä valmistajan ja tuotteen id:n jne. Näillä tiedoilla voi yrittää "googlettaa" mahdollista Linux-ajuria.
[root@ap root]# cardctl ident Socket 0: product info: "Compaq", "WL200_11Mbps_Wireless_PCI_Card", "", "" manfid: 0x0138, 0x0002 function: 6 (network) Socket 1: no product info available
PCMCIA-korttipaikasta '0' löytyy WL200 Wlan-kortti, joka on PCMCIA-kortti istutettuna PCI-kortille yhdessä Cirrus Logic:n pcmcia-to-pci bridge -piirin kanssa. Ko. kortti on Prism2 piirisarjainen, mutta ident komento ei sitä kerro.
Conexant (ent. Intersil) Prism54, ISL3877, ISL3880, ISL3890 & ISL38xx(USB)
Näistä suositeltavin kortti on Zyair G-100. Sen hinta on noin 50 €. Laitteessa toimii WEP-salaus hyvin, mutta WPA-tuen (Prism54 ajurissa) kehitys on vielä vaiheessa ja se valmistunee joskus. Suhtaudu asiaan varauksella.
Prism54 Fullmac-piirisarjaa: Prism GT/Duette/Indigo/Frisbee (ISL3877, ISL3880, ISL3890) ei enää tiettävästi valmisteta, mikä tarkoittaa, että prism54 Linux-ajuria tukevien korttien ostaminen kaupoista voi olla erittäin hankalaa. Uudet Prism54 Softmac-piirisarjat: Prism Xbow/Javelin (ISL38xx) eivät toimi Linux kernelin vakio ajurilla (prism54).
Prism54-kortti tarvitsee ajurin lisäksi Fullmac firmwaren, joka ladataan korttiin sen alustuksen yhteydessä.
Zyair G-100 on perinteisesti toiminut kernelin prism54-ajurilla, mutta Intersilin Prism-liiketoiminnan ostanut Conexant on lopettaunut/lopettamassa ns. FullMac-piirien tuotannon ja siirtynyt SoftMac-piireihin. SoftMac-piireissä on vähemmän muistia ja suurin osa toiminnoista on siirretty ajurin hoidettavaksi. Conexant ei ole kuitenkaan halunnut antaa teknistä tietoa tai koodipohjaa Prism54-kehittäjille, joten Linuxiin ei tähän asti ole olut ajuria Prism 54Mbit/s SoftMac -piirille.
Siksi kannattaakin pitää mielessä, että yhä useampi uusi Prism 54Mbit/s -kortti onkin SoftMac piirisarjainen (Prism Xbow/Javelin) eikä siis toimi olemassa olevalla prism54 kernel ajurilla.
SoftMac-ajuria yritetään kehitää ns. reverse engineering -menetelmällä. Menetelmä on työläs, mutta työn tuloksena on kuitenkin syntynyt uusi ajuri: islsm.
Uutta: Reverse engineering-menetelmällä syntynyt Prism54 SoftMac ajuri islsm, madfifi stack ja tarvittava firmaware on ladattavissa osoitteesta http://prism54.org/newdrivers.html tai http://jbnote.free.fr/prism54usb/ . Ajuri perustuu muokattuun Atheros (MadWifi) ajuriin ja uuteen islsm moduliin.
Ralink Rt2500 & Rt2570(USB)
Ralink rt2500-piirisarjaiset 54Mbit/s nopeuksiset wlan-kortit toimivat rt2x00 OpenSource ajurilla. Tälläinen kortti on esim. A-Link WL54PC CardBus kortti.
Tässä kortissa on myös toimiva WPA-tuki, joka on monelle tärkeä ja kätevä työkalu salauksen käyttöönottamiseen (RaConfig2500). Työkalulla voi myös ottaa käyttöön useita profiileja, jolloin kortti osaa kytkeytyä automaattisesti tukiasemiin WPA-salauksen kanssa.
USB-wlan tikut ovat vähän heikosti tuettuna, ainakin tällä hetkellä. Ralink rt2570-piirisarjaiset ovat tuettuina ainakin uusimmalla RT2x00-ajurilla. Suomesta saa ainakin Dlinkin DWL-G112 tikkua, joka on tuettujen listalla.
Huomaa: ajuri toimii vain 8 kb pinoja käyttämään käännetyssä ytimessä (ytimen asetus CONFIG_4KSTACKS pois päältä). Jos käytät uusinta cvs-versiota, ajuri toimii myös 4kb pinoilla. Haittapuolena on, että et voi käyttää RaConfig2500 ohjelmaa wpa-asetusten tallentamiseen.
- Rt2x00 ajurin kehityssivusto
- Ohjeet asentamiseen
- Lista RT2x00 yhteensopivista laitteista on luettavissa internetissä.
Kortin kanssa kannattaa käyttää CVS-versiota ajurista, se toimii paremmin kuin julkaistu versio. Sen asentaminen on myös helpompaa.
Atheros AR5210, AR5211, AR5212 & AR5213
Atheros piirisarjalaiset toimivat madwifi-ajurilla, joka monipuolisimpia ja toimivimpia wlan-ajureita Linuxille. Haittapuolena on että ajuri on osittain suljettu (HAL), mistä johtuu ettei se voi sellaisenaan koskaan päätyä Linux kerneliin. Kaupassa Atheros-piirit ovat yleisimpiä 802.11a/b/g korteissa, ja varma tuntomerkki on 108mbit nopeuden tuki, jota muut piirisarjat eivät tue (suljettu valmistajakohtainen ratkaisu). D-Link DWL-AG520 (CardBus) ja DWL-AG520 (PCI) ovat tiettvästi hyviä vaihtoehtoja. D-Linkillä on kuitenkin ollut tapana vaihtaa korttien piirisarjoja pitäen tuotteen nimen samana, joten kannattaa olla varuillaan.
Madwifi-ajurilla onnistuu mm:
- Kaikki salaukset (WEP,WPA/WPA2). WPA/WPA2 tuki vaatii wpa_supplicantin
- Kaikki tilat (monitor, managed, ad-hoc ja tukiasemana toimiminen). Tukiasema moodi (Master) vaatii hostapd Authenticator-ohjelman
- WDS, tukiasemien liittäminen toisiinsa langattomasti (silta) verkon laajentamiseksi
- SuperAG, Atheroksen valmistajakohtainen bondong-ratkaisu jolla saa 108mbit nopeuden varaamalla kaksi kanavaa
Uutena ominaisuutena Madwifiin on tullut mahdollisuus muodostaa kaksi virtuaalista tukiasemaa samalla kortilla. Näin voi tehdä esim. yhdellä kortilla avoimen tukiaseman vieraileville kavereille ja naapureille (kaistanleveys kuristettuna ja pääsy vain www-portteihin), sekä WPA-suojatun tukiaseman omaan käyttöön.
Atherokselle on myös tullut täysin vapaa ajuri, mutta se on vielä erittäin keskeneräinen. Uuden ajurin laillisuus on myös avoin, koska reverse-engineering -prosessissa ei ole noudatettu ns. Clean Room periaatetta.
- Atheros AR5210, AR5211, AR5212 & AR5213 ajurin (MadWifi) kehityssivusto
- FAQ/UKK
- Täysin vapaa ajuri Atheros-piirisarjalle
Intel IPW2100 & IPW2200BG
Intel Centrino piirsarjan sisältävistä kannettavista löytyy yleensä ipw2100 (11Mbit/s) sarjan piiri tai sen jälkeläinen ipw2200BG (54Mbit/s). Salaamattomat ja WEP yhteydet todettu toimiviksi. WPA-tuki on mahdollinen wpa_supplicantin avulla.
Intel on laajentamassa ipw2200 ajuritukea niin, että se jatkossa tukisi myös tukiasema eli Master moodia. Projektisivusto on avattu ja lähiaikoina pitäisi ensimmäisten ipw2200-ap ajuriversioiden ilmestyä. Aluksi tarjotaan vain perustukiasematoimintoja.
Realtek rtl8180, rtl8185 & rtl8187
OpenSource wlan ajurit Realtek rtl8180/rtl8185/rtl8187 pohjaisille 11b ja 54g PCI ja CardBus korteille. Tälläinen kortti on esim. D-Link DWL-510 (PCI). Rtl8180 eli 11Mb/s PCI ja CardBus kortit näyttävät olevan parhaiten tuettuna tällä hetkellä.
ADMtek ADM8211A/B/C
OpenSource wlan ajurit Admtek ADM8211A/B/C pohjaisille 11b PCI/mini-PCI/CardBus korteille. Tälläinen kortti on esim. 3Com 3CRSHPW796 tai SMC 2602W V2.
Broadcom 43xx
Broadcomin 43xx (54Mbit/s) piirisarjaa käytetään monessa CardBus ja PCI wlan-kortissa. Tähän asti Ndiswrapper on ollut ainoa tapa saada näiden korttien tuki Linuxiin. Tilanne on kuitenkin muuttumassa ja nyt on myös olemassa "Reverse Engineering" menetelmällä syntynyt OpenSource ajuri ko. piirisarjalle. Valmistajalla (Broadcom) on kyllä toimiva Linux ajuri mutta se jakaa sitä vain binäärinä.
OpenSource ajuri tarjoaa vasta "very alpha" asteella olevan tuen, joka kuitenkin jo nyt mahdollistaa kytkeytymisen tukiasemaan ja datan lähettämisen ja vastaanottamisen. Ajuri toimii tällä hetkellä vain b ja g laitteiden kanssa, ei WPA/WPA2 tukea vielä. Ajuri muodostuu kahdesta modulista: SoftMAC (ieee80211softmac.ko) ja varsinaisesat ajurimodulista (bcm430x.ko). Ajuri on voimakkaassa kehitysvaiheessa ja uusia versiota ilmestyy päivittäin.
Ajurin käyttöönotto lyhyesti: insmod ieee80211softmac.ko insmod bcm430x.ko ifup ethX iwconfig ethX channel KANAVA iwconfig ethX essid VERKON_NIMI
Klassikot (Orinoco & Prism2)
Agere (ent. Lucent)/Avaya/Proxim Hermes I (Orinoco Classic Gold/Silver)
Käytettynä on saatavilla edullisesti myös vanhoja wlan-kortteja. Hyvänä esimerkkinä "Classic" Orinoco-kortit (11Mbit/s) jotka toimivat hyvin, vaikka eivät ihan modernia nykytekniikkaa edustakaan. Osta jos saat kantohintaan.
Orinoco "Classic" Gold korttiin saa myös WPA-tuen käyttämällä Ageren Version 7.18 ajuria (ajuri ei ole GPL:ää ja toimii vain 2.4.x kernelissä) ja wpa_supplicantia.
Näistä korteista on myös olemassa versioita, jotka eivät perustu Hermes I piirisarjaan, mutta joita kuitenkin kutsutaan Orinoco korteiksi. Nämä eivät kuitenkaan ole tuettuna orinoco_cs ajurissa. Tämä ikävä "sanaleikki" alkoi Proximin ostettua Lucentin Orinoco liiketoiminnan. Proxim käyttää Orinoco "Classic" nimitystä tarkoittaessaan näitä "vanhoja aitoja" Hermes I pohjaisia Orinoco kortteja.
Orinoco "Classic" Silver kortista Gold Orinoco "Classic" Silver ja Gold kortit ovat samaa rautaa. Ero on kortin PDA:ssa (Production Data Area), jossa on mm. kerrottu onko ko. kortti Silver vai Gold. Kun kortille ajetaan normaali firmware päivitys, update-ohjelma lukee PDA:sta onko kortti Silver vai Gold ja ottaa käyttöön sen mukaisesti joko 64-bit tai 128-bit WEP salausmahdollisuuden. Alchemy ohjelmalla saa kätevimmin (ilman flash.exe kikkailua) "Silver" PDA:n muutettua "Gold":ksi, jonka jälkeen ladataan normaali Orinoco station firmware. Firmwaren lataamisen jälkeen Silver kortin 128-bit WEP aktivoituu ja se on siten käytännössä Gold.
Intersil Prism2/2.5/3
Prism2/2.5/3 (11Mbit/s) piirisarjaisia Wlan-kortteja on ehkä maailmalla eniten. WPA/WPA2-tuki vaatii, että kortin firmware on 1.7.0 tai uudempi.
Hostap-ajurilla onnistuu mm:
- Kaikki salaukset (WEP, WPA/WPA2). WPA/WPA2 tuki vaatii wpa_supplicantin
- Kaikki tilat (monitor, managed, ad-hoc ja tukiasemana toimiminen). Tukiaseman perustoiminnoissa ei välttämättä vaadita hostapd Authenticator-ohjelmaa
- WDS, tukiasemien liittäminen toisiinsa langattomasti (silta) verkon laajentamiseksi
- Prism2/2.5/3 ajurin (hostap) kehityssivusto
- Prism2/2.5/3 "vaihtoehto" ajurin (prism2) kehityssivusto
- Prism2/2.5/3 firmwaren päivitys HOWTO
- Prism2/2.5/3 firmware kokoelma
Ndiswrapper
Jos kortillesi ei löydy Linux-ajuria aina voit kokeilla ndiswrapper-emulointirajapintaa, joka käyttää Windows-ajureita ja toimii melko hyvin.
Ndiswrapper on ytimen moduuli, joka emuloi Microsoftin NDIS-rajapintaa. Suorituskyky ei ole aivan alkuperäisen veroinen. WPA-tuki on mahdollinen wpa_supplicantin avulla. WPA:n toimivuus voi olla riippuvainen käytettävästä NDIS-ajurista tai jopa sen versiosta. Ndiswrapper vaatii Windowsin ajuritiedostot (*.inf). On suositeltavaa käyttää mahdollisimman tuoreita Windows ajureita.
Ndiswrapperilla on kannattajansa ja vastustajansa. Toisaalta sillä saadaan joillekin wlan-korteille tuki Linuxiin, mutta toisaalta joudutaan ajamaan vierasta suljetun lähdekoodin binääriä, joka myrkyttää (taint) kernelin. Jos myrkytetty ydin panikoi tai siihen tulee muuta vikaa, tuskin kukaan on halukas selvittämään asiaa: on lähes mahdotonta selvittää vikaa tilanteessa, jossa osaan kerneliä ei ole lähdekoodia saatavilla. NDISWrapper itsessään on kuitenkin GPL-lisenssin alainen. Pelätään myös, että wrapperin olemassaolo jarruttaa natiiviajurien kehitystä. LKML:n (Linux Kernel Mailing List) keskusteluissa on vakavasti ehdotettu 8 kilotavujen pinojen tuen poistamista ja siirtymistä kokonaan 4K pinon käyttöön. Tämä käytännössä estäisi Ndiswrapperin toimiminnan nykyisessä muodossaan. Ratkaisuna tähän voisi olla se että wrapper ajaisi Windows binääriä erillisessä muistiavaruudessa.
Huomaa: Ndiswrapper toimii parhaiten ytimessä, joka on käännetty käyttämään 8 kilotavun pinoja (ytimen asetus CONFIG_4KSTACKS pois päältä). Windowsissa pinon koko on ilmeisesti 12k.
Wlan-tuki Linux-ytimessä
Seuraavat ajurit löytyvät 2.6 vanilla-ytimestä (eli kernel.orgista saatavassa kernelistä) suoraan. Myös 2.4 sarja tukee wlankortteja jollain tasolla, mutta on suositeltavampaa käyttää 2.6 sarjaa jo pelkästään sen tuoreuden takia.
- Prism54 (prism54)
- Orinoco "Classic" (orinoco_cs/_pci/_plx/_tmd)
- Cisco aironet (airo/_cs)
- Apple Airport wireless (airport)
- Atmel (atmel_cs/_pci/_plx)
missä:
- _cs = PCMCIA
- _pci = PCI ja CardBus
- _plx = PCMCIA kortti (joko kiinteä tai irrotettava) PCI adapterissa jossa PLX9052 piiri.
- _tmd = PCMCIA kortti (joko kiinteä tai irrotettava) PCI adapterissa jossa TMD7160 piiri.
Kernelin 2.6.14 versiosta alkaen myös:
- Intel IPW2100 (ipw2100)
- Intel IPW2200 (ipw2200)
- Hostap (hostap_cs/_pci/_plx, tässä myös TMD tuki)
- Symbol Spectrum24 Trilogy, Intel PRO/Wireless 2011B (spectrum_cs)
- Nortel emobility PCI adaptor (orinoco_nortel)
Ajurituki siis on vakio ytimissä erittäin rajoitettua. Tämä johtuu siitä, että moni wlan-ajuri on vielä kehitysvaiheessa tai koodi on sen laatuista, ettei sitä voida vielä ottaa ytimeen mukaan. Toinen syy on se, että yleinen rajapinta wlan-ajureille ei ole vielä valmis. Wlan-ajureiden asentaminen voi olla aloittelijoille varsin haastavaa hommaa.
WPA Supplicant (wpa_supplicant)
WPA Supplicant on wlan asiakaspään (client) ohjema joka hoitaa WPA/WPA2 "kättelyt" ja kytkeytymisen wlan tukiaseman eli WPA Authenticatorin kanssa. Myös käytettävän wlan-ajurin on tuettava wpa_supplicanttia. WPA Supplicanttia ajetaan taustaprosessina ja sen kanssa voidaan käyttää myös graafista käyttöliittymää.
- Hyvä wpa_supplicantin konfigurointiohje.
Asetukset
Langattoman adapterin asetukset määritellään yleisesti työkalulla jonka nimi on iwconfig. Tämä ohjelma tulee wireless-tools paketin mukana. Myös wlan-kortin ajurin täytyy tukea wireless rajapintaa (WE=Wireless Extension). Nykyään WE tuki löytyy useimmista ajureita. Moni levitysversio tarjoaa myös graafisia työkaluja asetusten määrittelyyn.
Lisätietoja komennon käytöstä saat komennolla man iwconfig.
Tietoa Linux "Wireless"-rajapinnasta: Wireless Extension (WE) ja Wireless Tools (WT)
Kaikkia Linux wlan ajureita ei ole valmiiksi paketoitu ko. levitysversioon, vaan ne pitää kääntää käsin. Lisäksi joitan ajureita ei koskaan edes sisällytetä kerneliin, niiden epäyhteensopivan lisenssin vuoksi (esim. MadWifi). Joskus ajurit ovat vielä pahasti kehitysvaiheessa ja niiden asentaminen voi vaatia kokemusta järjestelmän ytimen korjaamisesta (eng. patch) ja kääntämisestä.
Linkit
Ajurisivustot 802.11b, 11Mbit/s
- HostAP driver for Intersil Prism2/2.5/3 Chipsets, hostapd and WPA Supplicant
- Linux driver for Intersil Prism2/2.5/3 Chipsets
- Linux driver for Hermes I (ORiNOCO) Chipset
- Linux driver for Intel® PRO/Wireless 2100 Chipsets
- Linux driver for ADM8211 Chipset
- Linux driver for Atmel AT76C5XXx Chipsets
- Linux driver for Hermes I (Version 7.18) Chipsets from Lucent/Agere NON GPL, ONLY FOR 2.4.x KERNELS
- Linux driver for Texas Instruments' ACX100 Chipset
Ajurisivustot 802.11g, 54Mbit/s
- Linux driver for Texas Instruments' ACX111 Chipset
- Linux driver for Hermes II (Version 7.22) Chipsets from Agere NON GPL
- Linux driver for Intel® PRO/Wireless 2200BG Chipsets
- Linux driver for the 802.11g Prism GT/Duette/Indigo/Frisbee Chipsets
- Linux driver for Ralink rt2x00 Chipset
- Linux driver for Atheros 802.11a/b/g Chipsets
- Linux driver for Realtek rtl8180/rtl8185/rtl8187 Chipsets
Jakelukohtaiset: Suse
Artikkelit
Muut
Tukiasemat
Kaupalliset/Linksys WRT54G(S)
Linksysin (kuuluu nykyisin Cisco Systems:iin) WRT54G(S) WLAN-tukiasemat perustuvat Linux käyttöjärjestelmään (2.4.x). Koska Linux on avoin käyttöjärjestelmä, myös Linksysin on ollut pakko julkistaa näiden tukiasemien käyttöjärjestelmän (firmware) lähdekoodi. Tästä lähde- koodista on sittemmin syntynyt monia muita lähinnä alan harrastelijoiden tekemiä muunnelmia. Näistä muunnelmista löytyy mm. ominaisuuksia joita ei Linksysin alkuperäis firmwaresta löydy.
Alla lueteltu muutamia vaihtoehtofirmwareja:
- OpenWRT projektin kotisivu
- DD-WRT projektin kotisivu
- Ewrt projektin kotisivu
- HyperWRT projektin kotisivu
Näistä OpenWRT on kaikkein pelkistetyin, mutta samalla laajin kokonaisuus. Se ei ole myöskään Linksysin lähdekoodin suora jatkokehitelmä, vaan se on kehitetty puhtaalta pöydältä, paketti paketilta. OpenWRT:tä voidaan kutsua jossain määrin myös Linux jakeluksi. Se vaatii muita WRT projekteja enemmän tuntemusta laitteistosta, verkoista ja Linuxista. Muut WRT projektit ovat Linksysin alkuperäis firmwaren kaltaisia, eli lähinnä parannelmia alkuperäsiversiosta.
OpenWRT-jakelun etuna on se, että tukiasemasta saa tehtyä esimerkiksi täysiverisen kaistanrajoittimen tai erittäin hiljaisen palomuurin. Se myös on avointa lähdekoodia ja mahdollistaa jatkokehittämisen helposti. Sillä on myös melko kattava sovellusohjelmatarjonta.
Varoitus: OpenWRT-jakelu on ammattilaisille. Väärin asennettuna OpenWRT ja muutkin vaihtoehto firmwaret voivat tehdä tukiasemasta toimimattoman. Ne eivät kuitekaan varsinaisesti hajota mitään, mutta laitteen palauttaminen alkuperäistilaan voi olla hankalaa ja joissain tapauksessa edellyttää myös tukiaseman avaamista ja kytkentämuutoksia (esim. Flash piiri/JTAG liitin).
Varoitus: Kaupoissa on jo WRT54G tuotteita joissa käyttöjärjestelmänä ei enää olekkaan Linux vaan VxWorks. Ehkä Linksys haluaa näin kitkeä rehottavan firmware bisneksen? V5 versioissa on myös vähemmän flash ja ram muistia. Toistaiseksi mikään vaihtoehtofirmware ei tue v5 laitteita. Nähtäväksi jää pystyykö v5:een ylipäätään Linuxia edes asentamaan.
Kaupalliset/muut
Epäyhteensopivuusongelmia voi olla myös tukiasemien suhteen. Oman kokemukseni mukaan voin suositella mm. Zyxelin, Linksysin, Cisco aironet ja Topcomin tukiasemia. Ongelmien välttämiseksi käytä uusinta ohjelmistoversioita (firmware/bios) myös tukiasemissa. Telewell-pohjaisissa (Conexant-piirisarja) tukiasemissa on ollut paljon ongelmia ja siksi niitä kannattaa välttää ostamasta. Suuria ongelmia on myös ollut D-Link tukiasemien kanssa.
Yleinen ongelma halvoissa tukiasemissa on se, että niiden prosessoriteho on alimitoitettu jolloin jos on käytössä useita WPA-salausta käyttävää korttia, voi laitteen prosessoriteho loppua kesken ja laite kaatua tai toimia aliteholla. Tämä yleinen ongelma vaivaa muitakin edullisia tuotteita.
Jos haluat tukea Linuxin suosiota, suosittelen ostamaan WLAN-tukiaseman, jossa on Linux. Tälläisiä tuotteita ovat mm. Linksys-tukiasemat.
Prism2/2.5/3-piirisarjassa on ns. Host AP -tila, jossa prism-kortti voi toimia tukiasemana, ilman erikoista AccessPoint-firmwarea. Tällöin kortin ajuri (hostap_xxx) hoitaa ei-aikakrittiset tapahtumat ja wlan-kortin firmware aikakriittiset. Periaatteessa tarvitsee vain ladata HostAP ajurija antaa komento iwconfig wlan0 mode Master, joka laittaa kortin AP-tilaan. Tukiasemakoneeksi käy jokin vanha PI tai PII ja wlan-kortiksi esim. 3COM 3CRDW696 WIRELESS PCI CARD. 3COM 3CRDW696:n "Primary" ja "Station" firmware kannattaa ensin päivittää versioihin: PRI=1.1.1 ja STA=1.7.4.
HostAP-tukiasema toimii hyvin myös sellaisten korttien kanssa, joissa on jokin muu kuin Prism2/2.5/3-piirisarja, esim. Intel® PRO/Wireless 2100 tai Orinoco-kortit.
Lisäksi 802.11g-korteille ainakin Atheros- ja Prism54 (Prism GT/Duette/Indigo) -ajureista löytyy Master-tila.
HostAP-ajurin tapaan Prism54-ajuri tukee myös WDS:ää (Wireless distribution system) AP-tilassa, jolla kortti voi liittyä langattoman sillan osaksi ja näin laajentaa verkon katetta (HostAP + WDS) tai toimia siltana wlan-verkon ja lan-verkon välillä.
Linux & WLAN - Usein kysyttyjä kysymyksiä
- K: Olen kokoamassa WLAN-tukiasemaa vanhaa työpöytärautaa hyväksikäyttäen. Käykö mikä tahansa PCI-WLAN kortti tarkoitukseen (esim. em. A-Link WL54H PCI)? Käyttöjärjestelmäksi tulee luonnollisesti Linux.
- V: A-Link WL54H PCI ei käy koska sen ajuriin ei (vielä?) ole implementoitu ns. Master eli Access Point tilaa. 11Mb/s kykenevän tukiaseman saa parhaiten Prism2/2.5/3 piirisarjaisista korteista. Näitä saattaa kuitenkin olla vaikea löytää ja voivat olla harvinaisuutensa vuoksi kalliita. Mutta yksi hyväksi todettu on 3COM 3CRDW696 WIRELESS PCI yhdessä hostap ajurin kanssa. Tähänkin pitää tosin ajaa firmware päivitys. Hostap tuki-asemaan saadaan myös WPA/WPA2 tuki hostapd (WPA/WPA2 authenticator) ohjelman avulla.
- 54Mb/s kykenevän tukiaseman saa ehkä parhaiten Atheros piirisarjaisista korteista MADWIFI ajurin kanssa. Myös Prsm54 piirisarjaisista korteista löytyy Master tila, mutta näitä on nykyään vaikea löytäää ns. "full-mac" versiona. Soft-mac ajuri on myös olemasssa.
- K: Ohjeet wpa_supplicantin käytöstä ja vaatimuksista pitäisi saada jonnekkin??
- V: Wpa_supplicant on ehkä syystä koettu vaikeasti konfiguroitavaksi, koska se on niin monipuolinen. Wpa_supplicant:lla on hyvät kotisivut, jossa selviää ainakin mitkä wlan ajurit tukevat sitä ja millä tasolla (WPA/WPA2). Lisäksi sivuilla oleva wpa_supplicant.conf pitäisi olla itse itseään selittävä (tosin Englannin kielellä). Konfiguraatiossa periaatteessa valitaan vain yksi network={} merkitty konfiguraatio joka vastaa sitä turvallisuustasoa (salausalgoritmit) jota halutaan ja johon tukiasema pystyy.
- K: pccard wlan-kortti ei toimi/jumittuu tai kaataa koneen ?
- V: acpi=off kernel boot-parametri usein auttaa, mutta liian uudessa kannettavassa voi olla toimintaongelmia, kunnes piirisarja-ajurit kehittyvät tai ennenkuin kernel bugit on korjattu. Ongelma on siis, että CardBus tai PCMCIA ei ehkä toimi oikein (yleensä ongelmia muistiavaruuden mappauksen tai keskeytyksen saamisen kanssa). Mutta ongelma ns. elää kernelistä toiseen, esim. 2.6.8 ja 2.6.14 kernelien välillä on tapahtunut paljon CardBus(yenta_socket)/PCMCIA/PCI liittyviä muutoksia jotka vaikuttavat. Eli kernel parametri mikä toimi yhdellä ei enää tarvita/toimi toisella ja tosinpäin. Toiseksi jos puhutaan pccardista, niin kumpaa tarkoitetaan? 16-bittstä PCMCIA:ta vai 32-bittstä CardBus:ia? Jotta ko. kysymykseen pystyisi edes jollain tasolla vastaamaan täytyisi ainakin tietää; vika, miten ilmenee (yleensä dmesg listaus ja lspci -vvv kertovat jotain), mikä kernel versio, onko acpi käytössä, mikä laptop/pc, onko PCMCIA/CardBus/PCI wlan-kortti, mikä wlan piirisarja, mitä ajuria käytetään jne. Kaikkein ensimmäisenä kannattaisi kuitenkin kokeilla tuoreimmalla vanilla-kernelillä joka löytyy kernel.org:sta, jos ongelma poistuu niin hyvä, jos ei niin sitten lisätutkimukset ovat paikallaan.
Osallistu
Voit tukea kehitystyötä, ensisijaisesti osallistumalla itse kehitystyöhön (koodaus, dokumentointi, jne.). Toissijaisesti voit myös lahjoittaa kehittäjille wlan-kortteja, tarvittavaa laitteistoa tai tukemalla kehitystä rahallisesti. Voit myös käyttää aikaasi raportoimalla virheistä tai neuvoa muita ihmisiä.