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 administratorBeitrag auf Github bearbeiten