Ab OpenSuSE Version 11 muss man leider einiges per Hand einstellen, was früher automatisch funktionierte:
...
Info |
---|
Ältere Versionen dieses Dokuments mit Hinweisen zu früheren Samba-Versionen finden sie über die Dokument-History (Menü mit 3 Punkten rechts oben) |
Table of Contents |
---|
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.
Panel |
---|
Realm: ubuntu.fritz.box |
Vorbedingungen prüfen, ggf. umsetzen
IPv6 deaktivieren
Ob an den Netzwerkgeräten eine IPv6-Adresse vergeben wurde prüft man wie folgt:
Code Block |
---|
root@lemaker:~# 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@lemaker:~# |
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.
Code Block | ||
---|---|---|
| ||
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:
Code Block |
---|
#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.
Code Block |
---|
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.
Code Block | ||
---|---|---|
| ||
#Folgenden Eintrag auskommentieren oder entfernen
#dns=dnsmasq |
Danach Netzwerkservice neu starten und vorhandenen Service stoppen (Prozess killen):
Code Block |
---|
/etc/init.d/networking restart
killall dnsmasq |
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
Code Block |
---|
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
Code Block |
---|
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.
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: lemaker.fritz.box
DOMAIN SID: S-1-5-21-10513728964-4136389889-3013419481 |
Einen Test der Samba-Installation würde ich zu diesem Zeitpunkt nicht zwingend empfehlen, da ohne Kerberos-Service kein sinnvoller Betrieb statt finden kann.
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 | ||||
---|---|---|---|---|
|
Info |
---|
Am Ende der Installation der Kerberos-Pakete wird versucht die Dienste "krb5-kdc" und "krb5-admin-server" zu starten. --------------- krb5-kdc (1.12+dfsg-2ubuntu5.2) wird eingerichtet ... [fail] Trigger für ureadahead (0.100.0-16) werden verarbeitet ... [fail]
|
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 | ||
---|---|---|
| ||
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
Info |
---|
Aktuelles Problem:
|
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)
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] 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:
Code Block |
---|
root@ubuntu:~# netstat -tulpn
Aktive Internetverbindungen (Nur Server)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:53 0.0.0.0:* LISTEN 3502/samba
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 771/sshd
tcp 0 0 0.0.0.0:88 0.0.0.0:* LISTEN 3496/samba
tcp 0 0 0.0.0.0:636 0.0.0.0:* LISTEN 3494/samba
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 3504/samba
tcp 0 0 0.0.0.0:1024 0.0.0.0:* LISTEN 3491/samba
tcp 0 0 0.0.0.0:3268 0.0.0.0:* LISTEN 3494/samba
tcp 0 0 0.0.0.0:3269 0.0.0.0:* LISTEN 3494/samba
tcp 0 0 0.0.0.0:389 0.0.0.0:* LISTEN 3494/samba
tcp 0 0 0.0.0.0:135 0.0.0.0:* LISTEN 3491/samba
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 3504/samba
tcp 0 0 0.0.0.0:749 0.0.0.0:* LISTEN 3544/kadmind
tcp 0 0 0.0.0.0:464 0.0.0.0:* LISTEN 3496/samba
tcp6 0 0 :::22 :::* LISTEN 771/sshd
tcp6 0 0 :::749 :::* LISTEN 3544/kadmind
tcp6 0 0 :::464 :::* LISTEN 3544/kadmind
udp 0 0 0.0.0.0:464 0.0.0.0:* 3544/kadmind
udp 0 0 192.168.101.14:464 0.0.0.0:* 3496/samba
udp 0 0 0.0.0.0:464 0.0.0.0:* 3496/samba
udp 0 0 0.0.0.0:750 0.0.0.0:* 3527/krb5kdc
udp 0 0 0.0.0.0:53 0.0.0.0:* 3502/samba
udp 0 0 0.0.0.0:68 0.0.0.0:* 597/dhclient
udp 0 0 0.0.0.0:88 0.0.0.0:* 3527/krb5kdc
udp 0 0 192.168.101.14:88 0.0.0.0:* 3496/samba
udp 0 0 0.0.0.0:88 0.0.0.0:* 3496/samba
udp 0 0 192.168.101.14:137 0.0.0.0:* 3492/samba
udp 0 0 192.168.101.255:137 0.0.0.0:* 3492/samba
udp 0 0 0.0.0.0:137 0.0.0.0:* 3492/samba
udp 0 0 192.168.101.14:138 0.0.0.0:* 3492/samba
udp 0 0 192.168.101.255:138 0.0.0.0:* 3492/samba
udp 0 0 0.0.0.0:138 0.0.0.0:* 3492/samba
udp 0 0 0.0.0.0:19844 0.0.0.0:* 597/dhclient
udp 0 0 192.168.101.14:389 0.0.0.0:* 3495/samba
udp 0 0 0.0.0.0:389 0.0.0.0:* 3495/samba
udp6 0 0 :::46373 :::* 597/dhclient
root@ubuntu:~# |
------------
Betrieb / Wartung / Administration
Hinzufügen Clientcomputer
Gallery | ||||
---|---|---|---|---|
|
Hinzufügen/Löschen/Ändern Domainuser
Code Block | ||
---|---|---|
| ||
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 | ||
---|---|---|
| ||
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 Domainuser
Code Block | ||
---|---|---|
| ||
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:~# |
Häufig gestellte Fragen (FAQ)
Weitere Links zum Thema
https://wiki.ubuntuusers.de/Howto/Samba4-Server_als_Active-Directory_Domain-Controller/