--- 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 Mini-ITX 10 W 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, 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 ein weiteres 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
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
/home/m/Downloads/debian-12.4.0-amd64-netinst.iso
ausgewählt.
Debian 12 konnte ich nicht finden, daher 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 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 700 a1/ chmod 700 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
diff -rq a0.0 a0.1
Zum Anfang
veuhoff.net
NAS Eigenbau: Empfehlungen für all diejenigen, die sich einen NAS-Server selber bauen möchten (2022)
https://www.technikbrennpunkt.de/artikelserie-anleitung-fuer-ein-preiswertes-selbstbau-nas-1-hardware-3814/
Anleitung für ein preiswertes Selbstbau NAS [#1 Hardware]
https://wiki.ubuntuusers.de/NFSv4/
https://basic-tutorials.de/ratgeber/software/so-kannst-du-einen-einfachen-ubuntu-fileserver-erstellen/
https://www.linode.com/docs/guides/linux-mount-smb-share/
https://www.pcwelt.de/article/1146977/netzwerken_mit_samba_-_so_geht_s-linux.html
https://www.samba.org/samba/docs/4.9/man-html/smb.conf.5.html
https://www.oreilly.com/openbook/samba/book/ch09_02.html
https://geekrewind.com/install-and-configure-vsftpd-on-ubuntu-20-04-18-04/
https://www.pcwelt.de/article/1182617/samba-im-terminal-unkompliziert-auf-dateien-zugreifen.html
https://www.thomas-krenn.com/de/wiki/FTP-Server_unter_Debian_einrichten
https://blog.zazu.berlin/hardware/schneller-linux-fileserver-datenserver-im-eigenbau-teil-1-hardware.html
Zum Anfang