159 - Directoryservices konfigurieren und in Betrieb nehmen

OpenLDAP Samba Share

Diese Anleitung geht davon aus, dass die folgenden Schritte bereits durchgeführt wurden und alles funktioniert:

https://www.howtoforge.de/anleitung/so-installierst-du-openldap-unter-ubuntu-22-04/

Installation der notwendigen Pakete:

Installiere Samba und die LDAP-Unterstützungspakete:

sudo apt update
sudo apt install samba smbldap-tools libnss-ldap libpam-ldap

Konfiguration von NSS und PAM für LDAP:

Während der Installation wirst du aufgefordert, die LDAP-Konfiguration bereitzustellen. Gib dabei die Details deines OpenLDAP-Servers an, wie z.B. die Basis-DN und den LDAP-Server-URI.

Bearbeite die Datei /etc/nsswitch.conf, um LDAP in die Namensauflösung einzubeziehen:

sudo nano /etc/nsswitch.conf

Ändere die Zeilen passwd, group und shadow wie folgt:

# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd:         compat ldap
group:          compat ldap
shadow:         compat ldap
gshadow:        files

hosts:          files dns
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

Konfiguration von Samba für LDAP:

Erstelle eine Sicherungskopie der aktuellen Samba-Konfigurationsdatei:

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

Bearbeite die Samba-Konfigurationsdatei:

sudo nano /etc/samba/smb.conf

Füge oder passe folgende Parameter im [global]-Abschnitt an:

[global]
    workgroup = test.local
    security = user
    passdb backend = ldapsam:ldap://ldap.test.local
    ldap admin dn = cn=admin,dc=test,dc=local
    ldap suffix = dc=test,dc=local
    ldap user suffix = ou=Sales
    ldap group suffix = ou=group
    ldap machine suffix = ou=Computers
    ldap passwd sync = yes
    ldap ssl = no

Einrichten des Samba-Administrators:

Füge den LDAP-Administrator als Samba-Benutzer hinzu:

sudo smbpasswd -W
ldapadd -Q -LLL -Y EXTERNAL -H ldapi:/// -f /usr/share/doc/samba/examples/LDAP/samba.ldif

Gib das Passwort des LDAP-Administrators ein.

Erstellen eines Samba-Shares:

Füge am Ende der Datei /etc/samba/smb.conf folgenden Abschnitt hinzu:

[shared]
    path = /srv/samba/shared
    browseable = yes
    writable = yes
    guest ok = no
    valid users = john.doe

Erstelle das Verzeichnis und setze die Berechtigungen:

sudo mkdir -p /srv/samba/shared
sudo chown -R nobody:nogroup /srv/samba/shared
sudo chmod -R 777 /srv/samba/shared

User Konfigurieren:

Der User sollte schlussendlich eine ähnliche konfiguration wie die folgende haben.

root@ldap:~# ldapsearch -x -H ldap://ldap.test.local -b "uid=john.doe,ou=Sales,dc=test,dc=local"
dn: uid=john.doe,ou=Sales,dc=test,dc=local
objectClass: inetOrgPerson
objectClass: sambaSamAccount
objectClass: posixAccount
cn: John Doe
sn: Doe
mail: john.doe@test.local
uid: john.doe
sambaPasswordHistory: 00000000000000000000000000000000000000000000000000000000
 00000000
sambaAcctFlags: [U          ]
loginShell: /bin/bash
homeDirectory: /home/john.doe
uidNumber: 15258
gidNumber: 4549
sambaPwdLastSet: 1731871539
sambaSID: S-1-5-21-1055546307-1221338049-756278767-1001
sambaNTPassword: A9FDFA038C4B75EBC76DC855DD74F0DA

sambaSID: Kann über den folgenden befehl generiert werden. (muss hintendran noch eine 4 Stellige nummer konfiguriert werden)

root@ldap:~# net getlocalsid
SID for domain LDAP is: S-1-5-21-1055546307-1221338049-756278767

sambaNTPassword: To make the NT Password you can use the following Site: https://www.browserling.com/tools/ntlm-hash

Machen würde man es mit dem folgenden ldif file:

dn: uid=john.doe,ou=Sales,dc=test,dc=local
changetype: modify
add: objectClass
objectClass: sambaSamAccount
objectClass: posixAccount
-
add: loginShell
loginShell: /bin/bash
-
add: homeDirectory
homeDirectory: /home/john.doe
-
add: uidNumber
uidNumber: 15258
-
add: gidNumber
gidNumber: 4549
-
add: sambaSID
sambaSID: S-1-5-21-1055546307-1221338049-756278767-1001
-
add: sambaNTPassword
sambaNTPassword: A9FDFA038C4B75EBC76DC855DD74F0DA

Um das File dann auszuführen benutzen sie dann denn folgenden befehl:

ldapmodify -x -D "cn=admin,dc=test,dc=local" -W -H ldap://ldap.test.local -f modify_john_doe.ldif
smbpasswd -a john.doe

Neustart der Dienste

Starte die Samba-Dienste neu, um die Änderungen zu übernehmen:

sudo systemctl restart smbd nmbd

Testen

Linux

smbclient //192.168.19.3/shared -U john.doe

image.png

Windows

image.png

Samba OpenLDAP AD Integration

Installation der benötigten Pakete

sudo apt update
sudo apt install samba smbclient krb5-user winbind libpam-winbind libnss-winbind -y

Während der Installation kommen die folgenden Fenster die man befüllen müsste:

Domain in Grossbuchstaben:

image.png

Für eine Standalone-Umgebung zu erstellen, gib den Hostnamen des Servers ein.

image.png

Für eine Standalone-Umgebung zu erstellen, gib den Hostnamen des Servers ein.

image.png

Initialisierung der Domain

Entfernen der Standardkonfigurationsdatei:

sudo rm /etc/samba/smb.conf

Provisionieren der Domain:

sudo samba-tool domain provision --use-rfc2307 --interactive

image.png

DNS Konfiguration

Deaktivieren des systemd-resolved Dienstes:

sudo systemctl disable --now systemd-resolved

image.png

Anpassen der /etc/resolv.conf:

sudo rm /etc/resolv.conf
sudo nano /etc/resolv.conf

Inhalt:

nameserver 127.0.0.1
search <deine-domain.local>

Konfiguration von /etc/samba/smb.conf

Füge die Konfiguration hinzu:

[global]
dns forwarder = <externer-DNS-IP>

Starten und Aktivieren der Dienste

sudo systemctl start smbd nmbd winbind
sudo systemctl stop smbd nmbd winbind
sudo systemctl start samba-ad-dc
sudo systemctl enable samba-ad-dc

Testen der Internetverbindung

host -t SRV _ldap._tcp.mregli.com

image.png

ping google.com

image.png

Benutzerverwaltung

Benutzer erstellen

Erstellen eines neuen Benutzers:

sudo samba-tool user create <username> <password>

image.png

Benutzer einer Gruppe hinzufügen

Gruppe erstellen:

sudo samba-tool group add "GroupName"

Benutzer zur Gruppe hinzufügen:

sudo samba-tool group addmembers "GroupName" "username"

image.png

Benutzer anzeigen

Liste aller Benutzer im Active Directory:

sudo samba-tool user list

image.png

Active Directory Join

Öffnen der "Advanced System Settings

image.png

Gehe zum Reiter "Computer Name" und wähle unten "change".

image.png

Danach einfach den Domain-Button auswählen und die konfigurierte Domain eingeben. Ebenfalls kontrollieren, ob der Computername richtig ist.

image.png

Um sich zur Domain zu verbinden, kannst du entweder den Administrator nutzen oder einen User mit den richtigen Berechtigungen.

image.png

Wenn alles richtig eingestellt ist, müsste dieses Fenster erscheinen.

image.png

Danach muss man den Computer neu starten, damit er vollständig verbunden werden kann.

image.png

Jetzt kann man sich mit dem erstellten Active Directory-Benutzer anmelden.

image.png

Share erstellen

Ordner erstellen und Berechtigungen für die Freigabe setzen

sudo mkdir -p /srv/samba/share
sudo chmod 770 /srv/samba/share

Füge die Freigabe in die smb.conf ein.

sudo nano /etc/samba/smb.conf

Ganz unten hinzufügen.

[share]
    path = /srv/samba/share
    read only = no
    create mask = 0666
    directory mask = 0777
    valid users = @samba-share

Samba testen

image.png