Raspberry Pi Access Point mit systemd: Unterschied zwischen den Versionen

Aus Nicki Wiki
Zur Navigation springen Zur Suche springen
 
(17 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
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.
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
==Vorbereitung systemd==
Prüfen ob systemd-networkd vorhanden ist. Es sollte Loaded: loaded ... da stehen
Prüfen ob systemd-networkd vorhanden ist. Es sollte Loaded: loaded ... da stehen.
  systemctl status systemd-networkd
  systemctl status systemd-networkd


Alte Netzwerkkonfigurationen deaktivieren
Alte Netzwerkkonfigurationen deaktivieren.
  sudo update-rc.d networking remove
  sudo update-rc.d networking remove


DNS systemd-resolved aktivieren und auf (Loaded: loaded ... enabled) prüfen  
DNS systemd-resolved aktivieren und auf (Loaded: loaded ... enabled) prüfen.
  sudo systemctl enable systemd-resolved
  sudo systemctl enable systemd-resolved
  sudo systemctl start systemd-resolved
  sudo systemctl start systemd-resolved
  sudo systemctl status systemd-resolved
  sudo systemctl status systemd-resolved


Link für DNS Konfiguration setzen
Link für DNS Konfiguration setzen.
  sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
  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:
Unter systemd kann die Netzwerkkonfiguration in mehreren Dateien eingetragen werden und muss im Verzeichnis /etc/systemd/network/ liegen. Dabei müssen die Netzwerkkonfigurationdateien auf '''.network''' enden, wie z.B. unsere Ethernetkonfiguration '''eth0_dhcp.network''':
sudo vim /etc/systemd/network/eth0_dhcp.network
Inhalt:
  [Match]
  [Match]
  Name=eth0
  Name=eth0
 
  [Network]
  [Network]
  DHCP=yes
  DHCP=yes
Zeile 31: Zeile 33:
cat /etc/resolv.conf
cat /etc/resolv.conf


#WLAN AccessPoint
==WLAN AccessPoint==
WLAN Netzwerkkonfigurationdatei:
Bearbeiten der WLAN Netzwerkkonfigurationdatei.
  sudo vim /etc/systemd/network/wlan0_AP.network
  sudo vim /etc/systemd/network/wlan0_AP.network


Mit folgenden Inhalt:
Mit folgendem Inhalt:
  [Match]
  [Match]
  Name=wlan0
  Name=wlan0
 
  [Network]
  [Network]
  Address=192.168.1.1/24
  Address=192.168.1.1/24


## Hostpad
=== Hostpad ===
Installation
Installation von Hostpad.
  sudo apt-get install hostapd -y
  sudo apt-get install hostapd -y


Konfiguration des AccesPoint
Bearbeiten der AccesPoint-Konfigurationdatei.
  sudo vim /etc/hostapd/hostapd.conf
  sudo vim /etc/hostapd/hostapd.conf


Zeile 70: Zeile 72:
  wpa_key_mgmt=WPA-PSK
  wpa_key_mgmt=WPA-PSK
  rsn_pairwise=CCMP
  rsn_pairwise=CCMP
  wpa_passphrase=testtest
  wpa_passphrase=password


Ausführbar machen
Ausführbar machen.
  sudo chmod 600 /etc/hostapd/hostapd.conf
  sudo chmod 600 /etc/hostapd/hostapd.conf


Konfiguration für automatisches starten
Konfiguration für automatisches starten.
  sudo vim /etc/default/hostapd
  sudo vim /etc/default/hostapd


Mit folgendem Inhalt
Mit folgendem Inhalt:
 
  RUN_DAEMON=yes
  RUN_DAEMON=yes
  DAEMON_CONF="/etc/hostapd/hostapd.conf"
  DAEMON_CONF="/etc/hostapd/hostapd.conf"


#DNS-Server dnsmasq
==DNS-Server dnsmasq==
Installation
Installation des DNS-Servers.
  sudo apt-get install dnsmasq -y
  sudo apt-get install dnsmasq -y


Konfiguration der DNS-Servers
Konfiguration der DNS-Servers.
  sudo vim /etc/dnsmasq.conf
  sudo vim /etc/dnsmasq.conf


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


Test des DNS-Servers
Test des DNS-Servers.
  dnsmasq --test -C /etc/dnsmasq.conf
  dnsmasq --test -C /etc/dnsmasq.conf
  sudo systemctl restart dnsmasq
  sudo systemctl restart dnsmasq
Zeile 109: Zeile 110:
  sudo systemctl enable dnsmasq
  sudo systemctl enable dnsmasq


#Routing
==Routing und Firewall==
Konfiguration des routings
Konfiguration des routings.
  sudo vim /etc/sysctl.conf
  sudo vim /etc/sysctl.conf


Mit folgenden Inhalt
Mit folgendem Inhalt:
  net.ipv4.ip_forward=1
  net.ipv4.ip_forward=1
  net.ipv6.conf.all.forwarding=1
  net.ipv6.conf.all.forwarding=1


Firewallkonfiguration
Firewall-Konfiguration.
sudo iptables -t nat -A  POSTROUTING -o eth0 -j MASQUERADE
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 eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
Damit die Firewall-Konfiguration nach einem Neustart erhalten bleibt.
sudo apt-get install iptables-persistent


sudo apt-get install iptables-persistent
==Quellen==
[https://www.elektronik-kompendium.de/sites/raspberry-pi/2002171.htm Elektronik Kompendium: Raspberry Pi als WLAN-Router einrichten]

Aktuelle Version vom 2. April 2020, 09:20 Uhr

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 muss im Verzeichnis /etc/systemd/network/ liegen. Dabei müssen die Netzwerkkonfigurationdateien auf .network enden, wie z.B. unsere Ethernetkonfiguration eth0_dhcp.network:

sudo vim /etc/systemd/network/eth0_dhcp.network

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

Bearbeiten der WLAN Netzwerkkonfigurationdatei.

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

Mit folgendem Inhalt:

[Match]
Name=wlan0

[Network]
Address=192.168.1.1/24

Hostpad

Installation von Hostpad.

sudo apt-get install hostapd -y

Bearbeiten der AccesPoint-Konfigurationdatei.

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=password

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 des DNS-Servers.

sudo apt-get install dnsmasq -y

Konfiguration der DNS-Servers.

sudo vim /etc/dnsmasq.conf

Mit folgendem 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 und Firewall

Konfiguration des routings.

sudo vim /etc/sysctl.conf

Mit folgendem Inhalt:

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

Firewall-Konfiguration.

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

Damit die Firewall-Konfiguration nach einem Neustart erhalten bleibt.

sudo apt-get install iptables-persistent

Quellen

Elektronik Kompendium: Raspberry Pi als WLAN-Router einrichten