Einen Linux Domain Controller mit Samba estellen
June 04, 2018 | Kategorie: tutorials

Samba ist ein kostenloser Domain Controller zum Betrieb Ihrer eigenen Domäne oder ein einfacher Fileserver.

Admins sollen den Einsatz von server schannel = no und server schannel= auto auf allen Samba Domain Controllern wegen der sogenannten ZeroLogon Lücke möglichst vermeiden. Details liefert das CVE-2020-1472.

Der Server muss eine statische IP Adresse haben. Dazu bearbeite ich die Datei /etc/network/interfaces und füge folgendes ein.

auto eth0
iface eth0 inet static
address 192.168.0.2
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameservers 8.8.8.8

Um den Hostnamen festzulegen bearbeite ich die Dateien /etc/hosts und /etc/hostname. In die Datei /etc/hostname schreibe ich den FQDN, den kompletten Servernamen inklusive Domain.

samba.example.com

und in der Datei /etc/hosts füge ich einen Eintrag zu der eben eingestellten IP Adresse, dem FQDN und dem Hostnamen hinzu.

192.168.0.2    samba.example.com    samba

Jetzt installiere ich die erforderlichen Pakete:

apt install -y samba krb5-user krb5-config winbind smbclient

Während der Installation werde ich zu Informationen für den Kerberos Dienst gefragt

Kerberos Realm: example.com
Kerberos servers for your realm: samba.example.com
Administrative server for your kerberos realm: samba.example.com

Bevor ich jetzt die Domain provisioniere lösche ich die voreingestellte Sambakonfiguration unter /etc/samba/smb.conf, ausserdem die Datei /etc/resolv.conf und starte anschliessend die Provisionierung.

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

// non interactive
samba-tool domain provision --server-role=dc --use-rfc2307 --dns-backend=SAMBA_INTERNAL --realm=EXAMPLE.COM --domain=EXAMPLE --adminpass=Passw0rd

Während der Provisionierung werde ich zu Informationen für die Domain gefragt

Realm: example.com
Domain: example
Server role: dc
DNS Backend: SAMBA_INTERNAL
DNS Forwarder: gateway ip

Nun lösche ich die bestehende Kerberos Konfiguration unter /etc/krb5.conf und ersetze sie mit einem Softlink auf /var/lib/samba/private/krb5.conf.

rm /etc/krb5.conf
ln -s /var/lib/samba/private/krb5.conf /etc/

Zuletzt beende ich die laufenden Samba Dienste und DNS Resolver um das Service zu demaskieren und starte es erneut.

systemctl disable smbd nmbd winbind systemd-resolved
systemctl unmask samba-ad-dc
systemctl enable samba-ad-dc
systemctl enable smbd
systemctl enable nmbd

Zum Schluss kann man prüfen ob alles funktioniert hat. Der Level sollte dem eines Windows Server 2008 entsprechen. Den Server starte ich neu.

samba-tool domain level show

Die Samba Dateifreigaben zeige ich mit dem tool smbclient an.

smbclient -L localhost -U administrator
Beitrag auf Github bearbeiten
Suche
Weiterlesen