Einstieg

Geräte wie RaspberryPi können auch als WLan-Accesspoint eingesetzt werden. Die Verbindung zum Internet erfolgt in meinem Fall über die LAN-Schnittstelle und wird mittels zusätzlicher USB-WLan anderen Geräten zur Verfügung gestellt. Dabei wird kein DHCP-Server installiert, da die vorhandene Internetverbindung nur mittels Bridge weiteren Geräten zur Verfügung gestellt wird und bereits ein DHCP-Server im (Lan-)Netz existiert.

Zum Einsatz kommt der LOGILINK WL0145 (148f:5370 Ralink Technology, Corp. RT5370 Wireless Adapter), der ohne Probleme vom Raspbian unterstützt wird.

Als zusätzlich Software werden hostapd und bridge-utils installiert.

sudo apt install hostapd bridge-utils

Konfiguration

Der Access-Point wird über die Konfiguration /etc/hostapd/hostapd.conf eingerichtet. Diese Datei muss dabei möglicherweise erst angelegt werden.

# Schnittstelle und Treiber
interface=wlan0
bridge=br0
driver=nl80211

# WLAN-Konfiguration
ssid=SSID_des-WLANS
channel=11

# ESSID sichtbar
# 0 = SSID wird offen mitgeteilt
# 1 = leere SSID
# 2 = leere SSID aber Länge wird auf korrekte Länge gesetzt
ignore_broadcast_ssid=0

# Ländereinstellungen
country_code=DE
ieee80211d=1

# Übertragungsmodus
# a = IEEE 802.11a
# b = IEEE 802.11b
# g = IEEE 802.11g
hw_mode=g

# Draft-N Modus aktivieren
ieee80211n=1
wmm_enabled=1

# Übertragungsmodus / Bandbreite 40MHz
#ht_capab=[HT40-][SHORT-GI-40][RX-STBC1][MAX-AMSDU-3839][GF]

# Rundspruch (Beacon) "Ich bin ein AP!" in Millisekunden (1 - 65535)
beacon_int=100

# DTIM-Ankündigung
# Ein DTIM ist eine Art Weckruf an die Stationen: "Gleich wird es interessant!".
# Es reicht jedes zweite Beacon mit dem DTIM zu bestücken.
dtim_period=2

# Maximale Anzahl an Clients
max_num_sta=10

# Größe der Datenpakete/Begrenzung
rts_threshold=2347
fragm_threshold=2346

# MAC-basierte Authentifizierung
# 0 = akzeptieren, wenn nicht explicit abgelehnt (deny_mac_file)
# 1 = ablehnen, wenn nicht explicit erlaubt (accept_mac_file)
# 2 = RADIUS-Server verwenden, nach Durchsicht der obigen Listen
# Zum Sperren/Erlauben diese Dateien anlegen und bestücken:
# accept_mac_file=/etc/hostapd.accept
# deny_mac_file=/etc/hostapd.deny
macaddr_acl=0

# Authentifizierung
# 1 = Open System, 2= Shared Key --> WEP
# 3 = beides
auth_algs=3

# WPA-Einstellung
# 1 = WPA
# 2 = WPA2
# 3 = beides
wpa=2

# WLAN-Key (Pre-shared Key)
wpa_passphrase=GanzGeheimerSchluesselDesWLans

# Pre-shared-Key Management
wpa_key_mgmt=WPA-PSK

# WPA2 Verschlüsselung anbieten
rsn_pairwise=CCMP

# WPA Verschlüsselung anbieten
wpa_pairwise=TKIP CCMP

# Schlüsselerneuerung
# Schlüsselteile nach 10 Min. erneuern
wpa_group_rekey=600

# s.o. wpa_ptk_rekey=600

# erneuern nach 24 Std.
wpa_gmk_rekey=86400
wpa_group_rekey=600
wpa_gmk_rekey=86400
wpa_ptk_rekey=600
rsn_preauth=1
rsn_preauth_interfaces=wlan0
ap_max_inactivity=300

## Log-Einstellungen
# "-1" = alle Module loggen, "3" z.B. loggt nur WPA
logger_syslog=-1
# "2" = informative Meldungen, "1" = Debuggen, "0" = echt alles loggen
logger_syslog_level=2
# wie oben, nur Ausgabe auf Konsole, wenn Programm nicht im Hintergrund läuft
logger_stdout=-1
# wie oben
logger_stdout_level=2

## Statusinformationen
# temporäre Datei für Statusinformationen
dump_file=/tmp/hostapd.dump
# Verzeichnis für Socket für hostapd_cli und andere externe Kontrollprogramme
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0


Nicht alle dieser Einstellungen sind zwingend nötig und müssen ggf. den individuellen Gegebenheiten angepasst werden. Zusätzlich gibt es noch weitere Einstellungsmöglichkeiten.

Brücken bauen

Zusätzlich zum Access-Point muss noch der Zugang zum Internet geschaffen werden. Das erledigt in diesem Fall eine "Brücke" zwischen Lan und Wlan. Diese wird in der Netzwerkkonfiguration /etc/network/interfaces angelegt.

auto br0
iface br0 inet static
    address 192.168.1.100
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
    gateway 192.168.1.1
    bridge_ports eth0 wlan0
    bridge_fd 5
    bridge_stp no

Abschluss

Vor einem Test sollte das Gerät neugestartet werden um die geänderte Netzwerkkonfiguration zu übernehmen.

Danach sollte hostapd direkt gestartet und die Statusmeldungen geprüft werden
sudo hostapd -dd /etc/hostapd/hostapd.conf

Wenn alles funktioniert wird hostapd als Daemon aktiviert. Dazu in der Datei /etc/default/hostapd die Konfigurationsdatei eintragen.

DAEMON_CONF="/etc/hostapd/hostapd.conf"

Beim nächsten Neustart sollte hostapd automatisch gestartet werden.