Ein NAS-System der anderen Art #4 – Samba und Backup

Das Projekt bringt mich immer wieder an einem Punkt zum umdenken, welcher Schritt wirklich sinnvoll erscheint und welcher nicht ausgereift überdacht wurde. Langsam merke ich doch, dass ich mir nicht genug Gedanken bei gewissen Dingen gemacht habe und das führt zum ständigen Umplanen. In diesem Falle habe ich mir verschiedenste Software für NAS Lösungen angeschaut und musste feststellen, dass ich mich für keine so wirklich richtig begeistern konnte. Daher fange ich an, mir erstmal kleine Ziele zu setzen und zu schauen, was ich denn wirklich benötige. Ich will auf alle Fälle, dass man den Server betriebssystemunabhängig erreichen kann. Beispielsweise möchte ich Dateien von all meinen Endgeräten auf dem Server sharen oder wiedergeben. Da kam mir die Idee, einfach einen Samba zu installieren. Dank Samba kann ich auf jedem Endgerät ein festes Netzlaufwerk einbinden und der Datentransfer kann losgehen. Hört sich nicht nur simpel an, ist auch simpel einzurichten.

 

Samba einrichten

Für die Samba Installation auf der Büchse benötigen wir folgende drei Komponenten, die wir auch direkt installieren.

yum install samba samba-client samba-common

 

Nächster Schritt ist dann eine neue Sambagruppe zu gründen und einen neuen User dieser zu zuordnen.

groupadd smbgrp

usermod user -aG smbgrp

 

Dem neuen User wird auch noch ein Samba Passwort erstellt. Dieser Account wird benötigt, um Zugriff auf den Share zu erhalten.

smbpassword -a user

 

Natürlich muss man nicht mit Accounts den Zugriff auf den Samba beschränken. Man hat auch die Möglichkeit einfach keine Nutzer anzulegen und jeder in der selben Workgroup hat dann uneingeschränkte Zugriffsrechte auf den Share. Nur wer will schon einen Samba betreiben auf den jeder mit der gleichen Workgroup rumhantieren kann wie er will.

 

Im nächsten Schritt sichern wir die vorhandene Samba Konfiguration ab, um im Notfall auf default wieder zurückstellen zu können.

cp /etc/samba/smb.conf /etc/samba/smb.bak

 

Danach löschen wir die Standardkonfig und erstellen eine komplett neue Datei.

rm /ect/samba/smb.conf

nano /etc/samba/smb.conf

 

Die Struktur ist relativ einfach. Zuerst gibt es die globale Einstellung und dann die einzelnen Ordner die geteilt werden möchten.

[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = raid1
security = user
map to guest = never
dns proxy = no

Durch die Angabe der Workgroup dürfen nur Endgeräte in der genannten Domäne auf den Share zugreifen. Hier sollte darauf geachtet werden, dass sich die Endgeräte auch in der selben Domäne befinden, die auf den Samba dann auch zugreifen möchten.

Mit netbios name lässt sich der Share über ‚Ausführen‘ und der Angabe ‚raid1′ direkt öffnen. Quasi ein Schnellzugriff.

Die Security ist auf User beschränkt und setzt einen Samba Account für die Authentifizierung vorraus.

Man sollte sich überlegen die Gastaccount Option ganz zu deaktivieren, sonst hat man schnell unerwünschte Nutzer an der Backe. Sobald sich ein Nutzer nicht erfolgreich authentifizieren konnte, kann ihm der Samba einen Gastaccount erstellen, mit dem ein Zugriff trotzdem gewährt wird. Das kann schnell böse enden, daher map to guest auf ’never‘ setzen.

 

Da ich mein komplettes RAID1 auf dem Samba sharen möchte, muss ich auch nur einen Ordner beziehungsweise Pfad angeben.

[raid1]
path = /raid1
valid users = @smbgrp
public = no
writable = yes
browsable = yes
printable = no

 

Zuerst nenne ich den Pfad zu dem Shared Medium. Setze dann vorraus, dass sich nur Nutzer der Samba Gruppe Zugriff bekommen. Das es kein öffentlicher Share ist, wichtig! Als Letztes definiere ich noch die genauen Nutzerrechte.

 

Nun kann man prüfen lassen, ob die Konfiguration soweit passt und das sich keine Syntax oder Tippfehler eingeschlichen haben. Wenn die Ausgabe ‚Loaded services file OK‘ beinhaltet, scheint der Dienst erfolgreich zu laufen.

testparm

 

Nun starten wir den Samba Dienst neu und fügen diesen dann in die Liste für Autostart mit ein.

systemctl restart smb.service

systemctl restart nmb.service

systemctl enable smb

 

Desweiteren müssen wir nun noch die Ordnerberechtigungen anpassen. Beispielsweise soll der Nutzer ‚user‘ aus der Samba Gruppe ’smbgrp‘ uneingeschränkten Dateizugriff bekommen ‚0777‘. Natürlich ist dies jedem selbst überlassen, wie die Rechtevergabe hier auszusehen hat.

chown -R user:smbgrp /raid1/

chmod -R 0777 /raid1/

 

Als Letztes sollte man unter CentOS dem Selinux noch bekannt geben, dass der Samba Share erlaubt wird und nicht blockiert oder auf andere Art und Weise eingeschränkt wird.

chcon -t samba_share_t /raid1/

 

Backup mit rsync

Es ist zwar schön und gut, dass wir nun die Daten über Samba sharen können, allerdings sollte spätestens jetzt ein funktionierendes Backup stehen. Wie soll dies aber aussehen? Ich habe noch eine 1TB Festplatte, die momentan noch überhaupt nicht genutzt wird. Daher dachte ich mir, diese als Datensicherung zu verwenden. Das Backup führe ich dann mit rsync durch und das am besten als Script, welches jede Nacht um 3 Uhr startet. Natürlich wird die 1TB Festplatte irgendwann nicht mehr ausreichen, dann muss diese ersetzt werden.

rsync -av –progress –delete /raid1 /store1/Backup

 

Mit der Option ‚–progress‘ kann ich mir im Terminal den Fortschritt anschauen und mit ‚–delete‘ wird ein vorhandenes altes Backup am Ziel gelöscht.

 

Damit aber das Backup nicht dauernd von mir manuell durchgeführt wird, soll dies doch automatisch passieren. Zeit und Arbeit sind die meisten Ausreden für keine vorhandene Backup Lösung. Daher holt man sich Cron, welcher die Arbeit für einen erledigt. Den Aufbau eines Cronjobs lässt sich anhand eines detailierten Aufbaubeispiels in der Datei finden.

nano /etc/crontab

 

Der Aufbau sieht dann wie folgt aus:

* * * * * user-name command to be executed

0 3 * * * root rsync -a –delete /raid1 /store1/Backup

 

Man sollte allerdings nach Bearbeitung den Service neustarten, damit die Änderungen auch wirklich durchgeführt werden.

systemctl restart crond.service

 

Somit wären wir dann mit Samba und Backup durch. Jetzt muss ich mir überlegen, wie es weiter geht. Vielleicht doch noch eine NAS-Lösung oder vielleicht eine eigene Cloud wäre interessant. Dadurch lassen sich auch Termine und Kontakte synchronisieren… Ich melde mich!

 

over & out,

jonsch

Schreibe einen Kommentar

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.