Page tree

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

Skip to end of metadata
Go to start of metadata

Allgemeines

Anleitung von Ubuntu dazu:

https://wiki.ubuntuusers.de/Samba_Winbind/

Die Anleitung erscheint aber noch Lücken zu haben, jedenfalls hat es bei mir nicht im ersten Versuch funktioniert (smile)

Es wird vorausgesetzt, dass der Domaincontroller ebenfalls ein Samba-Server ist, z.B. nach folgenden Anleitung erstellt: Konfiguration samba als active directory domain controller

Bitte berücksichtigen, dass diese Anleitung NICHT auf dem Domaincontroller zur Anwendung kommen darf, sondern ausschließlich auf den sogenannten "Member Server", also die Server welche Mitglied in der Domain werden sollen.

 

Verwendete Konfiguration

VariableWertBeschreibung
meinserverlemaker.fritz.boxServer der Domaincontroller ist
IPADRESSE192.168.101.18IP-Adresse des Domaincontrollers
example.comlemaker.fritz.boxDomain
EXAMPLEMBalternative Workgroup
UBUNTUubuName des Linuxcomputers der in die Domain aufgenommen werden soll
und auf dem die hier beschriebene Konfiguration stattfindet

Vorbereitung der Installation

Test der Namensauflösung

Im Normalfall erfüllt der Domaincontroller ebenfalls die Funktion eines DNS-Servers der einen Teil der (domain-internen) Namen auflöst und alle anderen Anfragen an einen weiteren DNS-Server weiterleitet (dns forwarding)
Deshalb ist es wichtig, dass der Domaincontroller in der ersten Konfigurationsebene des nameserver Eintrages steht.

root@ubu:~# 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.18
nameserver 192.168.101.1
search fritz.box
root@ubu:~#

Die Namenauflösung wird getestet in dem man auf den Domaincontroller, einen internen Namen und auf einen beliebigen anderen Server außerhalb des Subnetzes einen ping absetzt.

Prüfung auf den Namen des Domaincontrollers
root@ubu:~# ping -c 1 lemaker.fritz.box
PING lemaker.fritz.box (192.168.101.18) 56(84) bytes of data.
64 bytes from lemaker.fritz.box (192.168.101.18): icmp_seq=1 ttl=64 time=13.8 ms

--- lemaker.fritz.box ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 13.853/13.853/13.853/0.000 ms
Prüfung auf einen internen Namen innerhalb der Domainstruktur
root@ubu:~# host -t SRV _kerberos._udp.lemaker.fritz.box
_kerberos._udp.lemaker.fritz.box has SRV record 0 100 88 lemaker.lemaker.fritz.box.
root@ubu:~#
Prüfung auf einen Namen außerhalb des Subnetzes
root@ubu:~# ping -c 1 t-online.de
PING t-online.de (217.6.164.162) 56(84) bytes of data.
64 bytes from www.t-online.de (217.6.164.162): icmp_seq=1 ttl=249 time=22.9 ms

--- t-online.de ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 22.902/22.902/22.902/0.000 ms
root@ubu:~#

DNS-Konfiguration ggf. anpassen

Ist die o.g. Prüfung der Namensauflösung negativ verlaufen und werden insbesondere die internen Namen der Domainstruktur nicht aufgelöst, so muss die DNS-Konfiguration angepasst werden.

Soll-Konfiguration: Der DNS-Server ist gleich dem Domaincontroller.

Die beste Möglichkeit ist die Einstellung über das Tool /usr/bin/network-admin (als User "root" auf einer grafischen Oberfläche)

Lokale host-Datei anpassen

Die Sache ist offensichtlich sehr wichtig und birgt große Fehlerquellen.
Es ist daher sehr wichtig hier die korrekten Namen für die beteiligten Computer zu verwenden.
Siehe Abschnitt "Verwendete Konfiguration" 

/etc/hosts
127.0.0.1	ubu.lemaker.fritz.box localhost ubu
#127.0.1.1	ubu
192.168.101.18	lemaker.fritz.box lemaker

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

ntp-Dienst prüfen

Für den ordnungsgemäßen Betrieb innerhalb einer Domain 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:~#

 

Installation / Konfiguration

Pakete installieren

Die beiden Pakete krb5-user und libpam-krb5 sind nur bei der Installationsvariante mit ADS erforderlich.

apt-get install krb5-user libpam-krb5 winbind  samba  smbclient libnss-winbind libpam-winbind

Während der Installation wird die Kerberos-Konfiguration abgefragt.
Hierbei muss als REALM der REALM des Domaincontrollers angegeben werden (in GROSSBUCHSTABEN) und in den beiden folgenden Abfragen ebenfalls der Name des Domaincontrollers

Danach muss noch die Kerberos-Konfigurationsdatei kontrolliert / angepasst werden.
Wie bereits erwähnt: Nur wenn man ADS verwenden möchte....

/etc/krb5.conf
[logging]
    default = FILE:/var/log/krb5.log

[libdefaults]
	default_realm = LEMAKER.FRITZ.BOX

# The following krb5.conf variables are only for MIT Kerberos.
	krb4_config = /etc/krb.conf
	krb4_realms = /etc/krb.realms
	kdc_timesync = 1
	ccache_type = 4
	forwardable = true
	proxiable = true
	ticket_lifetime = 24000
	clock_skew = 300

# The following libdefaults parameters are only for Heimdal Kerberos.
	v4_instance_resolve = false
	v4_name_convert = {
		host = {
			rcmd = host
			ftp = ftp
		}
		plain = {
			something = something-else
		}
	}
	fcc-mit-ticketflags = true

[realms]
	LEMAKER.FRITZ.BOX = {
		kdc = lemaker.fritz.box:88
		admin_server = lemaker.fritz.box:464
		default_domain = LEMAKER.FRITZ.BOX
	}

[domain_realm]
	.lemaker.fritz.box = LEMAKER.FRITZ.BOX
	lemaker.fritz.box = LEMAKER.FRITZ.BOX

[login]
	krb4_convert = true
	krb4_get_tickets = false

Kerberos-Installation testen

(Im Normalfall muss Samba auf dem lokalen System nicht gestartet sein und winbind auch noch nicht)
Selbstverständlich muss aber Samba auf dem Domaincontroller gestartet sein ... 

root@ubu:~# kinit Administrator@LEMAKER.FRITZ.BOX
Password for Administrator@LEMAKER.FRITZ.BOX: 
Warning: Your password will expire in 36 days on So 06 Mär 2016 12:37:47 CET
root@ubu:~#
root@ubu:~# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: Administrator@LEMAKER.FRITZ.BOX

Valid starting       Expires              Service principal
29.01.2016 22:43:29  30.01.2016 05:23:23  krbtgt/LEMAKER.FRITZ.BOX@LEMAKER.FRITZ.BOX
root@ubu:~#

Samba konfigurieren

/etc/samba/smb.conf
[global]
   security = ads
   realm = LEMAKER.FRITZ.BOX
   #Der folgende Eintrag wird nicht benötigt
   #password server = IPADRESSE     #IP des Domain Controllers

   workgroup = MB
   idmap uid = 10000-20000
   idmap gid = 10000-20000
   winbind enum users = yes
   winbind enum groups = yes
   winbind cache time = 10
   winbind use default domain = yes
   template homedir = /home/%U
   template shell = /bin/bash
   client use spnego = yes
   client ntlmv2 auth = yes
   encrypt passwords = yes
   restrict anonymous = 2
   domain master = no
   local master = no
   preferred master = no
   os level = 0
   server string = %h server (Samba, Ubuntu)
   dns proxy = no
   log file = /var/log/samba/log.%m
   max log size = 1000
   syslog = 0
   panic action = /usr/share/samba/panic-action %d
   server role = member server
   passdb backend = tdbsam
   obey pam restrictions = yes
   unix password sync = yes
   passwd program = /usr/bin/passwd %u
   passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
   pam password change = yes
   map to guest = bad user
   usershare allow guests = yes

[printers]
   comment = All Printers
   browseable = no
   path = /var/spool/samba
   printable = yes
   guest ok = no
   read only = yes
   create mask = 0700

[print$]
   comment = Printer Drivers
   path = /var/lib/samba/printers
   browseable = yes
   read only = yes
   guest ok = no

Dann den Service samba starten, aber winbind noch nicht.
Ggf. kann man die samba-Konfiguration mit dem Befehl "testparm" testen.

Domain beitreten

root@ubu:~# net ads join -U Administrator 
Enter Administrator's password:
Using short domain name -- MB
Joined 'UBU' to dns domain 'lemaker.fritz.box'
root@ubu:~#

Wenn beim Beitritt zur Domain der folgende Fehler auftritt ...

No DNS domain configured for <COMPUTERNAME>. Unable to perform DNS Update.
DNS update failed: NT_STATUS_INVALID_PARAMETER

... dann bitte nochmal den Abschnitt "Lokale host-Datei anpassen" lesen und hostdatei korrekt anpassen.

Danach winbind-Service starten

root@ubu:~# service winbind start
winbind start/running, process 1485
root@ubu:~#

Erste Tests mit winbind

root@ubu:~# wbinfo -u
administrator
krbtgt
guest
root@ubu:~#
root@ubu:~# wbinfo -g
allowed rodc password replication group
enterprise read-only domain controllers
denied rodc password replication group
read-only domain controllers
group policy creator owners
ras and ias servers
domain controllers
enterprise admins
domain computers
cert publishers
dnsupdateproxy
domain admins
domain guests
schema admins
domain users
dnsadmins
root@ubu:~#

Nameservice switch konfigurieren

/etc/nsswitch.conf
#Folgende Einträge anpassen
passwd:         compat winbind
group:          compat winbind
shadow:         compat 

Danach winbind-Service neu starten

Userliste anzeigen

 Es sollten lokale UNIX_Benutzer und Domainuser angezeigt werden

root@ubu:~# getent passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
libuuid:x:100:101::/var/lib/libuuid:
syslog:x:101:104::/home/syslog:/bin/false
messagebus:x:102:106::/var/run/dbus:/bin/false
landscape:x:103:109::/var/lib/landscape:/bin/false
sshd:x:104:65534::/var/run/sshd:/usr/sbin/nologin
klaus:x:1000:1000:klaus,,,:/home/klaus:/bin/bash
#Ab hier Domainbenutzer
administrator:*:10000:10000:Administrator:/home/administrator:/bin/bash
krbtgt:*:10001:10000:krbtgt:/home/krbtgt:/bin/bash
guest:*:10002:10001:Guest:/home/guest:/bin/bash
root@ubu:~#

Gruppenliste anzeigen

root@ubu:~# getent group
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog,klaus
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:
uucp:x:10:
man:x:12:
proxy:x:13:
kmem:x:15:
dialout:x:20:
fax:x:21:
voice:x:22:
cdrom:x:24:klaus
floppy:x:25:
tape:x:26:
sudo:x:27:klaus
audio:x:29:
dip:x:30:klaus
www-data:x:33:
backup:x:34:
operator:x:37:
list:x:38:
irc:x:39:
src:x:40:
gnats:x:41:
shadow:x:42:
utmp:x:43:
video:x:44:
sasl:x:45:
plugdev:x:46:klaus
staff:x:50:
games:x:60:
users:x:100:
nogroup:x:65534:
libuuid:x:101:
netdev:x:102:
crontab:x:103:
syslog:x:104:
fuse:x:105:
messagebus:x:106:
mlocate:x:107:
ssh:x:108:
landscape:x:109:
klaus:x:1000:
lpadmin:x:110:klaus
sambashare:x:111:klaus
winbindd_priv:x:112:
#Ab hier Domaingruppen
allowed rodc password replication group:x:10002:
enterprise read-only domain controllers:x:10003:
denied rodc password replication group:x:10004:krbtgt
read-only domain controllers:x:10005:
group policy creator owners:x:10006:administrator
ras and ias servers:x:10007:
domain controllers:x:10008:
enterprise admins:x:10009:administrator
domain computers:x:10010:
cert publishers:x:10011:
dnsupdateproxy:x:10012:
domain admins:x:10013:administrator
domain guests:x:10001:
schema admins:x:10014:administrator
domain users:x:10000:
dnsadmins:x:10015: