Inhaltsverzeichnis

Samba

Samba ist ein Dienst der auf einem Linux-System, Freigaben für Windows-PCs bereitstellen kann.

Wenn man innerhalb einer Ordnerfreigabe einen Link zu einer Datei oder einem anderen Ordner erstellt, dann wird
man diesen nicht sehen. Folgende Einstellungen müssen zunächst in der „global“ Sektion der Samba-Konfiguration gesetzt werden.

[global]
...
follow symlinks = yes
wide links = yes
unix extensions = no

Samba Benutzer

Userauthentication

Damit Samba lokale Benutzer authentifizieren kann, benötigt es diese Konfiguration.

[global]
...
   security = user
...
# Authentication
   encrypt passwords = true
   guest account = nobody
   passdb backend = tdbsam
   obey pam restrictions = yes
   unix password sync = yes
   passwd program = /usr/bin/passwd %u
   passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
   pam password change = yes
   map to guest = bad user
   usershare allow guests = yes

Eine mögliche Freigabe könnte dann so aussehen:

[<FREIGABENAME>]
  comment = <BESCHREIBUNG>
  path = <OFAD_ZU_VERZEICHNIS>
  browseable = yes
  writeable = yes
  read only = no
#  guest ok = yes
  valid users = user1, user2, user3
  force user = user2
  force group = sambashare
  force directory mode = 0777
  force create mode = 0777

force user bedeutet, dass neue Dateien und Ordner den angegebenen Benutzer als Besitzer erhalten.
Der hier verwendete Benutzer user2, muss auch unter valid users angegeben werden.

User anlegen

Mit dem Programm smbpasswd lassen sich Samba Benutzer anlegen.
Beispiel:

smbpasswd -a <USER_NAME>

User Anzeigen / Editieren

Mit dem Programm pdbedit kann man Samba-Benutzer editieren oder auflisten.
Beispiel auflisten:

pdbedit -L

Samba und Active Directory

In folgendem Text wird beschrieben wie man einen Linux Rechner über SSSD in eine
Active Directory Domäne als Mitgliedserver einbindet.
Diese Anleitung wurde mit Ubuntu 20.04 erstellt.
Als Hilfe dienten div. Internetseiten wie z.B. https://ubuntu.com/server/docs

Vorbereitungen

Abhängigkeiten installieren und konfigurieren:

apt install sssd-ad sssd-tools realmd adcli krb5-user

Bei der Installation wird der default realm für Kerberos abgefragt hier den Domänennamen mit TLD in Großbuchstaben angeben.

der Domäne beitreten

Erreichbarkeit der Domäne prüfen

realm -v discover <DOMAINNAME.TLD>

Hier wird die Domände per DNS abgefragt.

Der Domäne beitreten kann man danach wie folgt

realm join [-v -U <USERNAME>@<DOMAINNAME.TLD> #DOMAIN IN GROßBUCHSTABEN ANGEBEN] <DOMAINNAME.TLD>

Dabei wird die Datei /etc/sssd/sssd.conf angelegt, welche die konfiguration für sssd für jede einzelne Domäne enthält.

DNS-Registrieren

Damit im AD DNS-Server der Linux-Host eingetragen wird, folge man der Anleitung unter DNS-Registrieren.

Authentifizierung testen

Man sollte nun die Benutzer und Gruppen des AD auslesen können.
Für Benutzer:

getent passwd <USERNAME>@<DOMAIN.TLD>

Für Gruppen:

getent group <GROUPNAME>@<DOMAIN.TLD>

Möchte man, dass für einen AD Benutzer auch automatisch ein lokaler Home-Ordner erstellt wird, muss dies erst aktiviert werden.

pam-auth-update --enable mkhomedir

Samba Konfiguration

Wenn noch nicht erfolgt, installiert man nun Samba.

apt install samba smbclient cifs-utils

Danach ändert/fügt man folgendes in der Datei /etc/samba/smb.conf

...
workgroup = <DOMAINNAME> #IN GROßBUCHSTABEN ANGEBEN
...
security = ads
realm = <DOMAINNAME.TLD> #IN GROßBUCHSTABEN ANGEBEN
  
# Default ID mapping configuration for local BUILTIN accounts
idmap config * : backend = tdb
idmap config * : range = 3000-7999

# ID mapping for AD-Domain
idmap config MARIEN-KH-MKH : backend = ad
idmap config MARIEN-KH-MKH : schema-mode = rfc2307
idmap config MARIEN-KH-MKH : range = 10000-999999

Vor dem Neustart des Samba-Daemons noch die Konfig testen und mit net der Domäne beitreten (auch wenn diese bereits mit sssd geschehen ist).

testparm -v
net ads join -U <USERNAME>@<DOMAINNAME.TLD> #IN GROßBUCHSTABEN ANGEBEN <DOMAINNAME.TLD>

PAM konfigurieren

PAM (Pluggable Authentication Modules) wird benötigt um Software Zugriffsrechte auf Linuxgruppen zu ermöglichen. Diese Gruppen werden benötigt um z.b. auf Soundkarten oder USB-Sticks u.a. zuzugreifen. Die Domänenbenutzer haben diese Rechte nur wenn PAM ihnen die Gruppen zuweist.
Dies wird nur benötigt, wenn man am Linuxrechner mit einem Domänenbenutzer arbeiten möchte.
So wird PAM eingerichtet.

vi /etc/security/group.conf

Inhalt unten einfügen:

* ; * ; * ; Al0000-2400 ; floppy, audio, cdrom, video, usb, plugdev, users

Nun können die Freigaben im Samba nach belieben und mit Domänenbenutzer/-gruppen eingerichtet werden.