Vorwort: Ich installiere den DHCP-Server auf meinen Raspberry Pi. Dieser Hat die Schnittstellen „eth0“ und „wlan0“. „wlan0“ ist die Schnittstelle zum öffentlichen Netz und „eth0“ die Schnittstelle zum internen Netz.
Bevor wir anfangen können, müssen wir den DHCP-Server installieren:
sudo apt install isc-dhcp-server -y
Nach der Installation müssen wir unsere Schnittstelle angeben, auf dem der DHCP Server laufen soll, doch vorher erstellen wir ein Backup:
sudo cp /etc/default/isc-dhcp-server /etc/default/isc-dhcp-server.back
Nun können wir sie bearbeiten:
nano /etc/default/isc-dhcp-server
Und tragen unten bei „INTERFACESv4“ die Schnittstelle für das interne Netz ein.
INTERFACESv4="eth0"
Speichert die Datei ab und schließt sie wieder.
Nun konfigurieren wir den DHCP-Server, aber vorher erstellen wir zur Sicherheit wieder ein Backup
sudo cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.back
Öffnet nun die Konfigurationsdatei
nano /etc/dhcp/dhcpd.conf
Jetzt können wir die IP-Adressbereiche festlegen. (Ergänze folgende Zeilen am Ende der Config)
#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;
}

Ebenfalls müsst ihr ganz oben noch die DNS-Server anpassen.
Ich nutze die 8.8.8.8 und 8.8.4.4
Das ganze sieht dann so aus:

# 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 ab und schließe sie wieder.
Wir müssen jetzt unserer internen Schnittstelle noch eine feste IP-Zuweisen.
nano /etc/dhcpcd.conf
Dort müssen wir am Ende der Conf unser Interface und IP Adresse definieren.
Füge also folgende Zeilen hinzu
interface eth0
static ip_address=10.0.0.1/24

Danach dann abspeichern und schließen.
Damit das ganze am Ende auch funktioniert und du mit den internen Geräten auch in das öffentliche Netz kommst, müssen wir IP-Forwarding aktivieren.
Dazu erstellen wir wieder ein Backup der Config…
cp /etc/sysctl.conf  /etc/sysctl.conf.back
…und öffnen sie anschließend
nano /etc/sysctl.conf
Dort gibt es eine Zeile:
#Uncomment the next line to enable packet forwarding for IPv4
#net.ipv4.ip_forwarding=1

Entferne die „#“ vor „net.ipv4.ip_forwarding=1“
Anschließend müssen wir noch die IP-Tables anpassen
Installiere zuerst die IP-Tables
apt-get install iptables-persistent
Jetzt passen wir sie noch an
nano /etc/iptables/rules.v4
Ersetze den kompletten Inhalt durch (Ihr müsste eure Schnittstellen dementsprechend anpassen)
*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,
# u.a. für Clients aus dem Private-Netzwerk
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# alles andere eingehend verbieten
-A INPUT -i wlan0 -j DROP
COMMIT

Speicher sie ab und schließe sie und führe folgenden Befehl aus
iptables-restore < /etc/iptables/rules.v4
Startet nun den DHCP-Server
service isc-dhcp-server start

Zuletzt geprüft und bearbeitet: 30. Apr 2023 @ 4:36