Page tree

Wenn sie zu dieser Seite Bemerkungen haben klicken sie bitte hier: Kontaktformular

Skip to end of metadata
Go to start of metadata

Ältere Versionen dieses Dokuments mit Hinweisen zu früheren Samba-Versionen finden sie über die Dokument-History (Menü mit 3 Punkten rechts oben)
In einer früheren Version dieses Dokuments wurde beschrieben, dass für die Konfiguration samba als AD-Controller eine zusätzliche kerberos-Installation mit krb5-admin-server und krb5-kdc erforderlich wäre.
Samba kann die Rolle als AD-Controller auch ohne krb5 erfüllen. 


Voraussetzungen

  • Ubuntu 14.04 (getestete Versionen Ubuntu 14.04.3 und Lubuntu for Banana Pro V14.12)

  • samba Version >= V4.1.6

  • root-Rechte

  • Dateisystem ext4

  • feste IP-Adresse für die Server

  • IPV6 deaktivieren
    Ich habe bisher nur Anleitungen gefunden die dies ebenfalls voraussetzen.
    Und es hat auch bei aktiviertem IPV6 nicht funktioniert den Port 88 zu belegen. 
  • dnsmasq deaktivieren

  • Synchronisierung der Systemzeit über einen ntp-Dienst

  • Clientcomputer die Mitglied in der Domain werden sollen müssen den DNS-Service des Samba verwenden.

Überblick über die verwendeten Konfigurationen

Bitte nach eigenen Vorstellungen/Gegebenheiten anpassen.
In diesem Beispiel wird der Samba-Server nur in einem privaten Netzwerk betrieben. 

Realm: UBUNTU.FRITZ.BOX
Domain: UB
IP-Adresse 192.168.101.14
DNS-Server (für die Internetadressen) 192.168.101.1 
Samba-Administrator: Administrator

Vorbedingungen prüfen, ggf. umsetzen

IPv6 deaktivieren

Ob an den Netzwerkgeräten eine IPv6-Adresse vergeben wurde prüft man wie folgt:

root@ubuntu:~# ifconfig|grep -i inet6
          inet6 addr: fe80::48:6ff:fe00:ebb9/64 Scope:Link
          inet6 addr: ::1/128 Scope:Host
          inet6 addr: fe80::9a3a:16ff:fef9:6c51/64 Scope:Link
root@ubuntu:~#

Wäre IPv6 deaktiviert würde "ifconfig" auch keine "inet6"-Einträge liefern
Um IPv6 zu deaktivieren legt man die Datei "/etc/sysctl.d/01-disable-ipv6.conf"
mit u.a. Inhalt an und startet das System neu.

/etc/sysctl.d/01-disable-ipv6.conf
net.ipv6.conf.all.disable_ipv6 = 1

ntp-Dienst prüfen

Für den ordnungsgemäßen Betrieb des Domaincontrollers ist es wichtig, dass alle Computer an der Domain die gleiche Zeit verwenden.
Dies erreicht man am besten in dem man einen netzbasierten Zeitserver verwendet (ntp = Network Time Protocol")

Häufig ist dies bei einer Ubuntu-Installation bereits gegeben.

Prüfung:

#Ist ntpdate installiert?
root@ubuntu:~# type ntpdate
ntpdate is /usr/sbin/ntpdate

#Versuch eines Zeitupdates
root@ubuntu:~# ntpdate -u de.pool.ntp.org
16 Jan 17:42:07 ntpdate[1784]: adjust time server 89.163.209.233 offset 0.299721 sec
root@lemaker:~#
 
#Ist die regelmäßige Zeitsynchronisation aktiv ?
root@ubuntu:~# service ntp status
 * NTP server is running
root@ubuntu:~#

dnsmasq deaktivieren

Nach der Standardinstallation bietet ubuntu ggf. bereits einen eigenen DNS-Service auf Port 53 an.
Dieser darf nicht weiter betrieben werden, weil samba diesen Service in Zukunft anbieten soll.

netstat -tlpn|grep dnsmasq
-----------
tcp        0      0 127.0.1.1:53            0.0.0.0:*               LISTEN      1241/dnsmasq

 In diesem Fall muss man im Networkmanager die Einstellung "dns=dnsmasq" entfernen.

/etc/NetworkManager/NetworkManager.conf
#Folgenden Eintrag auskommentieren oder entfernen
#dns=dnsmasq

Danach Netzwerkservice neu starten und vorhandenen Service stoppen (Prozess killen):

/etc/init.d/networking restart
killall dnsmasq
#Möglicherweise lässt sich der Prozess nicht beenden.
#In diesem Fall: Reboot

Der Port 53 sollte nun nicht mehr in der Liste der belegten Ports erscheinen.
Zur Abfrage der offenen Ports siehe ggf. auch den folgenden Artikel: http://keipke.de/wiki/display/HOWTO/Abfrage+offener+Netzwerkports 

Installation / Konfiguration

Samba Pakete installieren

root@ubuntu:~# apt-get install samba smbclient libpam-smbpass
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.       
Statusinformationen werden eingelesen.... Fertig
Die folgenden zusätzlichen Pakete werden installiert:
  attr libaio1 libavahi-client3 libavahi-common-data libavahi-common3 libcups2
  libfile-copy-recursive-perl libgmp10 libhdb9-heimdal libkdc2-heimdal libldb1
  libntdb1 libsmbclient libtalloc2 libtdb1 libtevent0 libwbclient0
  python-crypto python-dnspython python-ldb python-ntdb python-samba
  python-talloc python-tdb samba-common samba-common-bin samba-dsdb-modules
  samba-libs samba-vfs-modules tdb-tools update-inetd
Vorgeschlagene Pakete:
  cups-common python-crypto-dbg python-crypto-doc bind9 bind9utils ldb-tools
  ntp smbldap-tools winbind heimdal-clients cifs-utils
Die folgenden NEUEN Pakete werden installiert:
  attr libaio1 libavahi-client3 libavahi-common-data libavahi-common3 libcups2
  libfile-copy-recursive-perl libgmp10 libhdb9-heimdal libkdc2-heimdal libldb1
  libntdb1 libpam-smbpass libsmbclient libtalloc2 libtdb1 libtevent0
  libwbclient0 python-crypto python-dnspython python-ldb python-ntdb
  python-samba python-talloc python-tdb samba samba-common samba-common-bin
  samba-dsdb-modules samba-libs samba-vfs-modules smbclient tdb-tools
  update-inetd
0 aktualisiert, 34 neu installiert, 0 zu entfernen und 3 nicht aktualisiert.
Es müssen 8.491 kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 48,0 MB Plattenplatz zusätzlich benutzt.
Möchten Sie fortfahren? [J/n]j

Alte Konfiguration entfernen

Die vorhandene Konfigurationsdatei entfernen / verschieben.
Es darf bei der Konfiguration der Domain keine alte Konfiguration vorhanden sein!
Auch wenn die Samba-Pakete erst vor kurzer Zeit installiert wurden ist trotzdem eine Konfiguration vorhanden und der Server gestart 

root@ubuntu:~# service smbd stop
smbd stop/waiting
root@ubuntu:~# service nmbd stop
nmbd stop/waiting
root@ubuntu:~# cd /etc/samba/
root@ubuntu:/etc/samba# mv smb.conf smb.conf.sicherung
root@ubuntu:/etc/samba#

Sollte die im folgenden Abschnitt beschriebene "Domain Provision" fehlschlagen muss ebenfalls vor einem neuen Versuch die smb.conf entfernt werden.

Domain provisionieren

Bitte passen sie die eingegebenen Konfigurationsdaten ihren Vorstellung und Gegebenheiten entsprechend an.
Durch den Vorgang des provisionieren wird die Domain angelegt. 

Bitte beachten: Nach den Namenskonventionen müssen Realms immer in Großbuchstaben geschrieben werden und DNS-Namen in Kleinbuchstaben!
Alle Namen in der Kerberosdatenbank sind case-sensitive, d.h. es wird zwischen Groß- und Kleinbuchstaben unterschieden. 

root@ubuntu:/etc/samba# samba-tool domain provision --use-rfc2307 --interactive --use-ntvfs
Realm: UBUNTU.FRITZ.BOX
 Domain [ubuntu]: UB
 Server Role (dc, member, standalone) [dc]: 
 DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: 
 DNS forwarder IP address (write 'none' to disable forwarding) [192.168.101.1]: 
Administrator password: 
Retype password: 
Looking up IPv4 addresses
Looking up IPv6 addresses
No IPv6 address will be assigned
Setting up share.ldb
Setting up secrets.ldb
Setting up the registry
Setting up the privileges database
Setting up idmap db
Setting up SAM db
Setting up sam.ldb partitions and settings
Setting up sam.ldb rootDSE
Pre-loading the Samba 4 and AD schema
Adding DomainDN: DC=ubuntu,DC=fritz,DC=box
Adding configuration container
Setting up sam.ldb schema
Setting up sam.ldb configuration data
Setting up display specifiers
Modifying display specifiers
Adding users container
Modifying users container
Adding computers container
Modifying computers container
Setting up sam.ldb data
Setting up well known security principals
Setting up sam.ldb users and groups
Setting up self join
Adding DNS accounts
Creating CN=MicrosoftDNS,CN=System,DC=ubuntu,DC=fritz,DC=box
Creating DomainDnsZones and ForestDnsZones partitions
Populating DomainDnsZones and ForestDnsZones partitions
Setting up sam.ldb rootDSE marking as synchronized
Fixing provision GUIDs
A Kerberos configuration suitable for Samba 4 has been generated at /var/lib/samba/private/krb5.conf
Setting up fake yp server settings
Once the above files are installed, your Samba4 server will be ready to use
Server Role:           active directory domain controller
Hostname:              ubuntu
NetBIOS Domain:        UB
DNS Domain:            ubuntu.fritz.box
DOMAIN SID:            S-1-5-21-10513728964-4136389889-3013419481


Nach der Installation

Nameservice anpassen

#vorhandenen Nameserver anzeigen
root@ubuntu:~# cat /etc/resolv.conf 
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 192.168.101.1
search fritz.box
root@ubuntu:~#
 
#neuen Nameserver setzen auf den eigenen Server (localhost)
#Damit wird der von Samba bereitgestellte Nameservice genutzt. 
root@ubuntu:~# echo nameserver 127.0.0.1|resolvconf -a eth0
root@ubuntu:~# cat /etc/resolv.conf 
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.0.1
search fritz.box
root@ubuntu:~#

Sollten sie Probleme haben die Anpassung des DNS-Servers dauerhaft zu speichern und ist die Einstellung nach dem nächsten Reboot wieder auf Standardwert zurückgesetzt,
so lesen sie bitte den folgenden Artikel: UBUNTU DNS-Service konfigurieren im DHCP Netzwerk 

Abschluß / Test

Serverdienste starten

Statt den Service "samba" zu starten kann man auch den Service "samba-ad-ac" verwenden.

root@ubuntu:~# service samba-ad-dc status
samba-ad-dc stop/waiting
root@ubuntu:~# service samba-ad-dc start
samba-ad-dc start/running, process 3489
root@ubuntu:~# service samba-ad-dc status
samba-ad-dc start/running, process 3489
root@ubuntu:~# 

DNS Namensauflöung testen

Hierbei geht es nicht darum die Auflösung des Namens ubuntu.fritz.box zu testen (diesen Namen haben wir als realm verwendet).
Sondern einige "Unter"-Bezeichnung, wie _ldap._tcp. bzw. _kerberos.udp. 
Sollte diese Auflösung funktionieren und die u.a. Antworten erscheinen ist das ein Anzeichen dafür, dass als Namensauflösung der samba-Service verwendet wird.
Ein vorhandener anderer DNS-Server kennt diese Namen nicht.

Man sollte aber auch testen, ob z.B. Internetadressen (wie t-online.de oder ubuntu.com) aufgelöst werden.
Damit wäre geklärt, dass alle Anforderungen an den Samba-Service die dieser nicht auflösen kann an die oben angegebene "DNS forwarder IP address" weitergeleitet werden.

root@ubuntu:~# host -t SRV _ldap._tcp.ubuntu.fritz.box
_ldap._tcp.ubuntu.fritz.box has SRV record 0 100 389 ubuntu.ubuntu.fritz.box.
root@ubuntu:~# host -t SRV _kerberos._udp.ubuntu.fritz.box
_kerberos._udp.ubuntu.fritz.box has SRV record 0 100 88 ubuntu.ubuntu.fritz.box.
root@ubuntu:~# host -t A ubuntu.fritz.box
ubuntu.fritz.box has address 192.168.101.14
root@ubuntu:~#

Samba-Installation testen

Alle Shares auflisten (Test 1)

root@ubuntu:~# smbclient -L localhost -U%
Domain=[UB] OS=[Unix] Server=[Samba 4.1.6-Ubuntu]

	Sharename       Type      Comment
	---------       ----      -------
	netlogon        Disk      
	sysvol          Disk      
	IPC$            IPC       IPC Service
Domain=[UB] OS=[Unix] Server=[Samba 4.1.6-Ubuntu]

	Server               Comment
	---------            -------

	Workgroup            Master
	---------            -------
root@ubuntu:~#

Authentifizierung testen (Test 2)

root@ubuntu:~# smbclient //localhost/netlogon -UAdministrator -c 'ls'
Enter Administrator's password: 
Domain=[UB] OS=[Unix] Server=[Samba 4.1.6-Ubuntu]
  .                                   D        0  Sun Jan 17 17:29:13 2016
  ..                                  D        0  Sun Jan 17 17:29:20 2016

		59942 blocks of size 524288. 54112 blocks available
root@ubuntu:~#


Portbelegung testen:

Bitte beachten: Die u.a. Portbelegung zeigt die belegten Ports wenn der Service "samba-ad-dc" gestartet ist und alle Funktionen übernommen hat
Siehe Abschnitt "Serverdienste starten".
Wenn die Dienste "krb5-admin-server" und "krb5-kdc" gestartet sind werden möglicherweise einige Ports von diesen Diensten belegt, die sonst von Samba belegt werden.
 

root@ubuntu:~# netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:464             0.0.0.0:*               LISTEN      6445/samba      
tcp        0      0 0.0.0.0:53              0.0.0.0:*               LISTEN      6451/samba      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      710/sshd        
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      8006/cupsd      
tcp        0      0 0.0.0.0:88              0.0.0.0:*               LISTEN      6445/samba      
tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN      1055/master     
tcp        0      0 0.0.0.0:636             0.0.0.0:*               LISTEN      6443/samba      
tcp        0      0 0.0.0.0:445             0.0.0.0:*               LISTEN      6452/samba      
tcp        0      0 0.0.0.0:1024            0.0.0.0:*               LISTEN      6440/samba      
tcp        0      0 0.0.0.0:3268            0.0.0.0:*               LISTEN      6443/samba      
tcp        0      0 0.0.0.0:3269            0.0.0.0:*               LISTEN      6443/samba      
tcp        0      0 0.0.0.0:389             0.0.0.0:*               LISTEN      6443/samba      
tcp        0      0 0.0.0.0:135             0.0.0.0:*               LISTEN      6440/samba      
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      1011/mysqld     
tcp        0      0 0.0.0.0:139             0.0.0.0:*               LISTEN      6452/samba      
tcp6       0      0 :::80                   :::*                    LISTEN      1217/apache2    
tcp6       0      0 :::22                   :::*                    LISTEN      710/sshd        
tcp6       0      0 :::25                   :::*                    LISTEN      1055/master     
udp        0      0 0.0.0.0:23293           0.0.0.0:*                           902/dhclient    
udp        0      0 192.168.101.14:389      0.0.0.0:*                           6444/samba      
udp        0      0 0.0.0.0:389             0.0.0.0:*                           6444/samba      
udp        0      0 192.168.101.14:464      0.0.0.0:*                           6445/samba      
udp        0      0 0.0.0.0:464             0.0.0.0:*                           6445/samba      
udp        0      0 0.0.0.0:53              0.0.0.0:*                           6451/samba      
udp        0      0 0.0.0.0:68              0.0.0.0:*                           902/dhclient    
udp        0      0 192.168.101.14:88       0.0.0.0:*                           6445/samba      
udp        0      0 0.0.0.0:88              0.0.0.0:*                           6445/samba      
udp        0      0 192.168.101.14:123      0.0.0.0:*                           1681/ntpd       
udp        0      0 127.0.0.1:123           0.0.0.0:*                           1681/ntpd       
udp        0      0 0.0.0.0:123             0.0.0.0:*                           1681/ntpd       
udp        0      0 192.168.101.14:137      0.0.0.0:*                           6441/samba      
udp        0      0 192.168.101.255:137     0.0.0.0:*                           6441/samba      
udp        0      0 0.0.0.0:137             0.0.0.0:*                           6441/samba      
udp        0      0 192.168.101.14:138      0.0.0.0:*                           6441/samba      
udp        0      0 192.168.101.255:138     0.0.0.0:*                           6441/samba      
udp        0      0 0.0.0.0:138             0.0.0.0:*                           6441/samba      
udp6       0      0 :::46857                :::*                                902/dhclient    
udp6       0      0 :::123                  :::*                                1681/ntpd    
root@ubuntu:~#


------------



Betrieb / Wartung / Administration

Hinzufügen Clientcomputer

Domainbenutzer

Anlegen/Löschen und Ändern eines Domainbenutzers.

Domainbenutzer können sich an der Domain anmelden und können z.B. zur Anmeldung an einem Windowssystem verwendet werden.

Beispiele smbpasswd
#Domainbenutzer sind Sambabenutzer und deren Administration erfolgt mit dem Programm "smbpasswd"
#Beispiele:
#Anlegen eines Benutzers
smbpasswd -a BENUTZERNAME
 
#Löschen eines Benutzers
smbpasswd -x BENUTZERNAME
 
#Deaktivieren eines Benutzers
smbpasswd -d BENUTZERNAME
 
#Aktivieren eines Benutzers
smbpasswd -e BENUTZERNAME
 
#Kennwortänderung eines Benutzers
smbpasswd BENUTZERNAME 


Häufig gestellte Fragen (FAQ)

Weitere Links zum Thema

https://wiki.ubuntuusers.de/Howto/Samba4-Server_als_Active-Directory_Domain-Controller/

Dokumentation der Optionen in der Datei smb.conf:

https://www.samba.org/samba/docs/man/manpages-3/smb.conf.5.html

Troubleshooting