Benutzer-Werkzeuge

Webseiten-Werkzeuge


wireless_lan_wlan

Wireless LAN (WLAN)

WiFi

WiFi 1  (2,4 GHz)   ->   IEEE 802.11a     ->   A  (6-54 Mbit/s)
WiFi 2  (2,4 GHz)   ->   IEEE 802.11b     ->   A  (5,5-11 Mbit/s)
WiFi 3  (2,4 GHz)   ->   IEEE 802.11g     ->   G  (6-54 Mbit/s)
WiFi 1  (5 GHz)     ->   IEEE 802.11h     ->   H  (6-54 Mbit/s)
                       IEEE 802.11-2007 -> Zusammenfassung der Version von 1999 mit den 8 Erweiterungen (802.11a, b, d, e, g, h, i, j) zu einem einzigen Standard.
WiFi 4  (2,4/5 GHz) ->   IEEE 802.11n     ->   N  (72–600 MBit/s)
                       IEEE 802.11-2012 -> Zusammenfassung der 10 Erweiterungen (802.11k, r, y, n, w, p, z, v, u, s) mit dem Basis-Standard 802.11-2007 zu einem einzigen Standard.
WiFi 5  (5,0 Ghz)   ->   IEEE 802.11ac    ->   AC (433–6933 MBit/s)
WiFi 6  (5,0 Ghz)   ->   IEEE 802.11ax    ->   AX (600–9608 MBit/s)
WiFi ?  (60 GHz)    ->   IEEE 802.11ad    ->   AD (26–9630 MBit/s)
WiFi ?  (900 MHz)   ->   IEEE 802.11ah    ->   AH (16-256 MBit/s)
                       IEEE 802.11-2016 -> Zusammenfassung der 5 Erweiterungen (802.11ae, aa, ad, ac, af) mit dem Basis-Standard 802.11-2012.
                       IEEE 802.11be    ->   BE Der Standard soll ab 2024 nicht nur Kommunikation ermöglichen, sondern auch Wi-Fi Sensing (SENS) unterstützen und Bewegungsdaten messen und auswerten können.
WiFi ?  (5,0 Ghz)   ->   IEEE 802.11p     ->   P (27 MBit/s) -> Erweiterung zu 802.11a für den Einsatz in Fahrzeug-zu-Fahrzeug-Netzen, 2010, auch unter DSRC bekannt

WIFI URI / QR Code

command -v qrencode > /dev/null 2>&1 || sudo apt -yU install qrencode
 
ssid=""
password=""
qrencode -s 12 -o "${ssid,,}.png" "WIFI:T:WPA;R:3;S:${ssid};P:${password};;"

Achtung: SSID und Passwort sind case sensitiv (Groß-/Kleinschreibung ist wichtig)

ab Ubuntu 20.04 LTS

root@ubuntu:~# apt install wpasupplicant
/etc/wpa_supplicant/wpa_supplicant.conf
### WPA 2
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
eapol_version=1
ap_scan=1
fast_reauth=1
 
network={
        ssid="WLAN-1"
        proto=RSN
        group=CCMP
        pairwise=CCMP
        key_mgmt=WPA-PSK
        psk="geheim"
}
/etc/netplan/wlan0.yaml
network:
  version: 2
  renderer: networkd
  wifis:
    wlan0:
      dhcp4: yes
      dhcp6: yes
      access-points:
        "WLAN-1":
          password: "geheim"
root@ubuntu:~# wpa_supplicant -B -c/etc/wpa_supplicant/wpa_supplicant.conf -iwlan0
root@ubuntu:~# netplan generate
root@ubuntu:~# netplan apply
root@ubuntu:~# ip a

vor Ubuntu 20.04

Atheros W-Lan-Karten

Ubuntu:

# aptitude -y install wpasupplicant wireless-tools

Fedora:

Installation

Die Netzwerkkonfiguration sieht bei Wireless LAN so aus:

# vi /etc/sysconfig/wpa_supplicant
# vi /etc/network/interfaces
...
auto wlan0
iface wlan0 inet dhcp
      wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Windowstreiber (NdisWrapper)

Wenn die W-LAN-Karte bzw. der W-LAN-USB-Stick nicht von einem Linux-Kerneltreiber unterstützt wird, dann muss man den Windoofs-Treiber mit Hilfe von NdisWrapper installieren.

WPA/WPA2-Konfiguration (allgemein)

um zu sehen ob die WLAN-NIC abgeschaltet ist:

# rfkill list
0: phy0: Wireless LAN
        Soft blocked: no
        Hard blocked: yes

…wie wir oben sehen ("Hard blocked: yes") ist die WLAN-NIC an unserem Laptop abgeschaltet. Jetzt muss erst einmal der WLAN-Schalter wieder eingeschaltet werden, sonst können wir gleich aufhören.

Wenn das W-LAN-Gerät erkannt wird (mit oder ohne NdisWrapper), dann kann man sich den Namen des Wireless-LAN-Gerätes anzeigen lassen:

# iwconfig 2>&1 | awk '!/no wireless/ && /^[a-zA-Z]/ {print $1}'
wlan0

W-LAN-NIC aktivieren:

# ifconfig wlan0 up

oder

# ip link set wlan0 up

Alle verfühgbaren Kanäle von allen Netzwerkkarten auflisten:

# iwlist chan

Alle verfühgbaren Kanäle von wlan0 auflisten:

# iwlist wlan0 chan
wlan0     13 channels in total; available frequencies :
          Channel 01 : 2.412 GHz
          Channel 02 : 2.417 GHz
          Channel 03 : 2.422 GHz
          Channel 04 : 2.427 GHz
          Channel 05 : 2.432 GHz
          Channel 06 : 2.437 GHz
          Channel 07 : 2.442 GHz
          Channel 08 : 2.447 GHz
          Channel 09 : 2.452 GHz
          Channel 10 : 2.457 GHz
          Channel 11 : 2.462 GHz
          Channel 12 : 2.467 GHz
          Channel 13 : 2.472 GHz
          Current Frequency:2.412 GHz (Channel 1)

Jetzt können wir über das Wireless-Netzwerkgerät nach APs bzw. WLAN-Zellen scannen.

Wichtig sind hierbei die folgenden Ausgabezeilen:

bei WPA1:

  1. ESSID
  2. WPA Version 1
  3. Group Cipher
  4. Pairwise Ciphers
  5. Authentication Suites

bei WPA2:

  1. ESSID
  2. IEEE 802.11i/WPA2 Version 1
  3. Group Cipher
  4. Pairwise Ciphers
  5. Authentication Suites

In der Konfigurationsdatei werden sie mit folgenden Parametern angegeben:

  1. ssid=…
  2. proto=…
  3. group=…
  4. pairwise=…
  5. key_mgmt=WPA-…

Das proto für WPA2 heißt RSN. Wenn man möchte, kann man die MAC-Adresse (00:15:35:85:45:25) unter bssid auch noch angeben.

WICHTIG: Die Optionen proto, group, pairwise und key_mgmt dürfen nicht in Anführungszeichen oder Hochkommatas eingefasst werden!

W-LAN-NICs anzeigen:

# iwconfig 
lo        no wireless extensions.

eth0      no wireless extensions.

wlan0     IEEE 802.11bgn  ESSID:"AP-Name"
          Mode:Managed  Frequency:2.412 GHz  Access Point: 40:41:13:15:C1:18
          Bit Rate=18 Mb/s   Tx-Power=20 dBm
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off
          Link Quality=50/70  Signal level=-60 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

/root/bin/wpa_conf_generator.sh

Dieses Script generiert für jede erreichbare WLAN-Zelle einen Konfigurationsblock, den man in die Datei /etc/wpa_supplicant/wpa_supplicant.conf eintragen kann.

Man muss sich nur den Konfigurationsblock raussuchen, für den man das gültige Passwort kennt. ;-)

#!/bin/bash

#
# Dieses Script generiert eine "wpa_supplicant.conf"-CFG
# für alle erreichbaren W-LAN-Zellen.
#
# Es muss nur noch das richtige Passwort eingegeben werden!
#

if [ -z "${1}" ] ; then
        echo "$0 wlan0"
        exit
else
        WLANNIC="${1}"
fi

v1loeschen()
{
        WLANESSID=""
        WLANPROTO=""
}

v2loeschen()
{
        WLANWPAV=""
        WLANKEYMGMT=""
        WLANGROUPCIPHER=""
        WLANPAIRWISECIPHERS=""
}

ausgeben()
{
echo "#-----------------------------------------------------------------------------#
# /etc/wpa_supplicant/wpa_supplicant.conf
# ZELLE ${ZELLE}
# ${WLANWPAV}
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
eapol_version=1
ap_scan=1
fast_reauth=1

network={
        scan_ssid=\"1\"
        ssid=\"${WLANESSID}\"
        proto=${WLANPROTO}
        group=${WLANGROUPCIPHER}
        pairwise=${WLANPAIRWISECIPHERS}
        key_mgmt=${WLANKEYMGMT}
        psk=\"\"
}
"
}

v1loeschen
v2loeschen

iwlist ${WLANNIC} scan | sed 's/IE://;s/[:]/ /' | while read WVAR WREST
do
        case "${WVAR}" in
                Unknown)
                        v2loeschen
                        ;;
                Cell)
                        v1loeschen
                        v2loeschen
                        ZELLE="$(echo "${WREST}"|awk '{print $1,"/",$NF}')"
                        ;;
                ESSID)
                        WLANESSID="$(echo "${WREST}"|awk '{gsub("\""," ");print $NF}')"
                        ;;
                WPA)
                        WLANWPAV="WPA-1"
                        WLANPROTO="${WVAR}"
                        ;;
                IEEE)
                        WLANWPAV="WPA-2"
                        WLANPROTO="$(echo "${WREST}"|awk '{print $1}'|awk -F'/' '{proto=$2;if ($2 == "WPA") proto="WPA";if ($2 == "WPA2") proto="RSN";print proto}')"
                        ;;
                Group)
                        WLANGROUPCIPHER="$(echo "${WREST}"|awk '{print $NF}')"
                        ;;
                Pairwise)
                        WLANPAIRWISECIPHERS="$(echo "${WREST}"|awk '{print $NF}')"
                        ;;
                Authentication)
                        WLANKEYMGMT="WPA-$(echo "${WREST}"|awk '{print $3}')"
                        ;;
        esac

        if [ -n "${WLANESSID}" -a -n "${WLANPROTO}" -a -n "${WLANGROUPCIPHER}" -a -n "${WLANPAIRWISECIPHERS}" -a -n "${WLANKEYMGMT}" ] ; then
                ausgeben
                v2loeschen
        fi
done

Konfiguration

FRITZ!Box - WPA+WPA2

So sieht ein AP einer FRITZ!Box Fon WLAN 7170 aus, die auf WPA+WPA2 eingestellt ist:

# iwlist wlan0 scan
wlan0     Scan completed :
          Cell 01 - Address: 00:15:0C:85:66:80
                    Channel:9
                    Frequency:2.452 GHz (Channel 9)
                    Quality=23/100  Signal level=23/100  
                    Encryption key:on
                    ESSID:"AP-Name"
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s
                    Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s
                              36 Mb/s; 48 Mb/s; 54 Mb/s
                    Mode:Master
                    Extra:tsf=00000002261bb30a
                    Extra: Last beacon: 944ms ago
                    IE: Unknown: 0008574C414E2D44534C
                    IE: Unknown: 010482848B96
                    IE: Unknown: 030109
                    IE: Unknown: 2A0104
                    IE: IEEE 802.11i/WPA2 Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (1) : CCMP
                        Authentication Suites (1) : PSK
                    IE: Unknown: 32080C1218243048606C
                    IE: WPA Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (1) : TKIP
                        Authentication Suites (1) : PSK
                    IE: Unknown: DD180050F2020101800003A4000027A4000042435E0062322F00

WPA-Konfiguration

Dann würde die WPA-Konfiguration so aussehen:

# vi /etc/wpa_supplicant/wpa_supplicant.conf 
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
eapol_version=1
ap_scan=1
fast_reauth=1

network={
      scan_ssid=1
      ssid="AP-Name"
      proto=WPA
      group=TKIP
      pairwise=TKIP
      key_mgmt=WPA-PSK
      psk="123Dwxaf9352abwG"
}

WPA2-Konfiguration

Dann würde die WPA2-Konfiguration so aussehen:

# vi /etc/wpa_supplicant/wpa_supplicant.conf 
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
eapol_version=1
ap_scan=1
fast_reauth=1

network={
      scan_ssid=1
      ssid="AP-Name"
      proto=RSN
      group=TKIP
      pairwise=CCMP
      key_mgmt=WPA-PSK
      psk="123Dwxaf9352abwG"
}

FRITZ!Box - WPA2

So sieht ein AP einer FRITZ!Box Fon WLAN 7170 aus, die auf WPA2 eingestellt ist:

# iwlist wlan0 scan
wlan0     Scan completed :
          Cell 01 - Address: 00:15:0C:85:66:80
                    Channel:9
                    Frequency:2.452 GHz (Channel 9)
                    Quality=23/100  Signal level=23/100  
                    Encryption key:on
                    ESSID:"AP-Name"
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s
                    Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s
                              36 Mb/s; 48 Mb/s; 54 Mb/s
                    Mode:Master
                    Extra:tsf=0000000017703539
                    Extra: Last beacon: 984ms ago
                    IE: Unknown: 0008574C414E2D44534C
                    IE: Unknown: 010482848B96
                    IE: Unknown: 030109
                    IE: Unknown: 2A0104
                    IE: IEEE 802.11i/WPA2 Version 1
                        Group Cipher : CCMP
                        Pairwise Ciphers (1) : CCMP
                        Authentication Suites (1) : PSK
                    IE: Unknown: 32080C1218243048606C
                    IE: Unknown: DD180050F2020101800003A4000027A4000042435E0062322F00

WPA2-Konfiguration

Dann würde die WPA2-Konfiguration so aussehen:

# vi /etc/wpa_supplicant/wpa_supplicant.conf 
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
eapol_version=1
ap_scan=1
fast_reauth=1

network={
      scan_ssid=1
      ssid="AP-Name"
      proto=RSN
      group=CCMP
      pairwise=CCMP
      key_mgmt=WPA-PSK
      psk="123Dwxaf9352abwG"
}

In diesem Fall unterscheiden sich nur die beiden Einstellungen zwischen WPA+WPA2 und WPA2 im Group Cipher.

FRITZ!WLAN-USB-Stick (mit Ubuntu 8.04)

Installation

Ich habe den AVM-Treiber Version 1.00.00p1 und Linux-Kernel 2.6.24-16 eingesetzt.

Es müssen zwei Dateien im AVM-Linux-Treiber vor dem Übersetzen geändert (gepatcht) werden! Sonst wird sich "iwconfig" immer mit einem Crash verabschieden. Das führte auch zu einem nicht funktionierenden Network-Manager und anschließendem "Hänger" des gesamten Systems!

AVM-Treiber auspacken:

# tar xzf fwlanusb-1.00.00p1.tar.gz

In der Datei fritz/src/defs.h diese Zeile suchen:

typedef unsigned long uintptr_t;

und dann auskommentieren (bzw. entfernen):

//typedef unsigned long uintptr_t;

In der Datei fritz/src/wext.c diese Zeile suchen:

strcpy(wrqu->name, "IEEE 802.11b/g");

und dann ersetzen durch:

snprintf(wrqu->name, IFNAMSIZ, "IEEE 802.11b/g");

Evtl. ist es notwendig, vorher das alte Modul zu entfernen:

# rmmod fwlanusb

reguläre Installationsanleitung lesen:

# links fritz/Liesmich.html

Nun mit dem regulären Install-Script neu übersetzen und installieren:

# cd fritz || exit
# ./install

jetzt kann man nachsehen ob das Modul erfolgreich geladen wurde:

# lsmod | fgrep fwlanusb

Beispiel-Konfigurationsdateien

Beispielkonfigurationen liegen in zwei Dateien bei:

fritz/config-wpa
network={
    ssid="hier die ESSID eintragen, wird beim eingangs gestarteten Scan ausgegeben"
    proto=WPA
    group=TKIP
    pairwise=TKIP
    key_mgmt=WPA-PSK
    psk="hier steht der geheime Schluessel"
fritz/config-wpa2
network={
    ssid="hier die ESSID eintragen, wird beim eingangs gestarteten Scan ausgegeben"
    proto=RSN
    group=CCMP
    pairwise=CCMP
    key_mgmt=WPA-PSK
    psk="hier steht der geheime Schluessel"
/home/http/wiki/data/pages/wireless_lan_wlan.txt · Zuletzt geändert: von david