Tanze Samba mit Pi - Teil 2: Installation des Raspberry Pi

Vorbereitungen

Natürlich solltet ihr euch jetzt ein klein wenig Gedanken darüber machen, wie euer AD denn nun heißen soll, die Namen eurer Server, die IP-Adressen und ähnliches. Ihr werdet diese Informationen im Laufe dieses Artikels benötigen, also schreibt sie euch am besten auf. Ein paar kleine Hinweise habe ich an dieser Stelle aber noch für euch:

  • Lasst euer AD nicht mit .local enden. Dies führt bei immer mehr Diensten zu Problemen, die nicht wirklich lösbar sind.
  • Schreibt euch die IP-Adresse eures Routers auf
  • Schreibt euch die IP-Adresse eures bisherigen DNS-Servers auf (in den meisten Fällen wird dies wohl die selbe IP wie die des Routers sein)
  • Schreibt euch die Subnetzmaske eures Netzwerks auf

Auch wenn viele DHCP nutzen, ist dies im Zusammenspiel mit AD-Controllern nicht immer einfach zu lösen. Aus diesem Grund konfiguriere ich die AD-Controller mit einer festen, statischen IP-Adresse. Wenn ihr dies nicht wollt, so müsst ihr in eurem DHCP-Server für eure zukünftigen AD-Controller hinterlegen, dass diese immer die selbe IP-Adresse erhalten, ansonsten bekommt ihr massive Probleme.


In diesem Artikel werde ich die folgenden Namen verwenden:

  • Domain-Controller: ADAM
  • Backup Domain-Controller: EVA
  • Active Directory Domäne: HEAVEN.HOME

Ein kleiner Hinweis noch zum Raspberry Pi. Viele lassen den Pi über Handynetzteile, über USB-Schnittstellen (evtl. sogar einen USB-Port der NAS) oder ähnlichem laufen. Lasst es. Der Pi braucht pasted-from-clipboard.pngstabil knapp über 5V, dies wird von diesen Schnittstellen in den allermeisten Fällen nicht geliefert. Eurem Handy ist es relativ wurscht, ob es bei 5,1 oder bei 4,9 Volt geladen wird – dem Prozessor eures Pi aber nicht. Im „harmlosesten“ Fall, dauert das kompilieren deutlich länger, im Regelfall werden jedoch Fehler produziert (die ihr nicht zwangsläufig sofort bemerkt) oder der Pi läuft nicht stabil. Viele Fehler bei der Einrichtung oder dem Betrieb des AD auf einem Pi lassen sich durch eine instabile Spannungsversorgung erklären!

Was sehr viele der Pi-Nutzer nicht wissen: die rote LED muss immer leuchten! Wenn diese hin und wieder ausgeht, dann ist das immer ein Zeichen für ein Problem mit der Spannungsversorgung, der Pi geht hier mitnichten in einen Stromsparmodus oder zeigt gar an, dass er gerade nichts zu tun hat. Anbei auch einmal ein Bild, wie das aussieht, wenn ein Pi über eine USB-Steckdose betrieben wird und einfach nur bootet:




So soll es auf keinen Fall aussehen – der Raspberry hat definitiv zu wenig Spannung. Für diesen Test hing der Pi an folgender Spannungsquelle:


pasted-from-clipboard.png


Mit 2.1A hätte man ja annehmen sollen, dass das geht und die Spannung nicht einbricht. Dem ist aber leider nicht so. Von daher, tut euch selbst den Gefallen und nutzt für den Pi ein anständiges Netzteil, oder versorgt ihn (wenn ihr einen 3B+ besitzt) per POE-Hat. Dies funktioniert ebenfalls einwandfrei.

1. Vorbereiten des Raspberry Pi

Was braucht ihr:

  • einen Raspberry Pi
  • ein Netzteil für euren Raspberry Pi
  • eine SD-Karte (8GB reichen für den Anfang völlig)
  • eine Software um eine SD-Karte zu formatieren (z.B. SD Card Formatter)
  • eine Software um ein Image auf die SD-Karte zu kopieren (z.B. Win32DiskImager)
  • eine Software um auf die Shell des Raspberry Pi zuzugreifen (z.B. Putty)
  • wenn gewünscht eine Software wie WinSCP, das macht es euch einfacher Dateien auf dem Raspberry Pi zu bearbeiten, speziell wenn man sich auf der Shell nicht wirklich auskennt
  • Zeit und die Muße, etwas neues auszuprobieren

Folgende Dinge müsst ihr initial durchführen:

  • download von Raspbian Stretch lite (https://www.raspberrypi.org/downloads/raspbian/)
  • formatieren einer SD-Karte
  • kopieren des Image auf die SD-Karte
  • anlegen einer Datei „ssh“ in der boot-partition
  • einlegen der Karte in den Raspberry und erster Start

Die neueren Raspbian-Versionen haben SSH per default abgeschaltet. Um dies zu umgehen, könnt ihr (wie beschrieben) einfach eine leere Datei namens „ssh“ auf der Boot-Partition der SD-Karte anlegen (diese ist im Format Fat32 und somit auch unter Windows lesbar). Die Datei braucht keinerlei Inhalt. Beim ersten Start prüft der Raspberry nur, ob diese Datei existiert und wenn ja, wird der SSH-Service eingeschaltet. Ansonsten könnt ihr ohne angehängte Tastatur und Monitor nicht auf euren Pi zugreifen.

2. Einrichten des Raspberry Pi

Um mich mit dem Pi zu verbinden, nutze ich Putty. Schaut einfach in euren DHCP-Server welche IP Adresse eurer Pi erhalten hat und tragt diese Daten in Putty (oder das von euch genutzte Terminalprogramm) ein. Bei der ersten Anmeldung braucht ihr die Default-Anmeldedaten für Raspbian, diese lauten:


Benutzer: pi

Kennwort: raspberry


Als erstes solltet ihr die grundsätzlichen Einstellungen eures Pi vornehmen. Dafür gibt es ein extra Programm, das wir freundlicherweise mitgeliefert bekommen: raspi-config.


Nach der Anmeldung starten wir dieses also direkt mit dem Kommando: sudo raspi-config


Hier könnt ihr nun den Namen eures Pi einstellen, das Kennwort ändern (was ihr auf jeden Fall machen solltet), Lokalisierungseinstellungen vornehmen und am wichtigsten: Das Filesystem expandieren. Wie ihr sicher gemerkt habt, war das Image für Raspbian deutlich kleiner, als eure SD-Karte. Mit dem expandieren des Filesystems passt ihr das Image auf die Größe eurer SD-Karte an, das solltet ihr machen, bevor ihr irgendeine andere Software installiert. Solltet ihr dies vorgenommen haben, fragt die Software euch beim beenden dann auch, ob ihr den Raspberry neu starten wollt – dies solltet ihr auf jeden Fall bestätigen. Es empfiehlt sich, die locale auf „de-de UTF8“ zu ändern sowie die Timezone auf Europe/Berlin. Geht einfach durch die einzelnen Einstellungen durch und konfiguriert euren Pi. Kaputtmachen könnt ihr wenig – ihr könnt das Tool so oft aufrufen wie ihr möchtet. Ansonsten könnt ihr den Raspberry auch per Hand neu starten:

sudo reboot


Nach dem Neustart solltet ihr zunächst eure SSH-Keys neu erstellen. Der Grund ist einfach: Jeder der das Image heruntergeladen hat, nutzt zunächst einmal die selben Keys. Diese ändern sich erst, wenn ihr sie per Hand zunächst löscht und dann neu erstellt. Dies macht ihr mit den folgenden Befehlen:

sudo rm -v /etc/ssh/ssh_host_*


Nun erzeugen wir neue Keys:

sudo dpkg-reconfigure openssh-server


Jetzt aktualisieren wir die Distribution. Je nachdem, wie alt das zur Verfügung gestellte Image ist, kann es hier durchaus Änderungen geben - diese installieren wir mit den folgenden Befehlen:

sudo apt-get update


und danach

sudo apt-get -y upgrade


Da es mir privat auf Dauer zu nervig ist, ständig sudo vor meine Befehle zu setzen (und ich das auch regelmäßíg vergesse), aktiviere ich meinen root-user auf dem Pi und gebe ihm das Recht, per SSH auf den Pi zuzugreifen. Zunächst gebe ich meinem root-user ein Kennwort:

sudo passwd root


und dann erlaube ich ihm Zugriff per SSH. Dafür muss ich einen Eintrag in einer Datei ändern:

sudo nano /etc/ssh/sshd_config


Hier suche ich den Eintrag

#PermitRootLogin prohibit-password


entferne das # und ändere die Zeile in

PermitRootLogin yes


Danach wird die Datei gespeichert und Nano verlassen. (Eine Anleitung für den Editor „nano“ findet ihr auf einer beliebigen Webseite, gebraucht einfach die Suchmaschine eurer Wahl). Danach könnt ihr den Pi neu starten und euch als „root“ anmelden. Wer dies nicht möchte, kann sich auch weiter als „pi“ anmelden, dann denkt euch vor die Befehle bitte einfach ein sudo dazu.

3. Netzwerk einrichten

Wichtig: Solltet ihr weiterhin DHCP nutzen wollen, so müsst ihr diesen Teil überspringen. Wie ihr die weitere Konfiguration von DNS-Servern etc. durchführt, könnt ihr euch auf den Hilfeseiten des „dhcpd“ ansehen.


Für ein AD ist ein sauber konfiguriertes Netzwerk natürlich unumgänglich. Daher konfiguriere ich das Netzwerk per Hand und vergebe statische IP-Adressen. Zusätzlich trage ich meinen Pi sowie die Domäne noch in die Hosts-Datei ein. Hier muss zwingend ein Eintrag entfernt werden (der ansonsten spätestens beim hinzufügen von weiteren DCs zu Problemen führt) sowie die notwendige Namensauflösung vor dem Start unseres eigenen DNS-Servers. Um dem Pi seine statische Adresse zu geben, editiere ich eine Datei. Diese wird geöffnet, der Inhalt komplett gelöscht und dann durch neue Einträge ersetzt.


Öffnen der Datei: nano /etc/network/interfaces dann lösche ich den Inhalt und füge die folgenden Einträge ein:

Code
# Ethernet
auto eth0
allow-hotplug eth0
iface eth0 inet static
address 192.168.0.150
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.254
dns-nameservers 192.168.0.254

Wichtig ist hier natürlich, dass ihr die Einträge nutzt, die für euer Netz zuständig sind – also bitte nicht einfach die Einträge kopieren sondern sinnvoll ergänzen. Die Einträge die ihr ändern müsst, sind die folgenden:

Code
address 192.168.0.150         - Hier kommt die (zukünftige) IP-Adresse eures Pi rein
netmask 255.255.255.0         - Hier kommt die Subnetzmaske eures Netzwerks rein
broadcast 192.168.0.255       - Hier kommt die Broadcastadresse eures Netzwerks rein
gateway 192.168.0.254         - Hier kommt die Adresse eures Routers rein
dns-nameservers 192.168.0.254 - Hier kommt die Adresse eures bisherigen DNS-Servers rein (bei den meisten wird das wohl auch die Adresse des Routers sein)

Wenn ihr die Einträge vorgenommen habt, schaltet den DHCP-Client des Pi aus.


stoppen des dhcpd: systemctl stop dhcpcd

deinstallieren von dhcp und openresolv: aptitude purge dhcpcd5 -y


Jetzt passt ihr die Hosts-Datei eures Pi an, um Namen korrekt auflösen zu können: nano /etc/hosts Der Inhalt wird komplett gelöscht und gegen die folgenden 2 Zeilen ersetzt:

Code
127.0.0.1     localhost
192.168.0.150 adam.heaven.home adam

Auch hier natürlich wieder dran denken: Als IP-Adresse nehmt ihr die IP eures Raspberry und als Domain und Rechnername den Namen eures Raspberry. Wichtig ist auf jeden Fall: Entfernt den Eintrag mit 127.0.1.1 aus der Datei – dieser führt in Verbindung mit Samba und Bind9 zu Problemen!


Ausserdem bereite ich meine Datei /etc/resolv.conf schonmal für die Domäne vor, indem ich alle Einträge lösche und das folgende einfüge:

Code
domain heaven.home
search heaven.home
nameserver 192.168.0.254

Dise Datei wird später noch wichtig! Sobald wir unsere Domäne provisioniert haben, muss hier dann der eigene DNS-Server eingetragen werden, damit alles sauber funktioniert. Auf meinen Pi schalte ich noch Ipv6 aus, da ich ich es nicht benötige. Solltet ihr dies nutzen, so braucht ihr das natürlich nicht zu machen: nano /etc/modprobe.d/ipv6.conf Auch hier lösche ich alles und füge die folgenden Zeilen ein:

Code
# Don't load ipv6 by default
alias net-pf-10 off
alias ipv6 off
options ipv6 disable_ipv6=1

Die Datei abspeichern und den Pi neu starten: reboot


Wenn ihr alles richtig gemacht habt, könnt ihr euren Pi jetzt mit Putty unter der konfigurierten, statischen Adresse erreichen. Nach der Anmeldung testet ihr einfach mal die Daten eurer Schnittstelle:

ifconfig


Nun sollte eine Ausgabe ähnlich der folgenden erscheinen:

Als nächstes testen wir noch, ob der Name richtig aufgelöst wird: ping adam -c 4

Code
PING adam.heaven.home (192.168.0.150) 56(84) bytes of data.
64 bytes from adam.heaven.home (192.168.0.150): icmp_seq=1 ttl=64 time=0.116 ms
64 bytes from adam.heaven.home (192.168.0.150): icmp_seq=2 ttl=64 time=0.061 ms
64 bytes from adam.heaven.home (192.168.0.150): icmp_seq=3 ttl=64 time=0.049 ms
64 bytes from adam.heaven.home (192.168.0.150): icmp_seq=4 ttl=64 time=0.047 ms

--- adam.heaven.home ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3104ms
rtt min/avg/max/mdev = 0.047/0.068/0.116/0.028 ms


Unser Netzwerk auf dem Raspberry Pi ist fertig und wir können uns dem nächsten Teil widmen: Bind9