Ordnerfreigabe installieren, einrichten und absichern (Samba)

  • Ordnerfreigabe installieren, einrichten und absichern

    Wer eine CIFS/Samba Freigabe unter Linux einrichten möchte kann dies mit relativ wenigen Schritten wie folgt durchführen.


    Zuerst installieren wir das Samba Paket via Terminal:

    Code: Debian/Ubuntu
    sudo apt install samba
    Code: CentOS/Fedora/OpenSuse
    sudo zypper install samba      <- Kann auch yum anstatt zypper sein. Unter OpenSuse kann man das Paket auch über yast2 installieren.

    Es werden alle notwendigen Pakete angezeigt und wir bestätigen die installation.

    Nach Abschluss prüfen wir mit:

    Code
    sudo systemctl status smbd

    ob der Samba Dienst gestartet und bereit ist. (Active: active (running))


    Nun können wir die Freigabe einrichten. Hierzu editieren wir die Config Datei in /etc/samba/smb.conf.

    Wichtige Punkte für das "Erscheinen" in der Netzwerkumgebung ist die Angabe von: workgroup sowie public/browsable in der eigentlichen Ordnerfreigabe.

    Code
    [Name der Freigabe]      <- Mit diesem Namen erscheint die Freigabe im Netzwerk
    path = /xxx/xx           <- Ist der Pfad zum lokalen Mountpunkt/Laufwerk
    available =              <- Allgemeine Verfügbarkeit/Zugriff erlaubt
    browsable =              <- Ordner/Freigabe wird in der Netzwerkumgebung angezeigt
    public =                 <- Ohne User/Passwortlogin erreichbar
    writeable =              <- Schreib/Löschrechte verfügbar
    valid users =            <- Zum Login/Anmelden erlaubte Benutzer
    hosts allow =            <- Netzwerkumgebung/IP Range die darauf Zugriff haben darf

    Valid Users steuert den Zugang mit Benutzername und Passwort (muss separiert eingerichtet werden!)
    Hosts allow steuert den Zugang von welcher IP / Netzwerkumgebung zugegriffen werden darf. Das kann auch für eine einzelne Maschine gelten!
    Diese Einstellung ist besonders wichtig wenn der Server im DMZ steht oder ein DynDNS Service diesen im Internet verfügbar macht.


    Samba Freigabe So sieht das dann in einem Beispiel aus.


    Nun setzen wir noch das Passwort für den User für die Freigabe in Samba:

    Code
    sudo smbpasswd mybetacube

    Wer eine Firewall im System aktiv hat muss die Ports noch entsprechend öffnen:

    Code: Debian/Ubuntu
    sudo ufw allow 139
    sudo ufw allow 445
    Code: CentOS/Fedora/OpenSuse
    sudo firewall-cmd --permanent --add-port=139/tcp
    sudo firewall-cmd --permanent --add-port=445/tcp
    sudo firewall-cmd --reload

    Nun starten wir den Dienst erneut durch und ab diesem Zeitpunkt habt ihr Zugriff über euer Netzwerk auf die Freigabe.

    Code
    sudo systemctl restart smbd

    Voila :thumbup:



    Quellen

    Samba Quick Reference Ubuntu Wiki

  • Ordnerfreigabe beim Bootvorgang einhängen

    Wer auf einem Basis Debiansystem oder einem älteren Ubuntu unterwegs ist hat leider den Automount der GUI nicht zur Wahl.

    Hierfür müssen wir einen Eintrag in der Datei /etc/fstab hinterlegen. Dazu später mehr.


    Zuerst prüfen wir im Terminal mit der Eingabe von:

    Code
    id

    unsere UserID und GruppenID. Die dürfte in unserem Beispiel als erster Benutzer bei 1000 und 1000 sein. Die Nummern brauchen wir dann später in der /etc/fstab Datei.


    Nun wechseln wir in das Homeverzeichnis unseres Benutzers und erstellen eine Datei die unseren Samba Login und die Domain beinhaltet:

    Code
    cd /home/{DeinBenutzer}
    sudo nano ./smbcredentials

    Der Inhalt sieht dann wie folgt aus:

    Code
    username=SambaUser
    password=SambaUserPasswort
    domain=workgroup                <- z.b. Wenn du eine eigene Domain erstellt hast trage sie entsprechend ein.

    Speichert die Datei ab (CTRL+x). Um sicher zu gehen das nur "root" sie öffnen und anschauen kann führt ihr nun noch folgenden Befehl aus:

    Code
    sudo chmod 600 ./smbcredentials

    Nun erstellen wir noch einen MountPunkt:

    Code
    sudo mkdir /media/share        <- "share" ist nur ein Beispiel, so wird es im Dateimanager angezeigt

    Im letzten Schritt erstellen wir nun den Eintrag in die /etc/fstab:

    Code
    //{NameVondeinemServer.local}/{NameDerFreigabe} /media/share    cifs    vers=3.0,credentials/home/{DeinBenutzer}/.smbcredentials,iocharset=utf8,gid={GruppenID},uid={UserID},file_mode=0777,dir_mode=0777    0    0

    In unserem Beispiel würde dass dann so aussehen:

    Code
    //mybetacube.local/raid /media/raid    cifs    vers=3.0,credentials/home/Cube/.smbcredentials,iocharset=utf8,gid=1000,uid=1000,file_mode=0777,dir_mode=0777    0    0

    Wenn sich nun nirgends ein Fehlerteufel eingeschlichen hat, könnt ihr sofort mit:

    Code
    mount -a

    den Share einhängen lassen. Prüft kurz eure Berechtigung zum schreiben und löschen.


    Voila. :thumbup: