Raspberry Pi Access Point mit systemd

Aus Nicki Wiki
Zur Navigation springen Zur Suche springen

Ab Raspbian Jessie läuft der Raspi mit dem Init-Systems "systemd". Auf diesem System wird ein WLAN AccessPoint mit eigenem DHCP realisiert. Die Internetdaten werden vom Ethernet zum AccessPoint geroutet.

Vorbereitung systemd

Prüfen ob systemd-networkd vorhanden ist. Es sollte Loaded: loaded ... da stehen

systemctl status systemd-networkd

Alte Netzwerkkonfigurationen deaktivieren

sudo update-rc.d networking remove

DNS systemd-resolved aktivieren und auf (Loaded: loaded ... enabled) prüfen

sudo systemctl enable systemd-resolved
sudo systemctl start systemd-resolved
sudo systemctl status systemd-resolved

Link für DNS Konfiguration setzen

sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

Unter systemd kann die Netzwerkkonfiguration in mehreren Dateien eingetragen werden und müssen im Verzeichnis /etc/systemd/network/ liegen. Dabei müssen die Netzwerkkonfigurationdateien auf .network enden. Wie z.B. unsere Ethernetkonfiguration eth0_dhcp.network mit folgendem Inhalt:

[Match]
Name=eth0
[Network]
DHCP=yes

Das systemd-networkd aktivieren und prüfen. (Configured, Fehler no Hostname -> reboot)

sudo systemctl enable systemd-networkd
sudo systemctl start systemd-networkd
sudo systemctl status systemd-networkd

In der DNS-Konfigurationsdatei sollte hinter nameserver die IP des DNS-Servers stehen. cat /etc/resolv.conf

WLAN AccessPoint

WLAN Netzwerkkonfigurationdatei:

sudo vim /etc/systemd/network/wlan0_AP.network

Mit folgenden Inhalt:

[Match]
Name=wlan0
[Network]
Address=192.168.1.1/24

Hostpad

Installation

sudo apt-get install hostapd -y

Konfiguration des AccesPoint

sudo vim /etc/hostapd/hostapd.conf

Mit folgendem Inhalt:

# WLAN-Router-Betrieb

# Schnittstelle und Treiber
interface=wlan0
#driver=nl80211

# WLAN-Konfiguration
ssid=SSID
channel=1
hw_mode=g
ieee80211n=1
ieee80211d=1
country_code=DE
wmm_enabled=1

# WLAN-Verschlüsselung
auth_algs=1
wpa=2
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
wpa_passphrase=testtest

Ausführbar machen

sudo chmod 600 /etc/hostapd/hostapd.conf

Konfiguration für automatisches starten

sudo vim /etc/default/hostapd

Mit folgendem Inhalt

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

DNS-Server dnsmasq

Installation

sudo apt-get install dnsmasq -y

Konfiguration der DNS-Servers

sudo vim /etc/dnsmasq.conf

Mit folgenden Inhalt

#DHCP-Server aktiv für WLAN-Interface
interface=wlan0
#DHCP-Server nicht aktiv für bestehendes Netzwerk
no-dhcp-interface=eth0
# IPv4-Adressbereich und Lease-Time
dhcp-range=192.168.1.100,192.168.1.150,24h
#DNS
dhcp-option=option:dns-server,192.168.1.1

Test des DNS-Servers

dnsmasq --test -C /etc/dnsmasq.conf
sudo systemctl restart dnsmasq
sudo systemctl status dnsmasq
sudo systemctl enable dnsmasq

Routing

Konfiguration des routings

sudo vim /etc/sysctl.conf

Mit folgenden Inhalt

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

Firewallkonfiguration sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT

sudo apt-get install iptables-persistent