Tanze Samba mit Pi - Teil 4: Installation Samba

Samba

Endlich ist es soweit und wir kommen zum eigentlichen Kern dieses Artikels: Samba.

Samba stellt uns unter Linux AD Funktionalitäten zur Verfügung und ist unter Windows nicht von einem „vollwertigen“ Windows-AD-Controller zu unterscheiden. Die Einrichtung geschieht zwar unter Linux in der Shell, die eigentliche Konfiguration, die Rollen, die GPO und alles andere wird aber, so wie gewohnt, mittels RSAT durchgeführt bzw. eingestellt. Wir verwenden für die Installation die aktuell als „stable“ angegebene Version 4.9.1

1. Notwendige Pakete für Samba installieren

Für die unterschiedlichen Linux-Distributionen gibt es unterschiedliche, notwendige, Pakete um Samba zu kompilieren und zuverlässig laufen zu lassen (näheres hierzu auf der Samba-Wiki-Seite: https://wiki.samba.org/index.p…s_Required_to_Build_Samba)


Für Debian (und somit den Raspberry) benötigen wir also die folgenden Pakete:

Code
apt-get install -y acl attr autoconf bind9utils bison build-essential debhelper dnsutils docbook-xml docbook-xsl flex gdb libjansson-dev krb5-user libacl1-dev libaio-dev libarchive-dev libattr1-dev libblkid-dev libbsd-dev libcap-dev libcups2-dev libgnutls28-dev libgpgme-dev libjson-perl libldap2-dev libncurses5-dev libpam0g-dev libparse-yapp-perl libpopt-dev libreadline-dev nettle-dev perl perl-modules pkg-config python-all-dev python-crypto python-dbg python-dev python-dnspython python3-dnspython python-gpgme python3-gpgme python-markdown python3-markdown python3-dev xsltproc zlib1g-dev liblmdb-dev lmdb-utils

Mit diesen Paketen wird auch das notwendige Kerberos (für die Authentifizierung innerhalb des AD) installiert. Solltet ihr es bisher noch nicht getan haben, dann müsst ihr euch spätestens jetzt den Namen für euer AD einfallen lassen. In der Maske die euch angezeigt wird, müsst ihr dies nun eintragen, bitte alles in Grußbuchstaben sonst kann es zu Problemen kommen. In meinem Fall gebe ich in der Maske also HEAVEN.HOME ein:

pasted-from-clipboard.png


Als nächstes wird nach dem Kerberos-Server für unser AD gefragt, dies ist zunächst natürlich unser Pi den wir gerade einrichten. Den Namen geben wir (auch wieder in Großbuchstaben) an:

pasted-from-clipboard.png


Schließlich wird noch nach dem Administrationsserver für Kerberos gefragt, dies ist der selbe wie zuvor:

pasted-from-clipboard.png

2. Samba-Quellen herunterladen und entpacken

Wie auch bei Bind9, müssen wir nun die Samba-Quellen herunterladen und entpacken. Dies kann, wie schon zuvor für Bind9, entweder über die Webseite oder direkt über den Pi erledigt werden. Hier die notwendigen Links bzw. Befehle:

https://download.samba.org/pub…stable/samba-4.9.1.tar.gz


das heruntergeladene File muss dann (z.B. mit WinSCP) ins Verzeichnis /usr/src kopiert werden oder mit

cd /usr/src

wget https://download.samba.org/pub/samba/stable/samba-4.9.1.tar.gz


direkt von der Samba-Downloadseite auf den Pi geladen werden. Wir entpacken das Fille:

tar -xvf samba-4.9.1.tar.gz


und wechseln ins Verzeichnis

cd /usr/src/samba-4.9.1

3. Samba wird kompiliert und installiert

Die Konfiguration von Samba ist glücklicherweise einfacher als die von Bind9, hier müssen in aller Regel keine besonderen Dinge angegeben werden. Wir können also ganz einfach mit

./configure


die Konfiguration der Quellen starten. Anders als bei Bind, dauert dies nun jedoch deutlich länger, ca. 5 Minuten sind einzuplanen. Am Ende der Konfiguration sollte eine Meldung wie die folgende erscheinen:

Code
'configure' finished successfully (4m46.438s)

Nun können wir die Quellen auch schon direkt kompilieren:

make


Ab jetzt heißt es warten. Je nach eingesetztem Pi und Geschwindigkeit der SD-Karte, kann dies zwischen 1 und 4 Stunden dauern - der Pi muss jetzt richtig arbeiten. In meinem Fall dauert das Kompilieren (mit einem 3B+) ~1h. Nachdem der Vorgang fehlerfrei durchgelaufen ist, können wir Samba auch schon installieren:

make install


Jetzt werden unsere Quellen installiert, netterweise hat Samba für uns die Angabe des Ziels schon voreingestellt auf /usr/local/samba gesetzt – deshalb mussten wir also, anders als bei Bind, das Ziel nicht extra bei der Konfiguration mit angeben. Das ganze dauert nochmals ~20 Minuten.

4. Samba auf dem Pi einrichten

Natürlich müssen wir nun auch den Samba-Pfad hinzufügen, damit die Dateien unserer neuen Installation gefunden werden:

Code
cp /etc/profile /etc/profile.bak.2
sed 's#^\(export PATH\)$#PATH="/usr/local/samba/sbin:/usr/local/samba/bin:$PATH"\n\1#'\
  /etc/profile > /tmp/profile.tmp
mv -f /tmp/profile.tmp /etc/profile


Mittlerweile gibt es wieder ein funktionierendes Startscript für Samba (siehe https://wiki.samba.org/index.p…vice_Using_an_Init_Script). Dieses müssen wir nun manuell erstellen:

nano /etc/init.d/samba4


In diese, neu erstellte, Datei fügen wir die folgenden Zeilen ein:


Achtung: die erste Zeile #!/bin/sh muss zwingend am Anfang in der ersten Zeile stehen. Jedes Leerzeichen oder Leerzeile davor führt dazu, dass die Datei nicht als gültiges Script erkannt wird. Um das zu testen, versucht einfach nochmal die Datei zu editieren – wenn sie farbig dargestellt wird, ist alles in Ordnung. Jetzt passen wir noch die Rechte an, damit das Script auch ausgeführt werden kann:

cd /etc/init.d 

chmod a+x samba4 

update-rc.d samba4 defaults 


Damit unser Samba beim nächsten Neustart nicht sofort gestartet wird, schalten wir den Autostart erst einmal aus:

systemctl disable samba4


Wir starten den Pi neu

reboot


und prüfen das Kompilat sowie die eingestellten Pfade indem wir die Version überprüfen:

samba -V

samba-tool -V


In beiden Fällen sollte die Version 4.9.1 angezeigt werden. Ihr erinnert euch daran, dass wir die Bind9 Scripte kopiert haben? In einem dieser Scripte passen wir den neuen Pfad für Bind9 an:

mv /usr/local/bind9/etc/named.conf /tmp/named.conf 

sed 's#/etc/bind#/usr/local/bind9/etc#g' /tmp/named.conf > /usr/local/bind9/etc/named.conf 


Samba ist nun fertig installiert. Im nächsten Artikel werden wir das AD einrichten, die notwendigen Verknüpfungen für das AD anlegen und unser AD testen. Ihr solltet an dieser Stelle nun euren Pi herunterfahren und eine Kopie eurer SD-Karte anlegen. Im nächsten Schritt wird der Pi zum AD-Controller gemacht, solltet ihr jetzt keine Sicherung anlegen, wird es komplizierter, später damit einen weiteren AD-Controller einzurichten. Desweiteren wird der Artikel um einen Raspberry einer Domäne hinzuzufügen oder eine Domäne auf den Pi "zur übernehmen" ein bis zu exakt diesem Punkt konfiguriertes System benötigen. Zudem habt ihr nun immer einen neuen Startpunkt, sollte beim einrichten des AD irgendetwas schieflaufen. Um den Pi herunterzufahren nutzt ihr folgenden Befehl:

shutdown now