Als virtuellen Accesspoint konfigurieren

Sie können einen Industrie-PC unter Beckhoff RT Linux® als Access Point konfigurieren. Dafür wird das Paket hostapd benötigt. hostapd (Host Access Point Daemon) ist ein Systemservice, der eine WLAN‑Karte im AP‑Modus betreibt und als 802.1X/WPA‑Authenticator die Client‑Authentifizierung und Schlüsselverwaltung übernimmt.

Voraussetzungen:

Gehen Sie wie folgt vor:

1. Installieren Sie das Packet hostapd mit:
sudo apt install hostapd
2. Öffnen Sie die Konfigurationsdatei hostapd.conf mit einem Texteditor.
sudo nano /etc/hostapd/hostapd.conf
3. Passen Sie die Hostapd-Konfigurationsdatei wie folgt an:
interface= wlx34c9f09ab29c
debug=1
ssid=yourSSID
wpa=2
wpa_passphrase=yourPassword
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
channel=7
hw_mode=g
country_code=DE
ieee80211d=1
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0
4. Starten Sie hostapd mit folgendem Befehl:
sudo systemctl start hostapd
5. Es erscheint folgende Fehlermeldung, die meldet, dass der hostapd-Service maskiert ist. Maskiert bedeutet bei systemd: Der Service ist absichtlich so blockiert, dass er nicht gestartet werden kann, um Konflikte zu vermeiden.
Failed to start hostapd.service: Unit hostapd.service is masked.
6. Führen Sie folgenden Befehl aus, um die Maskierung aufzuheben.
sudo systemctl unmask hostapd
7. Starten Sie anschließend der Service erneut.
sudo systemctl start hostapd

DHCP und IP-Adresse konfigurieren

Sobald der Service läuft, muss systemd-networkd so eingerichtet werden, dass der Accesspoint IP-Adressen per DHCP vergibt.

8. Auf dem System ist eine vorgefertigte Beispielkonfiguration unter /usr/lib/systemd/network/80-wifi-ap.network.example für Accesspoints hinterlegt, die Sie nutzen können. Kopieren Sie die Beispielkonfiguration aus dem Verzeichnis in den passenden Ordner.

sudo ln -s /usr/lib/systemd/network/80-wifi-ap.network.example /etc/systemd/network/80-wifi-ap.network
9. Öffnen Sie die Konfigurationsdatei mit einem Texteditor
sudo nano /etc/systemd/network/80-wifi-ap.network
10. Erweitern Sie die Einträge in der Konfigurationsdatei /80-wifi-ap.network wie folgt:
# SPDX-License-Identifier: MIT-0
#
# This example config file is installed as part of systemd.
# It may be freely copied and edited (following the MIT No Attribution license).
#
# To use the file, one of the following methods may be used:
# 1. add a symlink from /etc/systemd/network to the current location of this file,
# 2. copy the file into /etc/systemd/network or one of the other paths checked
#    by systemd-networkd and edit it there.
# This file should not be edited in place, because it'll be overwritten on upgrades.
 
[Match]
WLANInterfaceType=ap
Name= wlx34c9f09ab29c

[Network]
Address=192.168.11.1/24
DHCPServer=yes
IPMasquerade=ipv4

PoolOffset=10
PoolSize=20
EmitDNS=yes
DNS=8.8.8.8

Ports für DHCP-Anfragen freigeben

Schließlich müssen auch die Ports für die DHCP-Anfragen der Clients an den Server freigegeben werden.

11. Öffnen Sie die Konfigurationsdatei mit einem Texteditor.
sudo nano /etc/nftables.conf.d/00-basic.conf
12. Erweitern Sie die Konfigurationsdatei und geben Sie Port 67 und Port 68 frei.
table inet filter {
  chain input {
    type filter hook input priority 0; policy drop;

--snipped

    # DHCPv4: Client -> Server
    udp dport 67 accept

    # DHCPv4: Server -> Client
    udp sport 67 udp dport 68 accept

--snipped--
13. Starten Sie den Service nftables mit folgendem Befehl neu.
sudo systemctl restart nftables
14. Überprüfen Sie die offenen Ports mit folgendem Befehl.
sudo nft list ruleset

Der Access Point ist nun vollständig konfiguriert und kann von Clients zur Verbindungsherstellung verwendet werden. Verwenden Sie dazu den konfigurierten SSID-Namen und das WPA2-Passwort, die in der Datei /etc/hostapd/hostapd.conf definiert sind.

Die verbundenen Clients können mit folgendem Befehl angezeigt werden:

sudo hostapd_cli list_sta

Dieser Befehl gibt die MAC-Adressen aller aktuell mit dem Accesspoint verbundenen WLAN-Clients aus.