Skip to content

Installation Samba Fileserver Linux

Tip

Erstellte Kopie des DC starten und "I copied it" auswählen, damit das Netzwerk eine neue MAC addresse hat und dann bei Vorkonfiguration weiterfahren. Falls keine Kopie vorhanden ist bei Vorbereitung beginnen.

Vorbereitung

  1. LF Starten
  2. AD/DC LS starten
  3. Neue Kopierte LS starten Einloggen -> vmadmin Riethuesli>12345
  4. Internetverbindung/DNS auflösung testen -> ping google.com
  5. sudo passwd root (Aktiviert den Root benutzer, und gibt ihm ein passwort)
  6. reboot
  7. einloggen -> root -> gesetztes PW

Pakete Installieren

  1. apt update && apt upgrade -y
  2. Bei folgenden befehlen das Setup/Meldungen abbrechen, neustart am ende
  3. apt install samba -y
  4. apt install libpam-heimdal -y
  5. apt install heimdal-clients -y
  6. apt install ldb-tools -y
  7. apt install winbind -y
  8. apt install libpam-winbind -y
  9. apt install smbclient -y
  10. apt install libnss-winbind -y
  11. samba -V (Version 4.15.13-Ubuntu)
  12. reboot
  13. apt update (Alle pakete sind aktuell.)

Vorkonfiguration

Netzwerk

  1. cp /etc/netplan/01-configVMAufbau.yaml /home/vmadmin
  2. mv /etc/netplan/01-configVMAufbau.yaml /etc/netplan/config.yaml
  3. nano /etc/netplan/config.yaml
  4. adresses zu 192.168.210.43 ändern, unter nameserver die search zeile hinzufügen und die dns server adressen ändern
/etc/netplan/config.yaml
# This file is generated from information provided by
# the datasource.  Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
    version: 2
    renderer: networkd
    ethernets:
        ens33:
            addresses:
              - 192.168.210.43/24
            gateway4: 192.168.210.1
            nameservers:
                search: [nachname.m300]
                addresses: [192.168.210.41,192.168.210.1]
  1. netplan apply (warnungen ignorieren)
  2. ip -color a zum überprüfen
  3. ping auf standardgateway (192.168.210.1 und eine url zum testen)
  4. nano /etc/ssh/sshd_config SSH Aktivieren(1)
    /etc/ssh/sshd_config
    ...
    #LoginGraceTime 2m
    #PermitRootLogin prohibit-passwordyes
    #StrictMode yes
    ...
    

Rechnername

  1. hostnamectl set-hostname fs1
  2. nano /etc/cloud/cloud.cfg -> preserve_hostname: true
  3. reboot und mit hostname testen ob name immer noch korrekt

IP mit rechner koppeln

  1. echo 192.168.210.43 fs1.nachname.m300 fs1 >> /etc/hosts
  2. mit hostname -f testen

Daten über DNS Server nachführen

  1. rm /etc/resolv.conf
  2. ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
  3. testen mit resolvectl status

Konfiguration Samba

Domäne Joinen

  1. Am besten via SSH/PuTTy vom Windows client connecten
  2. nano /etc/krb5.conf
    /etc/krb5.conf
    1
    2
    3
    4
    [libdefaults]
        default_realm = NACHNAME.M300
        dns_lookup_realm = false
        dns_lookup_kdc = true
    
  3. nano /etc/samba/smb.conf anpassen, Rest löschen.
    /etc/samba/smb.conf
    # Global parameters
    [global]
        workgroup = NACHNAME
        realm = NACHNAME.M300
        security = ADS
        winbind use default domain = yes
        winbind refresh tickets = Yes
        template shell = /bin/bash
        idmap config * : range = 10000 - 19999
        idmap config NACHNAME : backend = rid
        idmap config NACHNAME : range = 1000000 - 1999999
        inherit acls = Yes
        store dos attributes = Yes
        vfs objects = acl_xattr
    
Erklärung der Zeilen

workgroup = NACHNAME
Hier wird der NetBIOS-Name der Domäne angegeben. Auch wenn der Dateiserver Mitglied im AD ist, heisst der Parameter workgroup.

realm = NACHNAME.M300
Bei dem realm handelt es sich um die FQDN-Information für die Kerberos-Domäne. Für diesen Realm wird sich der Samba-Server einen KDC suchen. Beim Key Distribution Center (KDC) handelt es sich um die zentrale Vergabestelle der Kerberos-Tickets für die Authentifizierung. Bei uns ist das KDC der DC.

security = ADS
Damit legen Sie fest, dass Ihr Server ein Mitglied in einer AD-Domäne ist.

winbind use default domain = yes
Wenn wir nur eine Domäne betreiben, können wir mit diesem Parameter dafür sorgen, dass nur die Benutzernamen von winbind übergeben werden, ohne die Domäne vor den Namen zu stellen. Wenn wir aber Vertrauensstellungen zu anderen Domänen herstellen wollen, müssen wir den Parameter auf no setzen. Hier haben wir nur eine Domäne.

winbind refresh tickets = yes
Wenn der Benutzer angemeldet ist und das Ticket abläuft, werden so Kerberos-Tickets automatisch erneuert.

template shell = /bin/bash
Dieser Parameter darf auf gar keinen Fall vergessen werden. Ohne ihn kann sich ein Benutzer aus dem Active Directory zwar über ssh anmelden. Er er wird aber sofort wieder abgemeldet, da für ihn im Active Directory keine Shell hinterlegt ist. Setzen Sie diesen Parameter nicht, ist die Standardshell /bin/false. Damit können Sie verhindern, dass sich ein Benutzer über ssh oder über die lokale Konsole anmeldet.

idmap config * : range = 10000 - 19999
Neben den Gruppen und Benutzern, die Sie als Administrator anlegen, gibt es noch die Builtin- Groups. Diese Gruppen haben eine eigene verkürzte SID. Für diese Gruppen müssen Sie auch das ID-Mapping konfigurieren: Die Konfiguration der Built-in-Groups erfolgt über den Stern * in idmap config * : range = 10000 - 19999.

idmap config NACHNAME : backend = rid
Die IDs der Benutzer werden aus der RID der AD-Benutzer generiert.

idmap config NACHNAME : = 1000000 - 1999999
Hier Iegen Sie den Bereich fest, in dem sich die UIDs der AD-Benutzer befinden sollen. Die beiden Nummernbereiche für die Built-in-Users und für die (von uns selbst angelegten) AD-Benutzer dürfen sich nicht überschneiden. Für die syntaktische Kontrolle dieser zentralen Konfigurationsdatei /etc/samba/smb.conf steht Ihnen das Kommando testparm zur Verfügung

  1. net ads join -U administrator (2)
  2. Prüfen mit net ads testjoin
  3. winbind Daemon mit winbindd<==(2 d) starten
  4. mit ps ax | grep winbindd Prüfen ob winbind läuft, und ein Domain Child hat.
  5. reboot
  6. mit wbinfo -u Prüfen ob die Domänennutzer übernommen wurden, mit wbinfo -g dasselbe mit gruppen
  7. nano /etc/nsswitch.conf Die ersten beiden zeilen Anpassen, den rest lassen
    /etc/nsswitch.conf
    passwd: files systemd winbind
    group: files systemd winbind
    ...
    
  8. reboot
  9. mit gentest passwd vmadmin und gentest passwd administrator Kann geprüft werden ob die benutzer übernommen wurden, und ob die Domänenuser die korrekt UID haben (1'000'000 oder höher)
  10. Kontrollieren ob folgende Services laufen (Sollen sie)
    • service smbd status
    • service nmbd status
    • service winbind status
  11. Folgender Service soll NICHT laufen
    • `systemctl status samba-ad-dc.service

DNS Vervollständigen und Testen

  1. Client starten
  2. DNS Manager starten
  3. Für den Fileserver einen eintrag in der Forward Lookup zone erstellen, und einen PTR in die Reverse lookup zone
  4. mit nslookup durchtesten

Freigaben erstellen

  1. Verzeichnis für die Datenfreigabe anlegen und Berechtigung für alle geben. mkdir /daten chmod 777 /daten
  2. Unterverzeichnisse anhand der Vorgabe im Fallbeispiel anlegen. Und dem Domänen Admins vollzugriff geben. mkdir /daten/firma mkdir /daten/kunde mkdir /daten/public chmod 755 /daten/* chgrp "domain admins" /daten/*
  3. mit ls -lad /daten/* überprüfen
  4. nano /etc/samba/smb.conf anpassen und die Freigaben einfügen
    /etc/samba/smb.conf
    [firma]
        comment = Daten Geschaeftsleitung
        path = /daten/firma
        browsable = yes
        read only = no
        hosts allow = 192.168.210.0/255.255.255.0
    [kunde]
        comment = Interne Daten
        path = /daten/kunde
        browsable = yes
        read only = no
        hosts allow = 192.168.210.0/255.255.255.0
    [public]
        comment = Veroeffentlichte Daten
        path = /daten/public
        browsable = yes
        read only = no
        hosts allow = 192.168.210.0/255.255.255.0# Global parameters
    
  5. Mithilfe von smbclient -L fs1 -U administrator auf dc1 und fs1 testen ob die Freigaben angezeigt werden.
  6. Vom client auf \\fs1 zugreifen und überprüfen ob die Freigaben angezeigt werden.
  7. Auf dem CLient mithilfe von RSAT die vorgebgenen OUs, Gruppen, und Benutzer anlegen und diesen die Rechte auf den Freigaben geben.
Domäne: <name>.m300
Organisationseinheit: St.Gallen und User
User OU in St.Gallen
Gruppen & Benutzer: Alle neuen Objekte in St.Gallen\User
Verzeichnis-Freigaben: Jede Freigabe ein eigenes Verzeichnis auf fs1
Verzeichnisname wird nach dem schema /daten/<freigabename> gebildet
Home-Laufwerk: Ablage auf fs1 unter /daten/home/<benutzername>
als laufwerk M gemapped
Benutzer-Profil: Ablage auf fs1 unter /daten/profil/<benutzername>

Benutzer:

Benutzer Benutzername Gruppe
"GrLeitung"
Gruppe
"GrTechnik"
Gruppe
"GrSupport"
Sandro Kreis skreis X
Stefanie Tecaro stecaro X
Felix Supp fsupp X

Bereichtigungsmatrix:

Freigabename Gruppe
"Domain Admins"
Gruppe
"GrLeitung"
Gruppe
"GrTechnik"
Gruppe
"GrSupport"
firma Vollzugriff schreiben kein zugriff kein zugriff
kunde Vollzugrif schreiben schreiben schreiben
public Vollzugriff schreiben lesen lesen
  1. Auf dem fileserver mit apt install acl das acl paket installieren
  2. mithilfe von getfacl /daten/public z.B. prüfen ob die ACL richtig gesetzt sind.

Homeverzeichnisse einrichten

  1. mkdir /daten/home
  2. mkdir /daten/home/administrator
  3. mkdir /daten/home/skreis
  4. mkdir /daten/home/stecaro
  5. mkdir /daten/home/fsupp
  6. chmod 775 /daten/home/*
  7. chgrp "domain admins" /daten/home/*
  8. mit ls -lad /daten/home/* überprüfen
  9. nano /etc/samba/smb.conf Heimfreigabe einrichten
    /etc/samba/smb.conf
    [homes]
        comment = Home Verzeichnisse
        path = /daten/home/%S
        valid users = %S
        read only = no
        create mask = 0640
        directory mask = 0750
        browsable = no
    [firma] <-- Hier folgen die anderen Freigaben
    
Info

[global]: Hier sind Einstellungen aufgeführt, die für alle Freigaben gelten. Es wird keine Freigabe erzeugt.

[homes]: Achten Sie auf das „s“ am Ende von [homes]. Mit „%S“ wird für jeden Benutzer eine eigene Freigabe erzeugt. Diese section erzeugt also mehrere Freigaben.

[firma], [kunde] und [public]: Für jede section wird eine Freigabe eingerichtet.

  1. Den Jeweiligen benutzern den Besitz seines Homeverzeichnis geben chown administrator /daten/home/administrator/
    chown fsupp /daten/home/fsupp/
    chown skreis /daten/home/skreis/
    chown stecaro /daten/home/stecaro/

  2. Anschliessend die Verzeichnisse via Client und RSAT tool den einzelnen Benutzern als Basisverzeichnis mit Laufwerk M zuweisen.

Servergespeicherte Profile einrichten

  1. Benötigte Ordner anlengen
  2. mkdir /daten/profil
  3. chmod 1770 /daten/profil
  4. chown administrator /daten/profil
  5. chgrp 'domain users /daten/profil
  6. nano /etc/samba/smb.conf
    /etc/samba/smb.conf
    [profil]
        comment = User Profile
        path = /daten/profil
        guest ok = no
        read only = no
        browsable = no
        profile acls = yes
    [homes] <-- Hier folgen die anderen Freigaben
    
  7. Windows Starten -> Domain Users and Groups -> User Konfigurieren -> Profil -> \\fs1.profil\%username%

alt text alt text

Hinzufügen Windows Member Server

Vorbereitung

  1. LF Starten
  2. AD/DC LS starten
  3. Fileserver starten
  4. Neue Kopierte WS starten Einloggen -> vmadmin Riethuesli>12345
  5. Konfiguration der IP Adresse 192.168.210.53
  6. Internetverbindung/DNS auflösung testen -> ping google.com
  7. Mit server der Domäne beitreten.
  8. Neustart und mit Domänenadministrator Anmelden, Prüfen ob Freigegebene Ordner existieren.

IP Konfig Ping zu DC test Domäne Joinen Domäne Beigetreten


Konfiguration Freigabe

Bereichtigungsmatrix:

Freigabename Gruppe
"Domain Admins"
Gruppe
"GrLeitung"
Gruppe
"GrTechnik"
Gruppe
"GrSupport"
personal Vollzugriff schreiben kein zugriff kein zugriff
  1. Unter C:\ ein neues Verzeichnis daten und darin ein verzeichnis personal anlegen -> c:\daten\personal
  2. Verzeichnis Freigeben
  3. NTFS Berechtigungen für das Verzeichnis anhand der Berechtigungsmatrix setzen.

  4. Auf einem Client einloggen und Prüfen ob die neue Freigabe vorhanden ist.


Verzeichnis erstellt Freigabe 1 Freigabe 2 NTFS Berechtigungen


                            /^--^\     /^--^\     /^--^\
                            \____/     \____/     \____/
                           /      \   /      \   /      \
                          |        | |        | |        |
                           \__  __/   \__  __/   \__  __/
      |^|^|^|^|^|^|^|^|^|^|^|^\ \^|^|^|^/ /^|^|^|^|^\ \^|^|^|^|^|^|^|^|^|^|^|^|
      | | | | | | | | | | | | |\ \| | |/ /| | | | | | \ \ | | | | | | | | | | |
      | | | | | | | | | | | | / / | | |\ \| | | | | |/ /| | | | | | | | | | | |
      | | | | | | | | | | | | \/| | | | \/| | | | | |\/ | | | | | | | | | | | |
      #########################################################################
      | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
      | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
  1. SSH Verbindung funktioniert dann via ssh root@192.168.210.43 oder via WinSCP/PuTTy
  2. Tritt der konfigurierten Domäne bei.
  3. andre