Skip to content
On this page

Versuch WiFi Managed Mode

WLAN / WiFi (IEEE 802.11)

WiFi

Für folgende Übungen wird im Unterricht ein WiFi Access Point zur Verfügung gestellt mit SSID dnet.

Falls Sie dies zuhause reproduzieren möchten, können Sie entweder ein Heimnetzwerk verwenden oder einen mobilen Access Point von einem smartphone.

ifconfig

Wie bereits in früheren Versuchen wird ifconfig für viele Aufgaben verwendet. Neben dem, dass Netzwerkinterfaces aktiviert und deaktiviert werden können, ist es auch möglich direkt ein Interface mit einer IP-Adressen und Subnetze zu assoziieren.

bash
man ifconfig

interfaces

Für das automatische konfigurieren eines Interfaces bei Bootup verwenden Sie das file /etc/network/interfaces, welches mit man beschrieben ist:

bash
man interfaces

iwlist

Zeigen Sie die man page von iwlist auf den Target an und studieren Sie die Optionen.

bash
man iwlist

Wie heisst das WLAN interface auf dem Target? (ifconfig).

Finden Sie folgende Informationen mit iwlist:

  • SSIDs von Accesspoints in der Nähe
  • Verfügbare Verschlüsselung und Authentifizierung

iwconfig

iwconfig ähnilich wie ifconfig ermöglicht das setzen von verschiedenen config Parametern für interfaces mit "wireless extension".

Lesen Sie die man page.

bash
man iwconfig

ungesichtertes WLAN-Netzwerk

Mit einem ungesicherten Netzwerk können Sie sich via iwconfig alleine verbinden.

bash
ifconfig wlan0 up
iwconfig wlan0 essid dnet

# testen obs geklappt hat
iwconfig

wpa_supplicant

Heute ist vom Verwenden von einem ungesicherten WLAN abzuraten, die am weiten verbreiteste und immer noch als sicher geltende Methode für ein verschlüsseltes WiFi Netzwerk ist WPA-2.

In Linux könne Sie sich folgendermassen mit einem Access-Point der mit WPA-2 gesichert ist via command line verbinden...

Erstellen Sie zuerst eine Konfiguration, dazu verwenden Sie am besten das Netzwerk share Laufwerk, welches wir bereits eingerichtet haben und öffnen ein File dnet.conf im home Verzeichnis.

txt
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=CH

network={
        ssid="dnet"
        psk="datennetze"
}

Sie könne für dies natürlich auch raspi-config verwenden, hierbei wird allerdings immer das config file /etc/wpa_supplicant/wpa_supplicant.conf verwendet.

bash
# Standardmässig läuft bereits wpa_supplicant als
# Service im Hinterrund. Den Service können wir
# mit systemctl beenden
sudo systemctl stop wpa_supplicant
sudo systemctl stop wpa_supplicant@wlan0

# sicherstellen, dass wpa_supplicant beendet ist
sudo killall wpa_supplicant


sudo ifconfig wlan0 down
sudo ifconfig wlan0 up
sudo iwconfig wlan0 mode Managed

sudo wpa_supplicant -i wlan0 -c ./dnet.conf

# die konsole wird nun blockiert sein
# prozess in den hintergrund fahren:
# CTRL + Z

bg

Überprüfen Sie ob das wlan0 interface einen AP assoziiert hat:

bash
iwconfig wlan0
wlan0     IEEE 802.11  ESSID:"dnet"  
          Mode:Managed  Frequency:2.437 GHz  Access Point: 18:F0:E4:3D:68:16   
          Bit Rate=24 Mb/s   Tx-Power=31 dBm   
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:on
          Link Quality=67/70  Signal level=-43 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

Aufgabe

  • Welche IP Adresse haben Sie erhalten?
  • Was ist die momentane Datenrate?

IP-Adresse automatisch beziehen

Falls ein DHCP-Server im Netz aktiv ist, kann eine Adresse folgendermassen bezogen werden:

bash
sudo dhclient wlan0

IP-Adresse statisch setzen

Mit ip addr oder ifconfig können Sie auch für WLAN-Interfaces eine IP und Subnetz statisch setzen.

Prozess wieder in den Vordergrund holen

Mit bg haben Sie den wpa_supplicant, welcher für die Assoziierung und Verschlüsselung ist in den hintergrund befördert. Möchten Sie diesen beenden können Sie mit dem command fg den letzten Prozess wieder finden und diesen mit CTRL-C beenden.

Daemons

Prozesse die im Hintergrund gestarter werden (üblichwerweise über systemd) nennt man auch daemons oder service. Sie können via systemctl oder auch via /etc/init.d/* start gestertet oder mit stop gestoppt werden.