Um Debian (ab v8) korrekt in eine Windows Domäne zu integrieren sind einige Schritte notwendig welche ich hier zusammenfasse.
Active Directory Authentifizierung
Zu beginn prüfen wir das Hosts File:
1 |
sudo vi /etc/hosts |
Hier passen wir die Zeile wie folgt an:
(hostname und domain ersetzen)
1 2 |
127.0.0.1 localhost x.x.x.x(LAN-IP) server01.domain.loc server01 |
Als erstes installieren wir Samba und Winbind:
1 |
sudo apt-get install samba smbclient samba-common winbind |
Danach sorgen wir dafür das Samba automatisch startet:
Das sollte eigentlich die Installation schon erledigt haben, aber sicher ist sicher.
1 2 |
sudo /etc/init.d/samba start sudo update-rc.d samba enable |
Nun installieren wir Kerberos und sichern die Originale Konfiguration:
1 2 |
sudo apt-get install krb5-user sudo cp -p /etc/krb5.conf /etc/krb5.conf.ori |
Nun ändern wir die Kerberos Konfiguration:
1 |
sudo vi /etc/krb5.conf |
Der vorhandene Inhalt kann gelöscht und durch den folgenden Inhalt ersetzt werden.
- DOMAIN.LOC ist die Active Directory Domäne
- dc01.domain.loc ist der FQDN vom PDC
- dc02.domain.loc ist der FQDN von einem weiteren DC
!!! Bitte genau auf die Groß / Kleinschreibung achten !!!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
[logging] Default = FILE:/var/log/krb5.log [libdefaults] default_realm = DOMAIN.LOC clockskew = 300 ticket_lifetime = 24h renew_lifetime = 7d forwardable = true dns_lookup_realm = false dns_lookup_kdc = true [realms] DOMAIN.LOC = { # PDC admin_server = dc01.domain.loc # PDC and additional DCs (if exists) kdc = dc01.domain.loc kdc = dc02.domain.loc } [domain_realm] domain.loc = DOMAIN.LOC .domain.loc = DOMAIN.LOC |
Nun löschen wir bereits vorhandene Kerberos Tickets etc:
1 2 |
sudo kdestroy sudo klist |
Anschließend prüfen wir ob wir ein gültiges Kerberos Ticket bekommen:
1 2 |
sudo kinit Administrator@DOMAIN.LOC sudo klist |
Bekommen wir hier ein gültiges Ticket ist die Konfiguration soweit OK und wir können fortfahren.
Um fortzufahren brauchen wir noch weitere Packete:
1 |
sudo apt-get install libpam-krb5 libpam-winbind libnss-winbind |
Jezt sichern wir noch die Samba config:
1 |
sudo cp -p /etc/samba/smb.conf /etc/samba/smb.conf.ori |
Jetzt bearbeiten wir die Samba Konfiguration:
1 |
sudo vi /etc/samba/smb.conf |
- DOMAIN ist der NETBIOS Name von der Domäne
- DOMAIN.LOC ist die Active Directory Domäne
- dc01.domain.loc ist der FQDN vom PDC
- dc02.domain.loc ist der FQDN von einem weiteren DC
!!! Auch hier gilt es wieder die Groß / Kleinschreibung zu beachten !!!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
#======================= Global Settings ======================= [global] workgroup = DOMAIN security = ads realm = DOMAIN.LOC password server = dc01.domain.loc,dc02.domain.loc domain logons = no template homedir = /home/%D/%U template shell = /bin/bash winbind enum groups = yes winbind enum users = yes winbind use default domain = yes domain master = no local master = no prefered master = no os level = 0 idmap config *:backend = tdb idmap config *:range = 11000-20000 idmap config DOMAIN:backend = rid idmap config DOMAIN:range=10000000-19000000 ## Browsing/Identification ### # Change this to the workgroup/NT-domain name your Samba server will part of # workgroup = WORKGROUP |
Im gleichen File kommentieren wir noch [homes], [printers] und [print$] aus:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
#======================= Share Definitions ======================= #[homes] # comment = Home Directories # browseable = no # By default, the home directories are exported read-only. Change the # next parameter to 'no' if you want to be able to write to them. # read only = yes # File creation mask is set to 0700 for security reasons. If you want to # create files with group=rw permissions, set next parameter to 0775. # create mask = 0700 # Directory creation mask is set to 0700 for security reasons. If you want to # create dirs. with group=rw permissions, set next parameter to 0775. # directory mask = 0700 # By default, \\server\username shares can be connected to by anyone # with access to the samba server. # The following parameter makes sure that only "username" can connect # to \\server\username # This might need tweaking when using external authentication schemes # valid users = %S # Un-comment the following and create the netlogon directory for Domain Logons # (you need to configure Samba to act as a domain controller too.) ;[netlogon] ; comment = Network Logon Service ; path = /home/samba/netlogon ; guest ok = yes ; read only = yes # Un-comment the following and create the profiles directory to store # users profiles (see the "logon path" option above) # (you need to configure Samba to act as a domain controller too.) # The path below should be writable by all users so that their # profile directory may be created the first time they log on ;[profiles] ; comment = Users profiles ; path = /home/samba/profiles ; guest ok = no ; browseable = no ; create mask = 0600 ; directory mask = 0700 #[printers] # comment = All Printers # browseable = no # path = /var/spool/samba # printable = yes # guest ok = no # read only = yes # create mask = 0700 # Windows clients look for this share name as a source of downloadable # printer drivers #[print$] # comment = Printer Drivers # path = /var/lib/samba/printers # browseable = yes # read only = yes # guest ok = no # Uncomment to allow remote administration of Windows print drivers. # You may need to replace 'lpadmin' with the name of the group your # admin users are members of. # Please note that you also need to set appropriate Unix permissions # to the drivers directory for these users to have write rights in it ; write list = root, @lpadmin |
Sind die Dienste wieder gestartet versuchen wir der Domäne beizutreten:
1 2 3 |
sudo net join -S dc01.domain.loc -U administrator sudo net ads testjoin sudo net ads info |
Jetzt starten wir die notwendigen Dienste neu:
1 2 3 |
sudo /etc/init.d/winbind stop sudo /etc/init.d/samba restart sudo /etc/init.d/winbind start |
Weiter gehts mit der Überprüfung:
1 2 |
sudo wbinfo -u sudo wbinfo -g |
Wenn es erfolgreich war muss wbinfo die User und Gruppen aus dem Active Directory anzeigen.
Nun bringen wir winbidn dazu Passwörter und Gruppen abzufragen:
1 |
sudo vi /etc/nsswitch.conf |
Hier passen wie diese 3 Einträge wie folgt an:
1 2 3 |
passwd: compat winbind group: compat winbind shadow: compat |
Jetzt prüfen wir wieder ob User und Gruppen angezeigt werden:
1 2 |
sudo getent passwd sudo getent group |
Zum Schluss müssen wir dem System noch beibringen Home Ordner automatisch beim einloggen anzulegen:
1 |
sudo vi /etc/pam.d/common-session |
Hier passen wir wieder folgende Einträge an:
(Die erste Zeile sollte bereits vorhanden sein)
1 2 |
session required pam_unix.so session required pam_mkhomedir.so umask=0022 skel=/etc/skel |
Zu guter letzt fügen wir noch die Domänen-Admins als SUDOers hinzu:
1 |
sudo echo '%domänen-admins ALL=(ALL:ALL) ALL' > /etc/sudoers.d/domänen-admins |
bzw. falls man die SUDO Rechte ohne Passworteingabe haben möchte:
1 |
sudo echo '%domänen-admins ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/domänen-admins |
Das „%“ Zeichen steht hier für eine Gruppe, für einzelne User einfach „%“ weglassen.
Quellen:
https://wiki.debian.org/AuthenticatingLinuxWithActiveDirectory
http://www.digitalllama.net/2013/05/join-debian-wheezy-to-windows-active.html
0 Kommentare auf “Debian Active Directory Anbindung”
1 Pings/Trackbacks für "Debian Active Directory Anbindung"
[…] 9. Debian Active Directory Anbindung – SysAdminBlog […]