Mobilesteuerung: Blättern oben links oder rechts
Fulllscreen Mode oben mitte.
Tastensteuerung: Blättern: '→←↑↓';
Farbe Modus: 'm'
Anzeige abschalten (blank): 'b'
Virtuel Pointer ein/aus (laser): 'l'
Zeichengröße an Höhe anpassen: 'w'
Touchbedienung erlauben/verbieten: 'v'
Steuerelemente: Anzeige ein/ausschalten: unten recht
Seite Schnellwahl (ein/aus): 'g'
A B M W

Linux Access Point

Jean-Jacques Sarton

Motivation

Mögliche Komponenten

Das Aufsetzen einem Hotspot mit den Networkmanager klingt gut, unglücklicherweise fehlt es an einige Einstellungsmöglichkeiten, der Betrieb und geziehlten Ein- Ausschalten erfordet die Verwendung einem Script, der von Hand aufgerufen werden muss.

Wenn ein Script erhalten muss, kann auch hostapd verwendung finden. Es ist der Weh der gegangen wird.

Was zu beachten ist.

Haupt Zutaten

Wahl des Frequenzbereiches

Wahl des Kanals, 2.4 GHz

Wahl des Kanals, 5GHz

Kanäle 5GHz, Quelle: freifunk-franken.de

Tools zur Ermittlung der freie Kanäle

Linssid

Linssid

Hotspot Sicherheit

Wahl des USB-WLAN- Adapter

Mögliche Betriebsarten

SoftAP

IPv6 or not IPv6 ? That’s the question

NetworkManager Hürde überwinden

Forwarding einschalten

sysctl net.ipv4.conf.all.forwarding=1
sysctl net.ipv6.conf.all.forwarding=1

IPv6 Schnittstellenkonfiguration

sysctl net.ipv6.conf.$wlan1.addr_gen_mode=0
sysctl net.ipv6.conf.$WLANDEV.use_tempaddr=0
sysctl net.ipv6.conf.$WLANDEV.accept_ra=0

Sicherstellen des Zugriffes auf der Netzwerkschnittstelle

ip link set down $wlan1
ip link set up $wlan1

Network Address Translation

Die für das Hotspot verwendete Adressen können nicht im Internet verwendet werden. Mit den Adressen können die externe Router nichts anfangen,

NAT Regeln

iptables -t nat -A POSTROUTING -s 198.18.0.0/24 -o $wlan0  -j MASQUERADE

oder

nft add rule ip nat POSTROUTING oifname "$wlan0" ip saddr 198.18.0.0/24 counter masquerade

Server von Zufriffe schützen

# Kein Verkehr zu unseren Rechner
iptables -A INPUT -s 198.18.0.0/24 -d 192.168.0.23  -j DROP
# mDNS zur Clients abschalten
iptables -A OUTPUT -o $wlan1 -p udp --dport 5353 -j DROP

oder

nft add rule ip filter INPUT ip saddr 198.18.0.0/24 ip daddr 192.168.0.23 counter drop
nft add rule ip filter OUTPUT oifname $wlan1 udp dport 5353 counter drop

Hostapd Konfiguration - allgemein

ctrl_interface=/var/run/hostapd
ctrl_interface_group=wheel
country_code=DE
macaddr_acl=0
ignore_broadcast_ssid=0
ieee80211n=1
preamble=1
wmm_enabled=1
ieee80211d=1
ignore_broadcast_ssid=0
interface=$wlan1
hw_mode=g
channel=1
ssid=meinHotspot

Hostapd Konfiguration - Autorisierung

# Autorisierung
auth_algs=1
wpa=2
wpa_passphrase=$PASS
rsn_pairwise=CCMP
wpa_key_mgmt=WPA-PSK

# Für WPA2/WPA3
#ieee80211w=2
#wpa_key_mgmt=SAE WPA-PSK

Hostapd Konfiguration - Bandbreite

# 20 MHz Kanäle (N150, bis 72 Mbps)
ht_capab=[HT20][SHORT-GI-20]

# 40 MHz Kanäle (N300, bis 144 Mbps)
#ht_capab=[HT20][SHORT-GI-20][HT40-][HT40+][SHORT-GI-40]

Dnsmasq Konfiguration

interface=$wlan1
# DNS-Server = Quad9 (Schweiz)
server=2620:fe::9
server=9.9.9.9
Server=2620:fe::fe
server=149.112.112.112

bind-dynamic
domain=hotspot
local=/hotspot/
except-interface=lo
dhcp-authoritative
dhcp-rapid-commit
dhcp-leasefile=/tmp/dnsmasq.lease
dhcp-range=198.18.0.2,198.18.0.254,360
dhcp-option=option:dns-server,198.18.0.1.1
dhcp-range=::,constructor:$wlan1,ra-names,ra-advrouter
dhcp-option=option6:dns-server,[2001:2::1]
enable-ra

Besonderheit für Firewalld

Die Netzwerkschnittstelle muss eine passende Zone zugeordnet werden

zone=$(firewall-cmd --get-zone-of-interface=$wlan1 2>/dev/null)
if [ "$zone" = "trusted" ]; then
    return;
fi
if [ "$zone" != "" ]; then
    firewall-cmd --zone=$zone --remove-interface=$wlan1
fi
firewall-cmd --zone=trusted --add-interface=$wlan1

Hostspot Starten

Parameter_ermitteln              # /bin/sh Skript
Konfigurationsdateien_erzeugen   # hostapod.conf dnsmasq.conf
Setze_Schnittstelle_unmanaged    # nmcli
Forwarding_einstellen            # sysctl
Adapter_für_IPv6_konfigurieren   # sysctl
Schnittstelle_Down_Up            # ip
Zone_setzen                      # falls notwendig, firewallcmd, ...
Hostapd_starten                  # hodtapd
Dnsmasq_starten                  # dnsmasq
Ip_Adressen_und_Routen_setzen    # ip

Betrieb mit eigene Hardware