Vorwort: Der DHCP-Server wird auf einem Raspberry Pi mit den Schnittstellen „eth0“ und „wlan0“ installiert. „wlan0“ verbindet sich mit dem öffentlichen Netz, während „eth0“ das interne Netzwerk verwaltet.
Zunächst muss der DHCP-Server installiert werden:
sudo apt install isc-dhcp-server -y
Nach der Installation müssen wir die Schnittstelle angeben, auf der der DHCP-Server laufen soll. Zuvor erstellen wir ein Backup der Konfigurationsdatei:
sudo cp /etc/default/isc-dhcp-server /etc/default/isc-dhcp-server.back
Nun können wir die Datei bearbeiten:
nano /etc/default/isc-dhcp-server
Trage unter „INTERFACESv4“ die Schnittstelle für das interne Netz ein:
INTERFACESv4="eth0"
Speichere die Datei ab und schließe den Editor.
Vor der Konfiguration erstellen wir erneut ein Backup:
sudo cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.back
Öffne nun die Konfigurationsdatei:
nano /etc/dhcp/dhcpd.conf
Lege die IP-Adressbereiche fest, indem Du folgende Zeilen am Ende der Datei ergänzt:
# eth0
subnet 10.0.0.0 netmask 255.255.255.0 {
range 10.0.0.10 10.0.0.60;
interface eth0;
option routers 10.0.0.1;
}
Stelle sicher, dass Du oben in der Datei die DNS-Server auf die gewünschten Werte einstellst. Ich nutze z. B. die DNS-Server 8.8.8.8 und 8.8.4.4:
# option definitions common to all supported networks...
option domain-name "example.ldap";
option domain-name-servers 8.8.8.8, 8.8.4.4;
Speichere die Datei und schließe den Editor.
Nun vergeben wir der internen Schnittstelle eine feste IP-Adresse. Öffne dazu die Konfigurationsdatei:
nano /etc/dhcpcd.conf
Füge am Ende der Datei folgende Zeilen hinzu, um die IP-Adresse für „eth0“ festzulegen:
interface eth0
static ip_address=10.0.0.1/24
Achtung: Mit dem neusten Raspian Image (11.05.2025) wird die IP-Adresse über den Networkmanager vergeben:
nmcli con add type ethernet ifname eth0 con-name eth0-static \
ipv4.addresses 10.0.0.1/24 \
ipv4.method manual \
ipv4.dns "8.8.8.8 8.8.4.4" \
connection.autoconnect yes
nmcli con up eth0-static
Speichere die Datei ab und schließe den Editor.
Um den internen Geräten den Zugang zum öffentlichen Netz zu ermöglichen, muss IP-Forwarding aktiviert werden. Erstelle ein Backup der Konfigurationsdatei:
cp /etc/sysctl.conf /etc/sysctl.conf.back
Öffne die Datei:
nano /etc/sysctl.conf
Suche nach der folgenden Zeile und entferne das Kommentarzeichen (#
), um IP-Forwarding zu aktivieren:
# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1
Speichere die Datei und schließe den Editor.
Installiere die iptables
-Tools:
apt-get install iptables-persistent
Bearbeite die rules.v4
-Datei:
nano /etc/iptables/rules.v4
Ersetze den gesamten Inhalt durch folgenden Code (achte darauf, die Schnittstellen entsprechend Deiner Konfiguration anzupassen):
*nat
-A POSTROUTING -o wlan0 -j MASQUERADE
COMMIT
*filter
-A INPUT -i lo -j ACCEPT
# ssh erlauben, damit wir uns nicht selbst aussperren
-A INPUT -i wlan0 -p tcp -m tcp --dport 22 -j ACCEPT
# eingehenden Traffic erlauben der zu den ausgehenden Verbindungen, z.B. für Clients aus dem internen Netz
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# alles andere eingehend verbieten
-A INPUT -i wlan0 -j DROP
COMMIT
Speichere die Datei ab und schließe den Editor. Lade die neuen iptables
-Regeln:
iptables-restore < /etc/iptables/rules.v4
Starte den DHCP-Server:
service isc-dhcp-server start
Nun ist der DHCP-Server einsatzbereit und Deine Geräte im internen Netzwerk können automatisch eine IP-Adresse zugewiesen bekommen.