NAS und VPN und PiHole auf Raspi 4b

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hallo zusammen,

    ich bin neu hier und möchte mich kurz vorstellen. Mein Name ist Carsten (Nick:Tuereintreter "Tuere") und habe mich seit letzten Sommer vom Raspifieber anstecken lassen. Der Arzt meinte, er gäbe keine Heilung. Dann fand ich diese Selbsthilfegruppe... ;)

    Also durch viel lesen im I-net, auch hier, hatte ich mich entschieden einen Raspi 4b mit 2 GB Ram mit openmediavault zu betreiben, dort dann das openVPN plug-in zusätzlich zu installieren und parallel einen Raspi 4b 2GB Ram mit PiHole zu betreiben. Der PiHole läuft seit den Sommer. Heute hatte ich etwas Zeit zur Verfügung, um mir die ISO runterzuladen und mit Etcher zu flashen. Anleitungen gibt's bei Leibe genug. Leider funzt der Download aber nicht - warum auch immer. Ich wählte auch alternative Server aus. Da passiert einfach nix.

    Nun ist meine Zeit etwas rar und ich wollte dieses Jahr noch ein NAS haben, auf das jeder Teilnehmer im Haus und auch von außen mittels VPN zugreifen kann. Ich habe mir die Arbeit gemacht und ALEE meine CDs auf ein HD gerippt als flac und will die z.B. auf der Arbeit hören. Nur als Beispiel. Da das mit OMV nicht klappt und ich wieder bei Null anfangen kann möchte ich die erfahrenen Nutzer hier fragen wie ich nun mit was als Alternative vorgehen kann.

    Also NAS mit VPN und wenn möglich und der Raspi mit 2BG da noch nicht voll ausgelastet ist auch PiHole dazu parallel laufen lassen. Generell denke ich daran, dass das System auch Medien per DNLA weiter geben kann. Das ist aber jetzt nicht so wichtig.

    Ich habe hier einen Raspi 3b+ liegen mit Razberry2 Modul der später als Z-Wave Homeserver fungieren soll. Aber alles der Reihe nach.

    Ich bin für Vorschläge offen.

    Tuere

  • NAS, VPN und Pihole sind 3 getrennte Anforderungen, die man auch getrennt voneinander lösen sollte. Ich denke, dass ein PI das auch gut leisten kann. Als Betriebssystem würde ich raspbian lite ohne grafisches Desktop Environment empfehlen, damit für diesen Click-Bunt-Kram keine CPU-Ressourcen sinnlos verschwendet werden. Die Funktion NAS würde ich mit Samba lösen, weil damit sowohl Windows als auch Linux-Clients unterstützt werden. Für den geschützten Zugriff von außen empfehle ich OpenVPN, das halte ich derzeit für das sicherste. Und na klar, pihole ist auch kein Problem und unbedingt eine Empfehlung....ich denke, das wird die geringste Last erzeugen.

    Mein Rat wäre, löse jedes Problem einzeln, ohne dabei an die anderen zu denken und frag einfach bei speziellen Problemen. Ein Mischmasch-Projekt aus allen Komponenten ist schlichtweg zu unübersichtlich und auch als eigentlich vermeidbares Chaos völlig unnötig. Und ganz zum Ende als persönliches Motto, ich würde alles nach dem KISS-Prinzip bauen.... also bloß nichts unnötig verkomplizieren.

    Einmal editiert, zuletzt von WinterUnit16246 (14. Dezember 2019 um 14:36)

  • Ok, Danke für den Hinweis Thomas. Den Pi mit 2 GB, ist der besser für das NAS geeignet als für VPN ?

    Ich habe noch einen mit 1GB hier liegen. Ich las im I-Net, dass man auf ein laufendes PiHole System ein Open VPN dazu installieren und laufen lassen kann. Was hält ihr davon ?

    Beziehungsweise, was spricht dagegen ?

    Auf den PiHole greife ich derzeit per ssh zu. Ich gehe aber auch gerne den Weg über die FritzBox. Dort ist er unter Mesh verlinkt un mit einem Klick bin ich auf dem Dashboard.

  • Ich habe noch einen mit 1GB hier liegen. Ich las im I-Net, dass man auf ein laufendes PiHole System ein Open VPN dazu installieren und laufen lassen kann.

    Fang einfach mit dem verfügbaren Pi an, und wie ich sagte, ein Problem nach dem anderen... um dann darüber eigene Erfahrungen zu sammeln.... dann wirst Du von ganz alleine feststellen, was geht und was nicht geht, was Spaß macht und was frustriert.

    Ich las im I-Net, dass man auf ein laufendes PiHole System ein Open VPN dazu installieren und laufen lassen kann. Was hält ihr davon?

    Die Frage hatte ich doch schon beantwortet, wieso fragst Du nochmal? Ich halte nichts von Mutmaßungen, sondern mehr von praktischen Erfahrungen.... und die bekommt man nur, wenn man einfach mit dem anfängt, was man hat und schaut, was am Ende rauskommt. Dann weiss man selber, ob einen das zufriedenstellt oder ob nicht. Und wenn es nicht zufriedenstellend war, kann man Alternativen überlegen.... aber erst dann. Aber ganz sicher sollte man sich nicht von vornherein mit Alternativen befassen, wenn man gar nicht weiss, ob die überhaupt notwendig sind.

  • Hallo Thomas,

    wie du vorschlugst, habe ich angefangen. Ich nahm den 2GB Pi und habe ihn ans Netzwerk angeschlossen. Raspian Buster auf die SD Karte und Pi gebootet. Samba installiert und einen Nutzer angelegt. Nach diversen Anleitungen die fand um zwei neue unpartitionierte 4TB Festplatten einzurichten, hänge ich da fest. Probiert habe ich via fdisk, das jedoch mir nur 2TB auf der Platte anlegen will. Mit zwei Laufwerken zu 2TB würde ich mich auch abfinden. Das bietet er aber von den Sektoren gar nicht an bzw sagt "value out of range". Dann empfahl jemand es mit parted zu versuchen.

    mklabel gpt
    mkpart primary 1mib 100%

    führte zum gewünschten Erfolg

    Als nächstes wollt ich sie mit ext4 formatieren wie folgt:

    sudo mkfs.ext4 -L megadaten /dev/sda1

    Das Problem das ich jetzt habe ist, dass ich nicht wirklich weiß was ich da mache und das beunruhigt mich. Im Prinzip müsste ich jetzt ein Buch über Samba durchlesen und Ende Januar weiter fortfahren mit dem Ausprobieren.

    Ich will doch einfach nur zwei 4TB Festplatten an jedem Rechner (Linux/Win7/Win10) verfügbar machen, wo jeder die dort abgelegte Musik hören kann und auch seine eigenen Daten in ein für ihn vorgesehenes Laufwerk speichert. Ursprünglich wollte ich mir von Synology eine Rackstation kaufen. Dann wäre ich wohl jetzt schon fertig. Vielleicht mache ich das auch noch. 2 Platten habe ich ja. Den Pi kann ich für was anderes verwenden.

    Bin eben unentschlossen - mal wieder.

  • Mit dem Befehl "df" im Terminal kannst Du nachsehen, ob die externen Platten überhaupt gemountet sind. Wenn sie da nicht gelistet werden, kann Samba die auch nicht freigeben. Der Mount-Vorgang kann bei permanent angeschlossenen Festplatte über die fstab erfolgen. Hast Du das alles so eingerichtet?

    gparted, cfdisk, fdisk usw. und mkfs schreiben nur die Partitionen und das Filesystem auf die Platten. Um die Platten aber auch wirklich zu verwenden, müssen sie gemountet werden.

    Synology eine Rackstation

    Linux ist ein anspruchsvolles Betriebssystem mit immensen Möglichkeiten... mit einer gekapselten Einheit und deren äußerst beschränkten Funktionen kann man das nicht vergleichen.... Linux ist da deutlich mehr, mit einer deutlich steileren Lernkurve. Deswegen sagte ich ja, fang einfach mal an und sammel Erfahrungen. Die Lösungen kommen alle im Laufe der Zeit... soll heissen, sie brauchen die Zeit des Lernens. Und das Lernen versetzt Dich in die Lage, mit Sachverstand einen eigenen Server betreiben zu können, der möglicherweise die besten Voraussetzungen für den Schutz der digitalen Privatsphäre beinhaltet.

  • Hi Thomas,


    durch experimentieren bin nun schon etwas weiter. "df" bringt mittlerweile folgendes:

    Ich habe mittels

    ls -l /dev/disk/by-uuid/

    die ID von HD01 herausgefunden nicht aber von HD02

    HD01 habe ich in die Datei fstab wie folgt eingetragen:

    UUID=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx /media/HD01 ext4 defaults 0 0

    Für die zweite Platte liefert er mir mit obigem Befehl aber nicht die ID von HD02, nur von HD01.

    Wenn ich aber das hinbekommen habe, dürfte mit dem automatischen mounten der beiden Laufwerke nichts mehr schief gehen, oder ?

    Der nächste Schritt wäre die Benutzerverwaltung, bin ich richtig ?

    Ach, die Festplatten mussten tatsächlich vorher mal formatiert werden wie zuvor von mir geschrieben. Dann ließen sie sich mounten. Vorher nicht.

    Gruß

  • Die UUIDs lässt man sich besser mit einem dieser 2 Befehle anzeigen:

    # blkid -o list

    oder

    # lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL,UUID,TYPE


    BTW, ein Rat... mach Dir eine einfache Text-Liste, in der Du alle neu gelernten Befehle alphabetisch sortiert einträgst. Und dann, so ab Spalte 80 (oder so) trägst Du hinter jedem Befehl eine kurze Erklärung mit wenigen Worten ein... so das Du danach suchen kannst und Dich dann auch erinnerst, welcher Befehl was wie tut.

  • Hi Thomas,

    irgendwo liegt der Wurm drin was die 2te Festplatte angeht. Mit "df" bekomme ich obige Liste angezeigt wenn ich deine beiden Befehle nutze ist die 2te Platte aber nicht dabei. Wenn ich "parted" starte und dort versuche mit "select sdb1" die HD02 auszuwählen, sagt er, er fände sie nicht. Unten ist auch zu sehen, das lediglich eine sdc1 existiert. Die habe ich aber nicht erstellt. Um Verwirrung komplett zu machen heißt die sda1 jetzt HD0 statt HD01! ???

    Nachdem ich diese UUID in die fstab eingetragen habe sieht es nach einem Neustart so aus.

    Hm, ich denke nicht das beide nun HD0 heißen sondern das da die letzte Ziffer abgeschnitten wurde.

    "df" liefert jedenfalls jetzt das hier:

    Und die HD heißt jetzt auch sdb1 und nicht sdc1.

    Kannst du abschließend noch welche Tipps geben ?

    Mit den Befehlen aufschreiben und kommentieren hast du Recht. Weißt du woran mich das erinnert ? An MS-DOs 5.0-6.22 (7.0 nicht zu vergessen). Undokumentierte Schalter usw.

    Gibt's eine I-Net Seite wo sich jemand diese Mühe schon gemacht hat ?

    Für heute reicht es jedenfalls und mein Dank ist dir bis hierhin sicher.

  • Das funktioniert so nicht:

    └─sda1 ext4 3.7T /media/HD0 fd57cf92-0163-41d8-83eb-a127be16a725 part

    └─sdb1 ext4 3.7T /media/HD0 1c3134b4-e919-4a07-a313-3c800e0e3746 part

    Jedes Device muss einen eigenen Mountpoint haben, also z.b. HD0 und HD1. Zeig mal den Inhalt Deiner fstab, mal sehen, ob die syntaktisch korrekt ist.

  • Gerne

    Code
    proc            /proc           proc    defaults          0       0
    PARTUUID=6c586e13-01  /boot           vfat    defaults          0       2
    PARTUUID=6c586e13-02  /               ext4    defaults,noatime  0       1
    # a swapfile is not a swap partition, no line here
    #   use  dphys-swapfile swap[on|off]  for that
    //192.168.178.34/SambaCarsten    /home/pi/shares/Carsten    cifs    defaults,noauto,nofail,username=pi,passwd=raspberry    0    0
    UUID=fd57cf92-0163-41d8-83eb-a127be16a725 /media/HD01 ext4 defaults 0 0
    UUID=1c3134b4-e919-4a07-a313-3c800e0e3746 /media/HD02 ext4 defaults 0 0

    Einmal editiert, zuletzt von Tuereintreter (15. Dezember 2019 um 23:06)

  • Hm, ich denke nicht das beide nun HD0 heißen sondern das da die letzte Ziffer abgeschnitten wurde.

    "df" liefert jedenfalls jetzt das hier:

    Das ist natürlich hier im Posting nicht erkennbar. Klar, das ist eine gute Erklärung.

    Und die HD heißt jetzt auch sdb1 und nicht sdc1.

    Das hängt damit zusammen, wie der Linux-Kernel in zeitlicher Reihenfolge die vorhandene Hardware erkennt. Deswegen sollte man beim Mounten in der fstab auch die UUIDs verwenden, weil die Device-Symlinks (sda,sdb oder sdc) leider auch ein wenig zufällig sein können. Aber wie gesagt, das ist nur eine Eigenart der Kernelverarbeitung, aber kein echtes Problem.

    Weißt du woran mich das erinnert ? An MS-DOs....

    Das liegt daran, dass Linux-Betriebssysteme üblicherweise keine grafischen Betriebssystem sind, wie z.B. Windows. Das grafische Environment wird einfach quasi auch nur als Programmsammlung im nicht-grafischen Linux gestartet. Das hat den Vorteil, dass man nicht nur eine einzige grafische Oberfläche hat, wie bei Windows, sondern man kann aus verschiedenen wählen... von anspruchsvoll bis effektiv, in Abhängigkeit von der Leisungsfähigkeit des Rechners.

    Gerne

    Die fstab sieht meiner Einschätzung nach ok aus, ich sehe da zumindest keine groben technischen Patzer.... bis auf die Verwendung eines allgemeinen bekannte standard-users und dessen standard-password. Das solltest Du im laufe der Zeit ändern.

    Aber die Schlussfrage ist: Funktioniert es jetzt wie gewünscht?

  • Danke Thomas und Hoschi:

    nofail habe ich dazu geschrieben und noauto auf auto geändert.

    Zugriff von meinem Win10 Rechner habe ich dennoch nicht. Er sollte mir eigentlich die Laufwerke anzeigen. Ich habe noch weitere Nutzer angelegt. In der smb.cfg sieht es so aus:

    Und in der fstab mittlerweile so:

    Code
    proc            /proc           proc    defaults          0       0
    PARTUUID=6c586e13-01  /boot           vfat    defaults          0       2
    PARTUUID=6c586e13-02  /               ext4    defaults,noatime  0       1
    # a swapfile is not a swap partition, no line here
    #   use  dphys-swapfile swap[on|off]  for that
    //192.168.178.34/SambaCarsten    /home/pi/shares/Carsten    cifs    defaults,auto,nofail,username=pi,passwd=raspberry    0    0
    //192.168.178.34/SambaUlrich    /home/pi/shares/Ulrich    cifs    defaults,auto,nofail,username=pi,passwd=raspberry    0    0
    //192.168.178.34/SambaNiels    /home/pi/shares/Niels    cifs    defaults,auto,nofail,username=pi,passwd=raspberry    0    0
    UUID=fd57cf92-0163-41d8-83eb-a127be16a725 /media/HD01 ext4 nofail,auto,defaults 0 0
    UUID=1c3134b4-e919-4a07-a313-3c800e0e3746 /media/HD02 ext4 nofail,auto,defaults 0 0

    Natürlich habe ich mit

    sudo useradd - /bin/false USERNAME

    und

    sudo smbpasswd -a USERNAME

    und

    sudo mkdir -p /home/pi/Shares/USERNAME

    und

    sudo usermod - s /usr/sbin/nologin USERNAME

    und

    sudo chmod 777 -R /home/pi/Shares/USERNAME

    für jeden User ausgeführt und zum Schluß dann noch

    sudo service smbd reload

    ausgeführt.

    Win 10 sollte normal die User anzeigen, oder ?

  • Gib auf dem Samba-Server als root

    testparm

    ein.... um festzustellen, ob Fehler in de smb.conf enthalten sind. Ich würde sagen, mindestens einer:


    [Freigabe]

    public = no

    red only = no

    path= /home/pi/shares/Carsten

    user = smb

    Der Parameter user sagt mir nichts, und in der Man-Page finde ich den auch nicht.... was sagt testparm dazu? Darüber hinaus fehlt der Parameter browseable = yes, der nur für die "Homes" gesetzt ist. Das kann die Ursache dafür sein, dass Windows die Dirs nicht listet.

    Win 10 sollte normal die User anzeigen, oder ?

    Nein, windows zeigt nur die Freigaben an. UserName und Pwd muss der Windows-Client beim Mounten nur an den Samba-Server zur Berechtigungsprüfung übertragen. Windows selber muss die dahinterstehenden User jedoch nicht kennen. Das bedeutet, jeder beliebige Windows-User könnte die Samba-Freigaben mounten, wenn ihm Username und SMB-Password des Servers bekannt sind.

    • Offizieller Beitrag

    Die Option auto braust Du nicht extra anzugeben, die ist schon in defauls enthalten. Siehe dazu hier: https://wiki.ubuntuusers.de/mount/#Optionen

    testparm

    :thumbup:

    [homes]
    browseable = yes

    Das sollte auf no stehen. Ein Samba-User hat imho nichts im Homedir eine Linuxusers verloren.

    user sagt mir auch nichts, deshalb (erstmal) raus.

    comment fehlt.

    browseable in der Freigabe brauchte ich zumindest bisher nicht.

    Versuchs mal so:

    Code
    [Freigabe]
    comment = SambaFreigabe
    writable = yes
    guest ok  = no
    path= /home/pi/shares/Carsten
  • So, ich habe mal eure Angaben umgesetzt. "testparm" bringt nun einmal das:

    Denke mal ist dann OK, aber das folgende sagt mir nix:

    Code
    Broadcast message from root@raspberrypi (Mon 2019-12-16 19:51:15 GMT):
    
    Password entry required for 'Password for pi@//192.168.178.34/SambaUlrich:' (PID                                                                           640).
    Please enter password with the systemd-tty-ask-password-agent tool:
    
    
    Broadcast message from root@raspberrypi (Mon 2019-12-16 19:52:45 GMT):
    
    Password entry required for 'Password for pi@//192.168.178.34/SambaNiels:' (PID                                                                           647).
    Please enter password with the systemd-tty-ask-password-agent tool:

    Und warum tauche ich da nicht auf ? (Carsten)

  • Also im Windows 10 Netzwerk gibt es unter Computer jetzt einen PC namens SAMBA. Die Anmeldung mit pi / raspberry noch mit SambaCarsten und dem Passwort dazu funzt.

    In den Tiefen des I-Nets fand ich das hier:

    sudo systemctl stop systemd-ask-password-wall.service

    Nur warum soll man einen Password Dienst abschalten ?

    Einmal editiert, zuletzt von Tuereintreter (16. Dezember 2019 um 21:04)

  • Nur warum soll man einen Password Dienst abschalten ?

    Das sollte man mMn auf gar keinen Fall tun.

    https://www.freedesktop.org/software/syste…le.service.html

    Das sollte auf no stehen. Ein Samba-User hat imho nichts im Homedir eine Linuxusers verloren.

    Das steht bei mir auch auf No. Ich denke, der Hintergrund für Yes ist die Anzeige in Filemanagern, die das Netzwerk absuchen. Ich will auch nicht, dass die da sichtbar sind, jeder User kriegt sein Samba-Home stillschweigend gemountet, er muss das weder wissen, noch von den anderen wissen oder die sehen, noch irgendwas dafür tun.

    @Türeintreter.... Nachtrag:

    Du hast (siehe oben) diese Mountbefehle in der fstab eingetragen:

    Spoiler anzeigen

    //192.168.178.34/SambaCarsten /home/pi/shares/Carsten cifs defaults,auto,nofail,username=pi,passwd=raspberry 0 0

    //192.168.178.34/SambaUlrich /home/pi/shares/Ulrich cifs defaults,auto,nofail,username=pi,passwd=raspberry 0 0

    //192.168.178.34/SambaNiels /home/pi/shares/Niels cifs defaults,auto,nofail,username=pi,passwd=raspberry 0 0

    Es ist NICHT notwendig, die Sambauser carsten, ulrich und niels auf dem Sambaserver anzulegen, weil die gar nicht verwendet werden. Es werden immer nur die Rechte vom User pi verwendet, weil unter diesem User und dessen Pwd gemountet wird. Wenn Du userbezogene Mounts haben willst und Berücksichtung individueller Rechte, muss Du auch in den Mount jeweils den betroffenen User eintragen.

    2 Mal editiert, zuletzt von WinterUnit16246 (16. Dezember 2019 um 21:28)

    • Offizieller Beitrag

    Versuche mal für SambaCarsten:

    Code
    [SambaCarsten]
    comment = SambaCarsten
    writable = yes
    guest ok = no
    path= /home/pi/shares/Carsten
    force user = Carsten

    Der User Carsten muss allerdings im System als echter User existieren und mit selben Namen auch ein Samba-User sein. Wenn ich das oben richtig gesehen habe, dann müsste das passen.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!