# FAQ Tips > Hier Suchen und Finden, Links, Tutorials >  WLAN einrichten

## stefan.becker

Das folgende Howto beschreibt die Einrichtung von WLAN unter Linux zur Benutzung eines Internetzugangs. Hierbei wird eine manuelle Methode beschrieben, um auch etwas über die Zusammenhänge zu lernen.

Viele WLAN Hardware sollte auch ohne weiteres Zutun über die Standardtools der Distribution (Yast2, Networkmanager etc.) funktionieren. Daher sollte man gerade als Anfänger zuerst mal die dafür vorgesehenen Tools versuchen.

Die Basistechnologie und verschiedenen WLAN-Standards sind nicht Bestandteil des Howtos, hier sei auf die weiterführenden Links aus Kapitel 5), u. a. *Wikipedia*,  verwiesen.


1) Basis Software

2) USB-WLAN-Stick installieren

3) Ansprechen des WLAN Routers

4) Router einrichten: Verschlüsselung, Firewall, Zeitserver

5) Links, Literatur etc.

6) Hilfe, mein WLAN geht nicht


*Tipp: Man sollte das ganze Schritt für Schritt ausführen. Wichtig war für mich vor allem ein funktionsfähiger Internetzugang während der Installation, weil man immer wieder Tipps benötigt.*


13.02.05: Howto begonnen
20.02.04: Wikipedia Link (5), Firewall (4)
06.03.05: Zeitserver (4)
12.03.05: Installation Berlios Treiber (2)
07.08.05: Links aktualisiert
08.12.05: Treiber für Kernel 2.4.14.x übersetzen
30.04.06: Links aktualisiert
13.01.07: Links aktualisiert
06.04.09: Links und Inhalt aktualisiert

----------


## stefan.becker

Bevor man mit der Installation des USB Sticks bzw. mit dem Ansprechen des Routers beginnt, benötigt man Basissoftware.

*Wireless Tools*

Ohne die Wireless Tools geht gar nichts rund um WLAN. Hier gibt es diese Tools:

http://www.hpl.hp.com/personal/Jean_...nux/Tools.html

Zum Paket gehört unter anderem der später benutzte Befehl *iwconfig*.

Die Wireless Tools sollten aber auch zu jeder Distribution gehören. Bei Fedora oder Suse kann man das mit "rpm -q wireless-tools" überprüfen. Falls nicht installiert, gibt es die Tools z. B. auch als fertige Pakete unter:

http://rpmfind.net/linux/rpm2html/se...&system=&arch=
http://rpmseek.com/rpm-pl/wireless-t...ols:PN:0:0:0:0

Eventuell muss der Befehl mit vollem Pfad aufgerufen werden, also z. B. "/usr/sbin/iwconfig". Das ist aber abhängig von der verwendeten Distribution bzw. Installationsziel.


*Net-Tools*

Weiterhin werden die Net-Tools benötigt, die ebenso zur Distribution gehören sollten. Kontrolle über "rpm -q net-tools".

Falls fehlend, Download z. B. über:

http://rpmfind.net/linux/rpm2html/se...&system=&arch=
http://rpmseek.com/rpm-pl/net-tools....ols:PN:0:0:0:0

Zu diesem Paket gehört der später verwendete Befehl *ifconfig*.

Eventuell muss der Befehl mit vollem Pfad aufgerufen werden, also z. B. "/usr/sbin/ifconfig". Das ist aber abhängig von der verwendeten Distribution bzw. Installationsziel.

----------


## stefan.becker

Als nächster Schritt muss der Empfänger installiert werden, in meinem Fall ein *Siemens USB-Gigaset 11*-Adapter.


Vorbemerkung: Dieses Kapitel ist speziell für Atmel Treiber, für andere Chipsätze sind u. U. völlig andere Vorgehensweisen notwendig. Siehe dazu die Links und Kompatibilitätslisten aus Kapitel 5).


Eine lauffähige USB-Installation wird im folgenden vorausgesetzt. 


*Installation*

Für aktuelle Distributionen muss für diesen USB-Stick nur das Paket *atmel-firmware* installiert werden.


*Laden des Treibers*

Im Normalfall wird der Treiber nach dem Einstecken automatisch geladen. Ansonsten manuell als root mit:



```
/sbin/modprobe -k at76_usb
```

Ob das Modul geladen ist, kann man testen mit 



```
/sbin/lsmod | grep at76
```


*Test, ob Treiber geht*

Zunächst sollte man mal "cat /proc/bus/usb/devices" aufrufen. Beim Adapter sollte dort die Zeile 



```
...Driver=at76_usb
```

stehen, dann ist zumindest schon mal das Device mit dem Treiber belegt.

Anschließend "iwconfig" aufzurufen, dabei sollte folgendes angezeigt werden:



```
wlan0     IEEE 802.11b  ESSID:off/any  
          Mode:Managed  Frequency:2.457 GHz  Access Point: Not-Associated   
          Bit Rate:11 Mb/s   Tx-Power=15 dBm   
          Retry limit:8   RTS thr=1536 B   Fragment thr=1536 B   
          Encryption key:off
          Power Management: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
```

Das Device des Adapters ist also *wlan0*.

----------


## stefan.becker

*Standardeinstellungen des Routers suchen*

Für die Durchführung dieses Schrittes benötigt man folgende Angaben zum Router:

- Die ESSID (auch SSID) (Access Point)
- die IP Adresse (192.168.2.1)
- Sendekanal (11)

In Klammern sind die Standardwerte für meinen Siemens Gigaset 505 Cable/DSL. Die Werte sind abhängig vom Router und sollten im Handbuch stehen oder in der Routerkonfiguration (per Webbrowser nachsehen).


*Verbindung zum Router aufbauen*

Durch folgende Befehlsfolge habe ich die Verbindung zwischen USB-Empfänger und Router zum Leben erweckt (Pfade installations- bzw. distributionsabhängig). Alle Befehle in einer Kommandozeile als root eingeben:



```
/sbin/ifconfig etho down
/usr/sbin/iwconfig wlan0 essid "AccessPoint"
/usr/sbin/iwconfig wlan0 channel 11
/usr/sbin/iwconfig wlan0 key s:*SCHLUESSEL*
/usr/sbin/iwconfig wlan0 mode Managed
/usr/sbin/iwconfig wlan0 ap any
/sbin/ifconfig wlan0 inet 192.168.2.3
/sbin/ifconfig wlan0 up
/sbin/route add default gw 192.168.2.1
```

Einige der Befehle im einzelnen:

- ifconfig eth0 down

"Runterfahren" des Netzwerkinterfaces eth0.

- iwconfig wlan0 essid "AccessPoint" 

ESSID laut Routerhandbuch eintragen.

- iwconfig wlan0 channel 11

Sendekanal laut Routerhandbuch eintragen.

- /usr/sbin/iwconfig wlan0 key s:*SCHLUESSEL*

Manche Router haben bereits ab Werk eine Verschlüsselung eingetragen, die man so setzen kann. Manchmal steht der Key auf einem Aufkleber an der Routerunterseite. Ohne den Schlüssel wird die Verbindung nicht korrekt aufgebaut. Hat der Router zunächst keine Verschlüsselung, diesen Befehl weglassen. Mehr dazu siehe Kapitel 4.

- ifconfig wlan0 inet 192.168.2.3

Einstellen des Rechners auf feste IP-Adresse, "192.168.2" abhängig von IP-Adresse des Routers, die "3" für den eigenen Rechner.

- ifconfig wlan0 up

"Hochfahren" des Netzwerkinterfaces wlan0.

- route add default gw 192.168.2.1

Setzt die Standard-Route zum Router. IP-Adresse des Routers hier angeben.

Zur genauen Syntax der Befehle sei hier auf "man iwconfig", "man ifconfig" und "man route" verwiesen.


*Wird der Router "erkannt"?*

Nach Eingabe des Befehls iwconfig sollte in der Ausgabe folgende Zeile erscheinen:



```
...Signal level:100/100 ...
```

Bei "0/100" erkennt der Adapter den Router nicht, "100/100" ist optimal.


*erste Konfiguration des Routers*

Nun sollte man durch Eingabe von "http://192.168.2.1" (bzw. der Router-IP) im Webbrowser das Routermenü angezeigt bekommen.

Vorsicht, Feind hört mit! Ein WLAN-Router hat eine Reichweite außerhalb der eigenen Wohnung, also sollte man tunlichst folgende Schritte unternehmen, bevor es der "Nachbar" für einen ausführt.

Im Router Konfigurationsmenü sollte ein Kennwort vergeben und die ESSID umgestellt werden. Die Schnittstelle muss man im Anschluss neu starten, dabei muss auf die geänderte ESSID umgestellt werden.

Außerdem muss jetzt im Router die DSL Konfiguration abhängig vom Provider eingestellt werden.


*Aufbau der Internetverbindung am eigenen PC*

Am eigenen PC muss noch der DNS-Server eingetragen werden. Dazu habe ich in der Datei "/etc/resolv.conf" folgenden Eintrag vorgenommen:



```
nameserver 192.168.2.1
```

(IP-Adresse des Routers)

Danach sollte die Verbindung ins Internet klappen.


*Weitere Routerkonfiguration*

Abhängig vom Routermodell können weitere Konfigurationen wie Verschlüsselung (Kapitel 4) und Firewall (Kapitel 4 und Routerhandbuch) vorgenommen werden.


*Verbindung zum Router "fest" installieren*

Die obige Befehlsfolge kann man z. B. in die Datei /"etc/rc.d/rc.local" (Fedora) bzw. /etc/rc.d/boot.local" (Suse) eintragen, dann wird die Verbindung zum Router direkt beim Hochfahren des Rechners aufgebaut.


*Einwahl zum Internet Provider konfigurieren*

Diese Einstellung ist router- und providerabhängig. Wer einen Zeittarif hat, sollte eine sofortige Einwahl beim Start des Routers vermeiden.

Bei meinem Siemens Gigaset 505 gibt es folgende Einstellungen:

- "Ständige Verbindung": Verbindung wird beim Hochfahren des Routers aufgebaut, nur bei Flatrate empfehlenswert!

- "Manueller Verbindungsaufbau": Zunächst muss man sich am Router einwählen und kann dann die Verbindung im Routermenü aufbauen.

- "Automatischer Verbindungsaufbau": Sobald eine Verbindung nötig wird, baut sie der Router auf, z. B. nach Starten des Webbrowsers und Eingabe einer URL.

Wer einen Zeittarif hat, sollte auf jeden Fall die Einstellung "manuell" wählen. Alle anderen Einstellungen könnten sonst teuer werden.


*DHCP nutzen*

Im obigen Beispiel wird durch "ifconfig atml0 192.168.2.3" die IP-Adresse fest eingestellt. Wenn der Router DHCP kann (vermutlich jedes Gerät), kann man die IP-Adresse durch 



```
/sbin/dhclient wlan0
```

bzw.



```
/sbin/dhcpcd wlan0
```

automatisch ziehen. Einfach in obiger Befehlsfolge den statischen IP-Befehl hierdurch ersetzen.

Bei aktuellen Distributionen ist eines der beiden Pakete auf jeden Fall dabei.

----------


## stefan.becker

*4.1) Verschlüsselung*

Die Verschlüsselung der Übertragung soll den Missbrauch des Routers durch den "Nachbarn" verhindern. Ohne Verschlüsselung können sich andere Personen ebenfalls einwählen und so auf Kosten anderer im Internet surfen.


*4.1.1) WEP-Verschlüsselung*

Früher wurde in den meisten Fällen wird ein sogenannter WEP-Key verwendet. WEP steht für *W*ired *E*quivalent *P*rivacy. Mit heutigen Methoden ist diese Verschlüsselung relativ zu schnell zu knacken. Wenn der Router und der Stick WPA(2) (s. u.) können, ist dies die erste Wahl.

Der WEP-Key muss zunächst am Router eingestellt werden, dass ist abhängig vom Modell. Beim Siemens Gigaset 505 gibt es dazu einen Menüpunkt "Sicherheits-Setup".

Nach dem Einstellen des Keys geht in der Regel die Verbindung zum Router verloren. Der Key muss dann auch am PC bzw. WLAN Adapter eingestellt werden:



```
iwconfig adapter key 01234-4567-89 [1]
```

 (Hex, siehe unten)


```
iwconfig adapter key s:meier [1]
```

 (Ascii, siehe unten)

Für "adapter" ist das Device einzutragen, im obigen Beispiel also "atml0". [1] ist der Index. Einige Router können bis zu 4 Keys eingestellt haben, durch den Index kann man den Key wählen (1=1. Key). eintragen. Bei Ascii-Keys muss "s:" vorgestellt werden.

Hat man mehrere Keys bereits eingestellt, kann man zwischen diesen wechseln durch ([n]=Key Index):



```
iwconfig adapter key [n]
```

Somit ist der Router abgesichert, niemand kommt mehr auf den Router ohne Angabe des Keys.

Weiteres zur Syntax siehe "man iwconfig".


*Key: ASCII oder Hex*

Bei WEP-Verschlüsselung gibt es 64 Bit und 128 Bit lange Keys. Grundregel: Je höher die Länge, desto schwerer zu knacken.

Der Key kann in Ascii oder Hexadezimal-Form eingegeben werden.

Gültige Zeichen: 

- Hexadezimal Gebrauch 0-9 und A-F
- ASCII Gebrauch 0-9, A-Z, Sonderzeichen

Länge:

- 64 Bit: Hexadezimal: 10 Zeichen, Asciii 5 Zeichen
- 128 Bit: Hexadezimal: 26 Zeichen, Asciii 13 Zeichen


*Den Key vergessen ?*

Falls man den Key vergessen hat, reicht das Anschliessen des WLAN-Routers an die normale Netzwerkkarte. Vorgehensweise:

- ifconfig eth0 up (Ethernet hochfahren)
- ifconfig eth0 192.168.2.3 (IP Adresse einstellen, Nr.-Kreis des Routers)
- Am Router anmelden im Browser, den Key ändern/löschen
- ifconfig eth0 down (Ethernet runterfahren)

Danach sollte die Verbindung erneut aufgebaut werden können.


*4.1.2) WPA(2)-Verschlüsselung*

Aktuellste und sicherste Verschlüsselungsmethode. WPA steht für *W*i-Fi *P*rotected *A*ccess.

Ausführliche Beschreibung: http://de.wikipedia.org/wiki/WPA2

Um WPA nutzen zu können, muss unter Suse ein Paket "wpa_supplicant" installiert werden.

Howto von rainmaker: http://www.pc-forum24.de/linux-howto...suse-10-x.html


*4.2) Firewall*

Die meisten WLAN Router bieten eine integrierte Firewall, die man auch nutzen sollte. Man kann damit verhindern, dass ein Angreifer überhaupt erst ins Netzwerk eindringt.

Die Konfiguration ist abhängig vom Routermodell. Bei meinem Siemens 505 verbirgt sich die Einstellung unter "Erweitertes Setup/Filter/Internet Dienste".

Man kann dort vorkonfigurierte Dienste, aber auch eigene Dienste wählen. Als Standard-/Minimal-Konfiguration sollten folgende Ports freigeschaltet werden:

Für FTP/Webbrowser:

- HTTP: Port 80, Protokoll TCP
- HTTPS: Port 443, Protokoll TCP
- FTP: Port 21, Protokoll TCP

Für E-Mail Abfrage und Versand:

- SMTP: Port 25, Protokoll TCP 
- IMAP: Port 143, Protokoll TCP (nur wenn genutzt)
- POP3: Port 110, Protokoll TCP

Falls verwendet:

- CVS: Port 22, Protokoll TCP
- HBCI: Port 3000, Protokoll TCP


*4.3) Zeitserver*

Beim Einschalten fängt der Rouer an mit dem 1.1.1970. Über die Angabe eines Zeitservers kann man ihm das genaue Datum&Uhrzeit nahebringen. Ich habe in meinem Siemens dazu einfach den folgenden Zeitserver eingetragen:



```
ptbtime1.ptb.de
```

Dadurch holt sich der Router beim Einschalten automatisch per Internet die aktuelle Zeit.

----------


## stefan.becker

*WLAN Basistechnologie*

http://de.wikipedia.org/wiki/WLAN
http://de.wikipedia.org/wiki/Kategorie:WLAN


*WLAN allgemein*

http://www.linux-user.de/ausgabe/2004/12/022-wlan/
http://www.linux-community.de/Intern...-von-Grund-auf
http://www.linux-wlan.org/


*Howtos zu Adaptern / Treibern etc.*

Kompatibiltätslisten:

Allgemein: http://www.linux-wlan.org/docs/wlan_adapters.html.gz
Atmel Treiber: http://atmelwlandriver.sourceforge.net/usbtable.html

Treiberinstallation allgemein: 

http://www.linux-user.de/ausgabe/200...treibersafari/
http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/

Spezielle Howtos:

Atheros Chipsatz: http://www.linuxforen.de/forums/show....php?t=165750&
Vigor 510 Adapter: http://www.linuxforen.de/forums/show....php?t=159047&
Prism 54 Chipsatz: http://www.linuxforen.de/forums/show....php?t=112055&
Ralink RT2571W: http://www.linuxforen.de/forums/showthread.php?t=225836


*WLAN mit Windows Treibern*

Viele Chipsätze von WLAN-Adaptern werden nicht von Linux unterstützt. Hierzu gibt es in vielen Fällen die Möglichkeit, die Windows Treiber des Adapters unter Linux zu verwenden.

Hierzu wird der sogenannte *Ndiswrapper* verwendet:

Howto hier im Forum: http://www.linuxforen.de/forums/showthread.php?t=248100
Homepage: http://sourceforge.net/projects/ndiswrapper/
Howto/Wiki: http://ndiswrapper.sourceforge.net/m....php/Main_Page
SuSE Howto: http://de.opensuse.org/SDB%3ANdiswrapper
KNdisWrapper (KDE-Gui): http://www.kde-apps.org/content/show...content=86885/
GUI in Gambas: http://code.google.com/p/ndisconfig/

Außerdem gibt es mit *Driverloader* eine kommerzielle Variante, die mehr Chipsätze unterstützt: http://www.linuxant.com/driverloader/. Auf der Homepage befindet sich eine Kompatibiliätsliste.


*Native Atmel Linux Treiber*

Nur zum Patchen alter Kernel, in aktuellen Kerneln ist der Treiber enthalten.

Atmel Treiber 1: http://atmelwlandriver.sourceforge.net/
Atmel Treiber 2: http://at76c503a.berlios.de/

Es gibt für viele weitere Chipsätze von WLAN-Adaptern auch native Linux-Treiber. Links sind dazu in den obigen Howtos zu finden.

----------


## stefan.becker

Sollte der WLAN Stick / die WLAN Karte mit den Standardmitteln der Distribution nicht zum Laufen zu kriegen sein, dann werden Informationen benötigt zur Fehlersuche.

Daher sollte man bei Fragen zu WLAN Problemen als Minimum die folgenden Befehle in einer Konsole mit root Login ausführen und die Ausgaben der Kommandos posten. Die Ausgaben sollten zur besseren Lesbarkeit mit Code Tags umklammert werden (http://www.linuxforen.de/forums/misc.php?do=bbcode).


*Chipsatz*

Wichtig ist immer die Angabe zum Chipsatz. Hier helfen folgende Kommandos:

WLAN USB-Stick:

```
lsusb
```

(Paket "usbutils")

Außerdem die Ausgaben von 

```
cat /proc/bus/usb/devices
```

WLAN PCI-Karte: 

```
lspci
```

(Paket "pciutils")

Bootmeldungen: 

```
dmesg
```

(Paket "util-linux")


*Netzwerkkonfiguration*

Posten der Ausgaben der folgenden Kommandos:


```
ifconfig
iwconfig
route
cat /etc/resolv.conf
```


*CollectNWData*

Das folgende Script hilft bei der Ermittlung der zur Problemlösung notwendigen Daten.

http://www.linux-tips-and-tricks.de/...ectNWData.html

----------

