Mobiler Zugriff auf den SBC über WLAN

Bei einigen ihrer Projekte könnte es erforderlich sein, dass Sie außerhalb Ihres heimischen Netzwerks auf den SBC zugreifen müssen oder wollen. Dies kann z.B. der Fall sein, wenn Sie Ihr Gerät als DVB-T-Server unterwegs, bei Freunden oder im Garten als TV-Box benutzen möchten, unabhängig von der vor Ort verfügbaren Netzwerkinfrastruktur (sofern überhaupt eine vorhanden ist). Auf dieser Seite zeige ich, wie Sie dies mittels eines AP-fähigen USB-WLAN-Sticks realisieren können.

Ob Ihr WLAN-Stick AP-fähig ist, können Sie über folgenden Befehl ermitteln:

iw list

Steht unter „Supported interface modes“ der Eintrag AP, können Sie fortfahren, andernfalls besorgen Sie sich einen Stick, der diesen Modus unterstützt.

Als ersten Schritt werden dann die benötigten Pakete installiert:

pacman -Sy dhcp hostapd

WLAN-Stick initialisieren

Das System muss beim Booten angewiesen werden, den WLAN-Stick als Netzwerkgerät wlan0 mit statischer IP zu initialisieren (als drittes Oktett verwenden wir dabei statt 178 einfach 179):

nano /etc/conf.d/net-conf-wlan0

address=192.168.179.1
netmask=24
broadcast=192.168.179.255

nano /etc/systemd/system/network@.service

[Unit]
Description=Network startup (%i)
Wants=network.target
Before=network.target
BindsTo=sys-subsystem-net-devices-%i.device
After=sys-subsystem-net-devices-%i.device

[Service]
Type=oneshot
RemainAfterExit=yes
EnvironmentFile=/etc/conf.d/net-conf-%i
ExecStart=/sbin/ip link set dev %i up
ExecStart=/sbin/ip addr add ${address}/${netmask} broadcast ${broadcast} dev %i
ExecStart=/sbin/ip route add default via ${gateway}
ExecStop=/sbin/ip addr flush dev %i
ExecStop=/sbin/ip link set dev %i down

[Install]
WantedBy=multi-user.target

systemctl enable network@wlan0.service

Nach einem Neustart sollte der WLAN-Stick nun mit den oben zugewiesenen Parametern initialisiert worden sein und die Schnittstelle wlan0 muss bei Aufruf von ifconfig auftauchen.

DHCP-Server einrichten

Geräte, die sich am gleich noch einzurichtenden Access Point anmelden, müssen eine IP-Adresse zugewiesen bekommen. Diese Aufgabe übernimmt ein DHCP-Server. Installiert haben wir ihn schon, jetzt richten wir ihn ein:

mv /etc/dhcpd.conf /etc/dhcpd.conf.example
nano /etc/dhcpd.conf

option domain-name-servers 8.8.8.8, 8.8.4.4;
option subnet-mask 255.255.255.0;
subnet 192.168.179.0 netmask 255.255.255.0 {
  range 192.168.179.10 192.168.179.20;
}

subnet 192.168.178.0 netmask 255.255.255.0 {
}

Der erste Abschnitt definiert das zu verwaltende Netzwerk; da die zu erwartende Anzahl der sich künftig anmeldenden Geräte gering ist, genügt hier die Spanne von 11 Adressen. Der zweite, leere Abschnitt zum Subnetz 192.168.178.0/24 (das im Beispiel für das lokale Netzwerk zu Hause steht, siehe Seite Basisinstallation) sorgt dafür, dass dieses nicht durch den zuvor installierten DHCP-Server auf dem SBC verwaltet wird, denn diese Aufgabe nimmt bei uns schon der Router wahr. Schließlich wird der DHCP-Server aktiviert:

systemctl enable dhcpd4.service

WLAN-Access Point erstellen

Zum Schluss richten wir den Zugangspunkt mittels hostapd ein. Anleitungen dazu gibts im Internet zu Hauf, daher verzichte ich hier auf eine detaillierte Erklärung und gebe nur eine mögliche Konfiguration an, die mit meinem Stick funktioniert hat.

nano /etc/hostapd/hostapd.conf

interface=wlan0
driver=nl80211
ssid=<Name des WLAN-Netzwerks>
hw_mode=g
channel=1
ieee80211d=1
country_code=DE
auth_algs=1
ignore_broadcast_ssid=0
ieee80211n=1
wmm_enabled=1
ht_capab=[HT40-][HT40+][SHORT-GI-20][SHORT-GI-40][GF]
wpa=2
wpa_passphrase=<WLAN-Passwort mit 8 bis 63 Zeichen>
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
rsn_pairwise=CCMP

Als letztes den hostapd-Dienst aktivieren:

systemctl enable hostapd.service

Fazit

Dienste auf dem SBC können nun auch über WLAN erreicht werden. Ist kein LAN-Kabel angeschlossen und befindet sich der Computer somit nicht im lokalen Netzwerk, so hat er natürlich auch keinen Zugang zum Internet, kann aber per SSH über die neue Adresse 192.168.179.1 erreicht werden, um ihn wie gewohnt gefahrlos herunterfahren zu können.