Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Info

Ä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. 


Table of Contents

Voraussetzungen

...

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

Panel

Realm: ubuntuUBUNTU.fritzFRITZ.boxBOX
Domain: UB
IP-Adresse 192.168.101.14
DNS-Server (für die Internetadressen) 192.168.101.1 
Samba-Administrator: Administrator

...

Code Block
/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 

...

Code Block
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

...

Kerberos Pakete installieren

Code Block
root@ubuntu:/etc/samba# apt-get install krb5-user krb5-admin-server krb5-kdc

Während der Installation der Pakete werden bereits einige Konfigurationsparameter abgefragt.
Bitte diese nach eigenen Vorstellungen und Gegebenheiten entsprechend anpassen.

Gallery
includeLabelkrb5-install
sortname

Info

Am Ende der Installation der Kerberos-Pakete wird versucht die Dienste "krb5-kdc" und "krb5-admin-server" zu starten.
Dies schlägt erstmal fehl. Das kann aber ignoriert werden!!

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

krb5-kdc (1.12+dfsg-2ubuntu5.2) wird eingerichtet ...
 * Starting Kerberos KDC krb5kdc                                                                                                                  
krb5kdc: cannot initialize realm ubuntu.fritz.box - see log file for details

                                                                                                                                            [fail]

Trigger für ureadahead (0.100.0-16) werden verarbeitet ...
krb5-admin-server (1.12+dfsg-2ubuntu5.2) wird eingerichtet ...
 * Starting Kerberos administrative servers kadmind                                                                                               
kadmind: Datei oder Verzeichnis nicht gefunden while initializing, aborting

                                                                                                                                            [fail]
Trigger für libc-bin (2.19-0ubuntu6.6) werden verarbeitet ...
Trigger für ureadahead (0.100.0-16) werden verarbeitet ...
root@ubuntu:~#

 

 

Danach erst mal nichts weiter unternehmen, sondern den Server neu starten.

Code Block
#Server neu starten
init 6

Neue Realm initialisieren

Code Block
root@ubuntu:~# krb5_newrealm
This script should be run on the master KDC/admin server to initialize
a Kerberos realm.  It will ask you to type in a master key password.
This password will be used to generate a key that is stored in
/etc/krb5kdc/stash.  You should try to remember this password, but it
is much more important that it be a strong password than that it be
remembered.  However, if you lose the password and /etc/krb5kdc/stash,
you cannot decrypt your Kerberos database.
Loading random data

Initializing database '/var/lib/krb5kdc/principal' for realm 'ubuntu.fritz.box',
master key name 'K/M@ubuntu.fritz.box'
You will be prompted for the database Master Password.
It is important that you NOT FORGET this password.
Enter KDC database master key: 
Re-enter KDC database master key to verify: 
 * Starting Kerberos KDC krb5kdc                                                                                                            [ OK ] 
 * Starting Kerberos administrative servers kadmind                                                                                         [ OK ] 

Now that your realm is set up you may wish to create an administrative
principal using the addprinc subcommand of the kadmin.local program.
Then, this principal can be added to /etc/krb5kdc/kadm5.acl so that
you can use the kadmin program on other computers.  Kerberos admin
principals usually belong to a single user and end in /admin.  For
example, if jruser is a Kerberos administrator, then in addition to
the normal jruser principal, a jruser/admin principal should be
created.

Don't forget to set up DNS information so your clients can find your
KDC and admin servers.  Doing so is documented in the administration
guide.
root@ubuntu:~#

Nach der Installation

Nameservice anpassen

Code Block
#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:~#

Domainaccount Administrator anlegen

Code Block
root@ubuntu:/etc/samba# kadmin.local
Authenticating as principal root/admin@ubuntu.fritz.box with password.
kadmin.local:  addprinc Administrator
WARNING: no policy specified for Administrator@ubuntu.fritz.box; defaulting to no policy
Enter password for principal "Administrator@ubuntu.fritz.box": 
Re-enter password for principal "Administrator@ubuntu.fritz.box": 
Principal "Administrator@ubuntu.fritz.box" created.
kadmin.local:  exit
root@ubuntu:/etc/samba#

Adminrechte für den Benutzer Administrator einrichten

Code Block
title/etc/krb5kdc/kadm5.acl
Administrator/admin *

und danach noch den admin-service neu starten:

Code Block
root@ubuntu:/etc/samba# service krb5-admin-server restart
 * Restarting Kerberos administrative servers kadmind                                                           [ OK ] 
root@ubuntu:/etc/samba#

Abschluß / Test

Kerberos-Installation testen

Code Block
root@ubuntu:~# kinit Administrator
Password for Administrator@ubuntu.fritz.box: 
root@ubuntu:~# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: Administrator@ubuntu.fritz.box

Valid starting       Expires              Service principal
17.01.2016 20:04:13  18.01.2016 06:04:13  krbtgt/ubuntu.fritz.box@ubuntu.fritz.box
	renew until 18.01.2016 20:04:07
root@ubuntu:~#

 

Serverdienste starten

...

Aktuelles Problem:

...

  1. samba bzw. samba-ad-dc
  2. krb5-kdc
  3. krb5-admin-server 

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

Code Block
root@ubuntu:~# service krb5-admin-server stop
 * Stopping Kerberos administrative servers kadmind                                                                                         [ OK ] 
root@ubuntu:~# service krb5-kdc stop
 * Stopping Kerberos KDC krb5kdc                                                                                                                   
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:~# service krb5-kdc start
 * Starting Kerberos KDC krb5kdc                                                                                                            [ OK ] 
root@ubuntu:~# service krb5-admin-server start
 * Starting Kerberos administrative servers kadmind                                                                                         [ OK ] 
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 Router 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.

Code Block
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)

...

Installation

Nameservice anpassen

Code Block
#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.

Code Block
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.

Code Block
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)

Code Block
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)

Code Block
root@ubuntu:~# smbclient //localhost/netlogon -UAdministrator -c 'ls'
Enter Administrator's password: 
Domain=[UB] OS=[Unix]   -------
	netlogon  Server=[Samba 4.1.6-Ubuntu]
  .      Disk      
	sysvol          Disk      
	IPC$       D     IPC   0  Sun Jan 17 IPC Service
Domain=[UB] OS=[Unix] Server=[Samba 4.1.6-Ubuntu]

	Server17:29:13 2016
  ..               Comment
	---------            -------

	Workgroup       D     Master
	---------   0  Sun Jan 17 17:29:20 2016

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

Authentifizierung testen (Test 2)

Code Block
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
  ..        


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.
 

Code Block
root@ubuntu:~# netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State     D  PID/Program name
tcp     0  Sun Jan0 17 17:29:20 2016

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

 

Portbelegung testen:

Code Block
root@ubuntu:~# netstat -tulpn
Aktive Internetverbindungen (Nur Server)
Proto Recv-Q Send-Q Local Address   0 0.0.0.0:464             0.0.0.0:*         Foreign Address     LISTEN    State  6445/samba     PID/Program name
tcp        0      0 0.0.0.0:53              0.0.0.0:*               LISTEN      35026451/samba      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      771710/sshd        
tcp        0      0 0127.0.0.0:88   1:631           0.0.0.0:*               LISTEN      34968006/sambacupsd      
tcp        0      0 0.0.0.0:63688              0.0.0.0:*               LISTEN      34946445/samba      
tcp        0      0 0.0.0.0:44525              0.0.0.0:*               LISTEN      35041055/samba master     
tcp        0      0 0.0.0.0:1024636             0.0.0.0:*               LISTEN      34916443/samba      
tcp        0      0 0.0.0.0:3268445             0.0.0.0:*               LISTEN      34946452/samba      
tcp        0      0 0.0.0.0:32691024            0.0.0.0:*               LISTEN      34946440/samba      
tcp        0      0 0.0.0.0:389 3268            0.0.0.0:*               LISTEN      34946443/samba      
tcp        0      0 0.0.0.0:1353269             0.0.0.0:*               LISTEN      34916443/samba      
tcp        0      0 0.0.0.0:139389             0.0.0.0:*               LISTEN      35046443/samba      
tcp        0      0 0.0.0.0:749135             0.0.0.0:*               LISTEN      35446440/kadmindsamba      
tcp        0      0 0127.0.0.0:464   1:3306          0.0.0.0:*               LISTEN      34961011/sambamysqld     
tcp 
tcp6       0      0 :::220.0.0.0:139                   :::0.0.0.0:*                    LISTEN      7716452/sshd  samba      
tcp6       0      0 :::74980                   :::*                    LISTEN      35441217/kadmindapache2    
tcp6       0      0 :::46422                   :::*                    LISTEN      3544/kadmind710/sshd        
udptcp6        0      0 0.0.0.0:464 :::25                   0.0.0.0:::*                    LISTEN      1055/master 3544/kadmind    
udp        0      0 1920.1680.1010.14:4640:23293           0.0.0.0:*                           3496902/sambadhclient      
udp        0      0 0192.0168.0101.0:464     14:389        0.0.0.0:*                           34966444/samba      
udp        0      0 0.0.0.0:750389             0.0.0.0:*                           35276444/krb5kdcsamba      
udp        0      0 0192.0168.0101.0:53      14:464        0.0.0.0:*                           35026445/samba      
udp        0      0 0.0.0.0:68 464             0.0.0.0:*                           5976445/dhclientsamba      
udp        0      0 0.0.0.0:8853              0.0.0.0:*                           35276451/krb5kdcsamba      
udp        0      0 1920.1680.1010.14:880:68              0.0.0.0:*                           3496902/sambadhclient      
udp        0      0 0192.0168.0101.014:88              0.0.0.0:*                           34966445/samba      
udp        0      0 1920.1680.1010.14:1370:88              0.0.0.0:*                           34926445/samba      
udp        0      0 192.168.101.25514:137123      0.0.0.0:*                           34921681/sambantpd       
udp        0      0 0127.0.0.01:137  123           0.0.0.0:*                           34921681/sambantpd       
udp        0      0 1920.1680.1010.14:1380:123             0.0.0.0:*                           34921681/sambantpd       
udp        0      0 192.168.101.25514:138137      0.0.0.0:*                           34926441/samba      
udp        0      0 0192.0168.0101.0255:138137             0.0.0.0:*                           34926441/samba      
udp        0      0 0.0.0.0:19844137             0.0.0.0:*                           5976441/dhclientsamba      
udp        0      0 192.168.101.14:389138      0.0.0.0:*                           34956441/samba      
udp        0      0 0192.0168.0101.0:389     255:138        0.0.0.0:*                           34956441/samba      
udp6udp        0      0 :::463730.0.0.0:138             0.0.0.0:*       :::*                    6441/samba      
udp6      597/dhclient    
root@ubuntu:~#

 

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

 

 

Betrieb / Wartung / Administration

Hinzufügen Clientcomputer

Gallery
includeLabeladd-domain-member
sortname

Kerberos-Principals

Info

Bitte beachten: Kerberos-Pricipals können sich am Kerberosservice anmelden und haben dort Berechtigungen, sind aber keine Domainbenutzer.

 

Hinzufügen/Löschen/Ändern Kerberos-Principals

Code Block
titleAnlegen eines Domainbenutzers
root@ubuntu:~# kadmin.local
Authenticating as principal root/admin@ubuntu.fritz.box with password.
kadmin.local:  addprinc klaus
WARNING: no policy specified for klaus@ubuntu.fritz.box; defaulting to no policy
Enter password for principal "klaus@ubuntu.fritz.box": 
Re-enter password for principal "klaus@ubuntu.fritz.box": 
Principal "klaus@ubuntu.fritz.box" created.
kadmin.local:  exit
root@ubuntu:~#
Code Block
titleLöschen eines Kerberos-Principals
root@ubuntu:~# kadmin.local
Authenticating as principal root/admin@ubuntu.fritz.box with password.
kadmin.local:  delprinc klaus
Are you sure you want to delete the principal "klaus@ubuntu.fritz.box"? (yes/no): yes
Principal "klaus@ubuntu.fritz.box" deleted.
Make sure that you have removed this principal from all ACLs before reusing.
kadmin.local:  exit
root@ubuntu:~#

 

Kennwortänderung Kerberos-Principals

Code Block
titlePasswortänderung für einen Kerberos-Principals
root@ubuntu:~# kadmin.local
Authenticating as principal root/admin@ubuntu.fritz.box with password.
kadmin.local:  cpw klaus
Enter password for principal "klaus@ubuntu.fritz.box": 
Re-enter password for principal "klaus@ubuntu.fritz.box": 
Password for "klaus@ubuntu.fritz.box" changed.
kadmin.local:  exit
root@ubuntu:~#
0      0 :::46857                :::*                                902/dhclient    
udp6       0      0 :::123                  :::*                                1681/ntpd    
root@ubuntu:~#


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



Betrieb / Wartung / Administration

Hinzufügen Clientcomputer

Gallery
includeLabeladd-domain-member
sortname

Domainbenutzer

Anlegen/Löschen und Ändern eines Domainbenutzers.

...

Code Block
titleBeispiele 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)

...

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

...