Benutzer-Werkzeuge

Webseiten-Werkzeuge


wireless_lan_wlan

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
wireless_lan_wlan [2021-04-04 15:22:02] – [ab Ubuntu 20.04 LTS] manfredwireless_lan_wlan [2026-02-08 00:54:36] (aktuell) – [WiFi] david
Zeile 1: Zeile 1:
 +====== Wireless LAN (WLAN) ======
 +
 +
 +===== WiFi =====
 +
 +  * [[https://de.wikipedia.org/wiki/IEEE_802.11]]
 +
 +  WiFi 1  (2,4 GHz)   ->   IEEE 802.11a     ->    (6-54 Mbit/s)
 +  WiFi 2  (2,4 GHz)   ->   IEEE 802.11b     ->    (5,5-11 Mbit/s)
 +  WiFi 3  (2,4 GHz)   ->   IEEE 802.11g     ->    (6-54 Mbit/s)
 +  WiFi 1  (5 GHz)     ->   IEEE 802.11h     ->    (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     ->    (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 =====
 +
 +  * siehe WPA3 Specification: [[https://wi-fi.org/system/files/WPA3%20Specification%20v3.5.pdf#%5B%7B%22num%22%3A108%2C%22gen%22%3A0%7D%2C%7B%22name%22%3A%22XYZ%22%7D%2C33%2C734%2C0%5D|https://wi-fi.org/system/files/WPA3%20Specification%20v3.5.pdf]] (7 WIFI URI)
 +
 +<code bash>
 +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};;"
 +</code>
 +
 +Achtung: SSID und Passwort sind case sensitiv (Groß-/Kleinschreibung ist wichtig)
 +
 +
 +===== ab Ubuntu 20.04 LTS =====
 +
 +  * [[https://www.serverlab.ca/tutorials/linux/administration-linux/how-to-configure-networking-in-ubuntu-20-04-with-netplan/|How to set WiFi Authentication / Configuring WPA and EAP WiFi Connections]]
 +
 +  root@ubuntu:~# apt install wpasupplicant
 +
 +<file c /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"
 +}
 +</file>
 +
 +<file c /etc/netplan/wlan0.yaml>
 +network:
 +  version: 2
 +  renderer: networkd
 +  wifis:
 +    wlan0:
 +      dhcp4: yes
 +      dhcp6: yes
 +      access-points:
 +        "WLAN-1":
 +          password: "geheim"
 +</file>
 +
 +  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:__
 +  * [[http://www.fedorawiki.de/index.php/Atheros_Karten]]
 +
 +
 +===== Installation =====
 +
 +  * [[http://fedorawiki.de/index.php/Wpa_supplicant]]
 +
 +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:
 +  - ESSID
 +  - WPA Version 1
 +  - Group Cipher
 +  - Pairwise Ciphers
 +  - Authentication Suites
 +
 +bei WPA2:
 +  - ESSID
 +  - IEEE 802.11i/WPA2 Version 1
 +  - Group Cipher
 +  - Pairwise Ciphers
 +  - Authentication Suites
 +
 +In der Konfigurationsdatei werden sie mit folgenden Parametern angegeben:
 +
 +  - ssid=...
 +  - proto=...
 +  - group=...
 +  - pairwise=...
 +  - 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:  RTS thr:off   Fragment thr:off
 +            Encryption key:off
 +            Power Management:off
 +            Link Quality=50/70  Signal level=-60 dBm
 +            Rx invalid nwid: Rx invalid crypt: Rx invalid frag:0
 +            Tx excessive retries: Invalid misc:  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.
 +
 +  * [[http://wiki.ubuntuusers.de/FRITZ!WLAN_USB_Stick]]
 +  * [[http://forum.ubuntuusers.de/topic/avm-usb-stick-8.04/4/#post-1402740]]
 +
 +**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"
 +