© Januar 2024, letzte Änderung am 19.10.24
--- still under construction ---
Eigentlich hat jede FritzBox auch die Möglichkeit Dateien zwischen zu speichern.
Allerdings altert das die Flash-Bausteine oder
extern angeschlossenen USB-Speicher.
Und irgendwann plötzlich, sind sie nicht mehr lesbar.
Abgesehen davon, ist natürlich eine Fritzbox nicht so performant
wie ein 10 W Mini-ITX Prozessor mit angeschlossener SSD.
Mein 24x7 PC ist ein Gigabyte J3455N auf dem mit KVM virtualisiert
verschiedene Systeme laufen.
Zurzeit sind üppige 16 GB RAM und eine kleine 240 GB SSD verbaut.
Um es als echtes NAS laufen lassen zu wollen,
müsste ich weitere Festplatten anschließen (Redundanz & Kapazität),
was ich allerdings nicht vorhabe.
Das geplante externe Tauschlaufwerk, braucht nur temporär kleinere Mengen
speichern können und sollte auch der Windows-Welt zugänglich sein.
Um auf den 24x7 PC ein weiteres virtuelles System zu installieren,
habe ich zunächst ein minimales, aktuelles Debian runter geladen.
Zurzeit das 628 MB große: debian-12.4.0-amd64-netinst.iso
.
Dann habe ich den virt-manager
auf dem 24x7 PC gestartet,
um eine neue Maschine anzulegen via
create a new virtual machine
.
Die Installation erfolgt via runter geladenes Image.
Also local install
eingestellt, und als Pfad z.B.
/home/m/Downloads/debian-12.4.0-amd64-netinst.iso
ausgewählt.
Debian 12 konnte ich nicht finden, daher Einstellung Generic default
Für einen Datei-Server benötige ich wahrscheinlich nur Plattenplatz,
aber wenig RAM. 2048 MB RAM 2 CPUs
40 GB (109 GB noch frei auf der SSD)
Name in der KVM deb12
Danach wird auch schon von der ISO gebootet und ich sehe den Bootscreen.
Zunächst wird der grafischer Installer ausgewählt.
Germany, Deutsch, Deutschland
gj7
als Netzwerk-Name eingestellt.
Die vollständige virtuelle 40 GB Platte kann genutzt werden.
Auswahl: Desktop environment, Xfce, SSH server eingestellt
Einen weiteren Dialog, was benötigt wird, gibt es nicht.
Grub wird auf erster Partition installiert.
Nach knapp 25 min war die Installation fertig
und ein Neustart ist erforderlich.
su apt update → Alle Pakete sind aktuell
Zum ersten Mal eingeloggt und aktualisiert,
ergibt keinen Handlungsbedarf.
Ich habe dann Synaptic aufgerufen, um einiges unnötiges zu entfernen. Z.B.
raus: libre hv3 exfalso parole xfburn
rein: samba
Alternativ geht das natürlich auch über die Shell.
Der smbclient
ist nicht zwingend nötig, erleichtert aber den Test.
apt install samba smbclient
Das SMB-Protokoll
ist zwar für Linux nicht optimal,
dafür aber mit vielen Systemen kompatibel.
Für Samba auf einem virtuellen Rechner, macht es Sinn
via einer Bridge
mit den Host verbunden sein,
damit eine eigene IP-Adresse für die virtuelle Maschine genutzt werden kann.
Im Router kann man die einmal mit DHCP festgelegte Adresse fixieren.
Einen Remote-Zugriff
via ssh, sollte man grundsätzlich weiter schützen.
Z.B indem man noch fail2ban
installiert.
Danach sollte ein ssh
-Zugriff möglich sein. Z.B. ssh -X m@gj7.fritz.box
Danach ist es nicht mehr nötig via Host gj1.fritz.box
& virt-manager
auf das virtuelle System gj7
zuzugreifen.
Zum Anfang
Um aufzuzeigen, wie es funktioniert, definiere ich verschiedene Benutzer,
welche kein ~/Home
-Laufwerk erhalten und sich nicht einloggen können.
Dafür definiere ich zuächst die Gruppen und dann die Benutzer.
Die Befehle sind bei DEB etwas versteckt und lassen sich z.B. mit
whereis addgroup
finden.
Zu guter letzt, setze ich noch die Passwörter.
su
/usr/sbin/addgroup a
lege Gruppe »a« (GID 1001) an …
/usr/sbin/addgroup b → 1002
/usr/sbin/adduser --gid 1001 --disabled-login --no-create-home --shell /bin/false a1
Lege neuen Benutzer »a1« (1004) mit Gruppe »a« (1001) an …
/usr/sbin/adduser --gid 1002 --disabled-login --no-create-home --shell /bin/false b1
smbpasswd -a a1
Added user a.
smbpasswd -a b1
smbpasswd -a c funktioniert nicht, da noch nicht angelegt
New SMB password:
Retype new SMB password:
Failed to add entry for user c.
Überprüfen kann man das wie folgt:
cat /etc/passwd
…
m:x:1000:1000:m,,,:/home/m:/bin/bash
a1:x:1004:1001:,,,:/home/a1:/bin/false
b1:x:1005:1002:,,,:/home/b1:/bin/false
cat /etc/group
…
a:x:1001
b:x:1002
pdbedit -w -L # von Samba übernommen?
a1:1004:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:3EE64AC0FF6BEF0569E58DED9566C1FB:[U ]:LCT-65B5D999:
b1:1005:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:C3E68F0FB85276CE359A03F5D11B028A:[U ]:LCT-65B5D7C0:
Nun sind noch Ordner anzulegen.
Je nach Quelle, wird auch /home
,
/media
oder /samba
vorgeschlagen.
su cd / mkdir share mkdir a1 mkdir b1 chown a1:a a1 chown b1:b b1 chmod 770 a1/ chmod 770 b1/ ls -la zur Überprüfung drwxr-xr-x 5 root root 4096 3. Feb 22:51 . drwxr-xr-x 19 root root 4096 28. Jan 18:20 .. drwxr-xr-x 2 a1 a 4096 3. Feb 22:49 aSmb drwxr-xr-x 2 b1 b 4096 3. Feb 22:49 bSmb
Und zu guter Letzt, ist es nötig den SMB-Server zu konfigurieren.
Ganz am Ende der bereits existierenden Datei,
kann man Benutzerverzeichnisse ergänzen.
su cd /etc/samba cp smb.conf smb.conf.backup01 nano /etc/samba/smb.conf [global] # hosts allow = 127. 192.168. evtl. ergänzen [homes] read only = no geändert ;[printers] alles auskommentiert ; comment = All Printers ; browseable = no ; path = /var/tmp ; printable = yes ; guest ok = no ; read only = yes ; create mask = 0700 ;[print$] ; comment = Printer Drivers ; path = /var/lib/samba/printers ; browseable = yes ; read only = yes ; guest ok = no # oder ; Kommentare hinter z.B. comment = samba_a sind nicht erlaubt! [smba1] comment = samba_a path = /share/a1 guest ok = no browsable = yes create mask = 0600 directory mask = 0700 read only = no [smbb1] comment = samba_b path = /share/b1 guest ok = no browsable = yes create mask = 0600 directory mask = 0700 read only = no
Nach der Änderung muss Samba neu gestartet werden,
damit die Änderungen übernommen werden.
su systemctl restart smbd.service Job for smbd.service failed because the control process exited with error code. See "systemctl status smbd.service" and "journalctl -xeu smbd.service" for details. cat /var/log/samba/log.smbd …
Offensichtlich habe ich mich irgendwo vertippt.
Wenn alles in Ordnung ist, kommt keine Meldung.
Überprüfen kann man den Daemon wie folgt.
su systemctl status smbd.service vergleichbar mit systemctl status nmbd smbd.service - Samba SMB Daemon Loaded: loaded (/lib/systemd/system/smbd.service; enabled; preset: enabled) Active: active (running) since Sat 2024-02-03 23:51:39 CET; 14s ago Docs: man:smbd(8) man:samba(7) man:smb.conf(5) Process: 4930 ExecCondition=/usr/share/samba/is-configured smb (code=exited> Process: 4932 ExecStartPre=/usr/share/samba/update-apparmor-samba-profile (> Main PID: 4941 (smbd) Status: "smbd: ready to serve connections..." Tasks: 3 (limit: 2285) Memory: 5.4M CPU: 352ms CGroup: /system.slice/smbd.service ├─4941 /usr/sbin/smbd --foreground --no-process-group ├─4943 /usr/sbin/smbd --foreground --no-process-group └─4944 /usr/sbin/smbd --foreground --no-process-group Feb 03 23:51:38 gj7 systemd[1]: Starting smbd.service - Samba SMB Daemon... Feb 03 23:51:39 gj7 systemd[1]: Started smbd.service - Samba SMB Daemon.
testparm Load smb config files from /etc/samba/smb.conf Loaded services file OK. Weak crypto is allowed by GnuTLS (e.g. NTLM as a compatibility fallback) Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions … smbclient -L localhost -U% Sharename Type Comment --------- ---- ------- homes Disk Home Directories smba1 Disk samba_a smbb1 Disk samba_b IPC$ IPC IPC Service (Samba 4.17.12-Debian) nobody Disk Home Directories SMB1 disabled -- no workgroup available
homes
und nobody
könnte man noch ausblenden.
Eigentlich sollte es auf dem Klienten reichen smbclient
zu installieren,
aber aus unerfindlichen Gründen bekomme ich bei einem Rechner,
trotzdem unter deb buster, mit Thunar, keinen Zugriff hin.
sudo apt install smbclient gvfs-backends samba smbclient -L //gj7.fritz.box Unable to initialize messaging context Enter WORKGROUP\a1's password: Sharename Type Comment --------- ---- ------- homes Disk Home Directories smba1 Disk samba_a smbb1 Disk samba_b IPC$ IPC IPC Service (Samba 4.17.12-Debian) a1 Disk Home Directories Reconnecting with SMB1 for workgroup listing. smbXcli_negprot_smb1_done: No compatible protocol selected by server. protocol negotiation failed: NT_STATUS_INVALID_NETWORK_RESPONSE Failed to connect with SMB1 -- no workgroup available
Der Benutzer ist hier a1
. Ein Zugriff ohne korrekten Pfad & Servername scheitert.
cd Downloads smbclient -U a1 //gj8.fritz.box/smba1 mkdir failed on directory /var/run/samba/msg.lock: Permission denied Unable to initialize messaging context Enter WORKGROUP\a1's password: geheim Try "help" to get a list of possible commands. smb: \>
Mit help
kann ich mir den riesigen Befehlsvorrat angucken.
Wahrscheinlich kommt man mit folgendem aus ls cd mkdir rm put get quit
.
cd web mget * Get file Element6und7.png? y getting file \web\Element6und7.png of size 983708 as Element6und7.png (23430.5 KiloBytes/sec)… Get file MK52_schleppkette.png? y …
Über einen Dialog wird man wahrscheinlich seltener arbeiten. Daher noch ein Beispiel als eine Befehlszeile.
Um noch mehrere, per Semikolon getrennte, Befehle absetzten zu können, ist noch -c
nötig.
promt off
vermeidet das Bestätigen jeder Datei.
Die zweite Zeile enthält noch das Samba-Passwort, hier "geheim"
smbclient -U a1 //gj8.fritz.box/smba1 -c 'cd web;prompt off;mget *.png' smbclient -U a1%geheim //gj8.fritz.box/smba1 -c 'cd web;prompt off;mget *.png'
Zielverzeichnis ist das zuvor gewählte ~/Download
.
Alles mit gleichen Namen wird ohne Warnung überschrieben.
Daher empfehle ich voher einen Ordner zu erstellen und dort hin zu gehen.
Zum Anfang
Die benutzung via Thunar ist relativ einfach.
Via Go > Browse Network
gelange ich zu den Netzlaufwerken.
Alternativ finde ich im linken Bereich Browse Network
.
Entsprechend dem Benutzer, wähle ich den Ordner und werde aufgefordert ein Passwort einzugeben.
Leider klappt es nicht immer.
Zum Anfang
Zunächst richte ich einen neuen Benutzer ein, welcher auschließlich via ftp
auf sein Laufwerk kommt.
su /usr/sbin/adduser --disabled-login --no-create-home --shell /bin/false ftpuser Lege neuen Benutzer »ftpuser« (1006) mit Gruppe »ftpuser« (1006) an … Erstelle Home-Verzeichnis »/home/ftpuser« nicht. … passwd ftpuser Geben Sie ein neues Passwort ein: Geheim
Als weiteren Schutz schließe ich einen ssh-Zugriff aus
und starte den ssh Dämon erneut.
su nano /etc/ssh/sshd_config DenyUsers ftpuser # am Ende ergänzt systemctl restart sshd
Für nicht einlogbare Nutzer lege ich einen Ordner an. Unter: /mnt
.
cd /mnt mkdir ftp chown ftpuser: ftp chmod 550 ftp
Zunächst muß der entsprechende Dämon installiert werden.
su apt install vsftpd
Für FTP over SSL ist vorher noch ein Zertifikat zu erstellen.
su
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
Dann müssen noch zwei Dateien zur Konfiguration editiert werden.
cd /etc cp vsftpd.conf vsftpd.conf.backup01 Sicherheitskopie nano /etc/vsftpd.conf anonymous_enable=NO # bei DEB12 bereits aktiv no local_enable=YES # nur vom eigenen Verzeichnis erlaubt write_enable=YES # aktivieren #local_umask=022 ascii_upload_enable=YES # aktivieren ascii_download_enable=YES # aktivieren chroot_local_user=YES # aktiviert um nur auf /mnt/fts chroot_list_enable=YES # aktiviert zugreifen zu können allow_writeable_chroot=YES # ergänzt chroot_list_file=/etc/vsftpd.chroot_list # aktiviert local_root=/mnt/ftp # ergänzt ls_recurse_enable=YES #rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem #rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key #ssl_enable=NO rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem ssl_enable=YES allow_anon_ssl=NO force_local_data_ssl=YES force_local_logins_ssl=YES ssl_tlsv1=YES ssl_sslv2=NO ssl_sslv3=NO require_ssl_reuse=NO ssl_ciphers=HIGH
su nano vsftp.chroot_list m # Benutzer m ftpuser
Nach Abschluss der Konfiguration ist ein Neustart des Dienstes erforderlich.
systemctl restart vsftpd systemctl stop vsftpd.service # falls erforderlich systemctl start vsftpd.service systemctl enable vsftpd.service systemctl status vsftpd
Zum Anfang
Voraussetzung für nextcloud ist zunächst LAMP (Linux, Apache, MySQL, PHP).
Eine Alternative zu nextcloud wäre noch opencloud, welche allerdings in der Open source Version
nicht so ein feines Rechtemanagement wie nextcloud enthält.
Für die nextcloud.com software gehe ich in den Download-Bereich
und wähle unter Community Projekte den Web-Installer aus.
Die Datei setup-nextcloud.php
kopiere ich mir in einen extra dafür angelegten Ordner.
Auf den Ordner benötigt setup-nextcloud.php Schreibzugriff.
su mkdir /var/www/html/nc nc wie nextcloud mv ~/Download/setup-nextcloud.php /var/www/html/nc verschiebe .php chown -R www-data:www-data /var/www/html/nc ändere User:Gruppe chmod g+w /var/www/html/nc Ordner mit Gruppen-Schreibzugriff
Entsprechend dem Manual Nextcloud_Server_Administartion_Manual.pdf
,
reicht die PHP-Minimal Installation noch nicht.
su apt install php-gmp php-bcmath php-imagick für DEB 12 nötig cd /etc/apache2/sites-available/ nano nextcloud.conf Alias /nextcloud "/var/www/html/nc/" <Directory /var/www/html/nc/> Satisfy Any disable server conf. auth. Require all granted AllowOverride All Options FollowSymLinks MultiViews <IfModule mod_dav.c> Dav off </IfModule> </Directory>
Um die Konfiguration und weitere Dinge zu aktivieren,
ist bei Debian 12 folgendes einzugeben.
su /usr/sbin/a2ensite nextcloud.con Enabling site nextcloud. To activate the new configuration, you need to run: systemctl reload apache2 /usr/sbin/a2enmod rewrite /usr/sbin/a2enmod headers systemctl reload apache2
Falls es auf den lokalen Computer gj8
läuft,
kann man nun im Browser folgendes eingeben gj8.fritz.box/nc/setup-nextcloud.php
und sieht folgendes Bild des Setup Wizard.
Next drücken und als Pfad .
statt nextcloud eingeben.
Next
Nach einer Weile ist die Installation via setup-nextcloud.php abgeschlossen → Success
Next
Nun erfolgt die Einrichtung vom nextcloud Administrator.
Hier im Bild ist m
der nextcloud Administraror
Wem das ohne SSL zu heikel ist, kann das via
127.0.0.1/nc/index.php
wiederholen.
SQL-Benutzer, SQL-Passwort und Datenbank sind anzulegen.
Einen Teil der Anwendungen habe ich ausgewählt.
Nach einigen Klicken landet man auf folgender Seite und ist fertig mit dem Gröbsten.
Zum Anfang
WebDAV
Nun würden vielleicht einige anmerken, dass einer der Hauptgründe für Synology
die hervorragende Software ist.
Das ist auch korrekt - aber diese Software ist ganz offiziell "open source".
Synology gibt regelmäßig den source code von "DSM"
nach release der aktuellen Version frei.
Daher ist das Projekt "XPEnology" entstanden.
Im Klartext heißt das, dass man Synology DSM auf fast jedem PC verwenden kann.
FreeNAS,
Anfänger OpenMediaVault
Unternehmen FreeNAS
oder NAS4Free
TrueNAS Core (ehemals FreeNAS)
Samba
NFS
Sabnzbd
FTP
HTTP
Plex Media Server
OpenMediaVault
diff -rq a0.0 a0.1
Zum Anfang
basic-tutorials.de
So kannst du einen einfachen Ubuntu-Fileserver erstellen
debian.org
SambaServerSimple
geekrewind.com
How to Install and Configure VSFTPD on Ubuntu Linux
howtoforge.com
Samba Standalone Server Installation on Debian 9 (Stretch)
linode.com
Mount an SMB Share in Linux
oreilly.com
Using Samba
pcwelt.de
So richten Sie Linux als Dateiserver ein (2017)
pcwelt.de
Tutorial: Netzwerken mit Samba – so geht’s
pcwelt.de
Samba im Terminal: Unkompliziert auf Dateien zugreifen
samba.org
smb.conf — The configuration file for the Samba suite
samba.org
Setting up Samba as an Active Directory Domain Controller
serverfault.com
Use fail2ban for Samba
superuser.com
Can't connect to Samba (SMB) server Debian 11 XFCE
superuser.com
Exploring the Network and sharing files in XFCE/OpenBox/Thunar
technikbrennpunkt.de
Anleitung für ein preiswertes Selbstbau NAS [#1 Hardware]
thomas-krenn.com
FTP-Server unter Debian einrichten
thomas-krenn.com
Einfache Samba Freigabe unter Debian
ubuntuusers.de
NFSv4
ubuntuusers.de
Samba
ubuntuusers.de
Datei-/Druckerserver
ubuntuusers.de
Samba Server
veuhoff.net
NAS Eigenbau: Empfehlungen für all diejenigen,
die sich einen NAS-Server selber bauen möchten (2022)
veuhoff.net
Einen FTP-Server mit vsftpd unter Linux Ubuntu 22.04 installieren
vitux.com
How to Install and Configure Samba on Debian
zazu.berlin
Schneller Linux Fileserver / Datenserver im Eigenbau – Teil 1 Hardware
zazu.berlin
Schneller Linux Fileserver / Datenserver im Eigenbau – Teil 2 Software
Zum Anfang