Mein Ziel, ein kleiner, stromsparender, lautloser DHCP-Server. Nachdem ich noch zwei alte Raspberry Pi Model B+ herumliegen habe und somit ohne Funktion, lag es nahe einen der beiden zu verwenden.
Als Distribution habe ich mich für das Raspberry Pi typische Raspbian entschieden, in der Version Jessie (Kernel 4.4, 2017-03-02). Dazu habe ich die Partitionen meiner alten SD-Karte unter Windows mit diskpart gelöscht und mit dem sDFormatter die SD-Karte formatiert. Danach das Image mit dem Programm Etcher auf die SD-Karte gespielt. Die Anleitung dazu findest Du HIER.
SD-Karte in den Raspberry Pi und das System starten. Es dauert nicht lange, bis es zum Login kommt. Der Standard Username von Raspbian ist pi, das Passwort raspberry (Achtung, US-Keybaoard, daher ist das Y auf der Taste Z).
Keyboard Layout auf Deutsch ändern
Dazu musst Du in der Datei /etc/default/keyboard den Wert de setzen:
sudo nano /etc/default/keyboard
XKBMODEL=“pc105“
XKBLAYOUT=“de“
Mit Strg+X speichern, mit Y bestätigen, danach auf die Eingabetaste drücken um den Namen der Datei zu bestätigen.
Nach einem Reboot ist das Tastatur Layout auf Deutsch umgestellt:
sudo reboot
Passwort ändern
Jetzt fängt die eigentliche Arbeit an. Erst einmal ist das ändern des Passwortes zu empfehlen, das kann mit dem Befehl passwd gemacht werden. Danach wird man aufgefordert das aktuelle Passwort einzugeben und darauf zwei Mal das neue Passwort. Das Sudo Passwort kann man getrennt ändern, mit sudo passwd.
Statische IP-Adresse für den DHCP-Server
Für den DHCP-Server, ist eine statische IP-Adresse von Nöten. Diese wollen wir nun hier konfigurieren.
sudo service dhcpcd status
Wird ein installiert rückgemeldet, kann der Service wie folgt gestartet werden:
sudo service dhcpcd start
sudo systemctl enable dhcpcd
Nun wollen wir die IP-Adresse eintragen, dazu müssen wir die dhcpcd.conf bearbeiten:
sudo nano /etc/dhcpcd.conf
Danach Folgendes einfügen und natürlich an das eigene Netzwerk anpassen:
Interface eth0
static ip_address=192.168.1.20/24
static routers=192.168.1.1
static domain_name_server=192.168.1.1
Mit einem sudo reboot das System neu starten. Beim Starten des Systems ist die IP-Adresse schon abzulesen.
Hostname ändern
Als Nächstes empfiehlt es sich den Hostnamen zu ändern, vor allem dann, wenn man mehr als einen Raspberry Pi im Netzwerk hat. Dafür sind folgende Schritte nötig.
Um zu überprüfen welcher der aktuelle Hostname ist, folgendes eingeben:
hostname
Den Hostnamen merken und mit dem folgenden Befehl wird der Hostname geändert (anstatt DHCP einfach den Namen nehmen, den der Server haben soll):
sudo hostname -b DHCP
Mit hostname nochmal überprüfen ob sich der Hostname geändert hat:
hostname
Nun müssen die Konfigurationsdateien mit dem neuen Namen ersetzt werden. Um zu sehen, welche Dateien auf dem Server vorhanden sind, folgenden Befehl ausführen:
sudo grep -lr „ALTERSERVERNAME“ /etc/*
Danach in den Dateien den alten Hostnamen auf den neuen Hostnamen ändern:
sudo nano /etc/hosts
sudo nano /etc/hostname
Wieder den Server rebooten:
sudo reboot
SSH-Schlüssel neu erstellen
Nun müssen die SSH-Schlüssel neu erstellt werden. Dazu gibt es zwei Wege.
Einfach und schnell:
sudo apt-get purge openssh-server && sudo apt-get install openssh
Damit wird der OpenSSH-Server gelöscht und neu installiert. Bei der Installation werden neue Schlüssel generiert.
Oder die alten Schlüssel erst löschen:
sudo rm /etc/ssh/ssh_host_*
Danach den Server rekonfigurieren:
sudo dkpg-reconfigure openssh-server
Und dann den SSH-Server neu starten:
sudo service ssh restart
Für den Fall das kein SSH-Server installiert ist, dieser kann mit folgenden Befehl installiert werden:
sudo apt-get install openssh-server
DHCP-Server installieren
Nun geht es an die Installation des DHCP-Servers.
sudo apt-get install isc-dhcp-server
Die Date isc-dhcp-server bearbeiten:
sudo nano /etc/default/isc-dhcp-server
Bei Interfaces den Wert auf eth0 setzen:
INTERFACES=“eth0“
Die Default-Konfigurationsdatei sichern und eine neue erstellen:
sudo mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf_old
sudo nano /etc/dhcp/dhcpd.conf
Folgendes in die Konfigurationsdatei eintragen, natürlich wieder an das eigene Netzwerk anpassen:
authoritative;
default-lease-time 86000;
max-lease-time 86000;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.254;
option routers 192.168.1.1;
option domain-name-servers 192.168.1.1, 8.8.8.8;
option domain-name „example.local“
}
Den DHCP-Server starten:
sudo systemctl start isc-dhcp-server
Wenn der Start mit einem Fehler abgebrochen wurde, kann man mit folgendem Befehl der Ursache genauer auf den Grund gehen. Vielleicht hat man sich auch nur einfach verschrieben im Config-File (wie es mir passiert ist):
sudo systemctl status isc-dhcp-server
Mit dem darunter aufgeführten Befehl kann man sich die Leases anschauen:
cat /var/lib/dhcp/dhcpd.leases
Es kann natürlich vorkommen, dass man statische IP-Adressen vergeben möchte. Diese werden ebenfalls in der dhcpd.conf-Datei eingetragen. Dazu ist Folgendes zu tun:
sudo nano /etc/dhcp/dhcpd.conf
Und folgendes Eintragen:
Host HOSTNAME {
hardware ethernet MACADRESSE;
fixed-address IPADRESS;
}
Beispiel mit dem Host Obelix:
Host obelix {
hardware ethernet 45:12:e4:12:e4:45;
fixed-address 192.168.1.40;
}
Speichern und den Server noch einmal rebooten (sudo reboot).