Trotz mehrerer Fragen dazu, z. B. Linux unter Windows AD Domain, möchte ich wissen, wie Debian 6.0 Squeeze mit Open Source oder auf andere Weise kostenlos für Tools zur kommerziellen Nutzung in AD integriert werden kann
BEARBEITEN : Nur Tools, deren (Sicherheits-) Updates über apt bereitgestellt werden, sind zulässig.
Bisher habe ich in der Lage , die tatsächlichen Benutzer erhalten Authentifizierung Arbeit über Kerberos, zum Beispiel die Protokolle zeigen , dass der Benutzername / Passwort - Prüfung erfolgreich, aber der Benutzer ist nicht in der Lage Login finden Sie unter Protokollauszug unten;
BEARBEITEN : Protokoll aktualisiert mit Pam Debug on:
May 12 10:06:33 debian-6-master login[10601]: pam_krb5(login:auth): pam_sm_authenticate: entry (0x0)
May 12 10:06:33 debian-6-master login[10601]: pam_krb5(login:auth): (user test.linux) attempting authentication as [email protected]
May 12 10:06:36 debian-6-master login[10601]: pam_krb5(login:auth): user test.linux authenticated as [email protected]
May 12 10:06:36 debian-6-master login[10601]: pam_krb5(login:auth): pam_sm_authenticate: exit (success)
May 12 10:06:36 debian-6-master login[10601]: pam_unix(login:account): could not identify user (from getpwnam(test.linux))
May 12 10:06:36 debian-6-master login[10601]: pam_krb5(login:account): pam_sm_acct_mgmt: entry (0x0)
May 12 10:06:36 debian-6-master login[10601]: pam_krb5(login:account): (user test.linux) retrieving principal from cache
May 12 10:06:36 debian-6-master login[10601]: pam_krb5(login:account): pam_sm_acct_mgmt: exit (success)
May 12 10:06:36 debian-6-master login[10601]: pam_env(login:session): No such user!?
May 12 10:06:36 debian-6-master login[10601]: pam_env(login:session): No such user!?
May 12 10:06:36 debian-6-master login[10601]: pam_krb5(login:session): pam_sm_open_session: entry (0x0)
May 12 10:06:36 debian-6-master login[10601]: pam_krb5(login:session): (user test.linux) getpwnam failed for test.linux
May 12 10:06:36 debian-6-master login[10601]: pam_krb5(login:session): pam_sm_open_session: exit (failure)
May 12 10:06:36 debian-6-master login[10601]: pam_unix(login:session): session opened for user test.linux by LOGIN(uid=0)
May 12 10:06:36 debian-6-master login[10601]: User not known to the underlying authentication module
May 12 10:06:36 debian-6-master login[10601]: PAM 1 more authentication failure; logname=LOGIN uid=0 euid=0 tty=/dev/tty3 ruser= rhost=
Mein ldap.conf
sieht so aus:
base dc=ad,dc=domain
uri ldap://10.10.10.10
ldap_version 3
binddn [email protected]
bindpw password
scope sub
pam_password ad
nss_base_passwd dc=ad,dc=domain?sub
nss_base_shadow dc=ad,dc=domain?sub
nss_base_group dc=ad,dc=domain?sub? &(objectCategory=group)(gidnumber=*)
nss_map_objectclass posixAccount user
nss_map_objectclass shadowAccount user
nss_map_objectclass posixGroup group
nss_map_attribute gecos cn
nss_map_attribute homeDirectory unixHomeDirectory
nss_map_attribute uniqueMember member
pam_sasl_mech DIGEST-MD5
nsswitch.conf
::
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.
passwd: compat
group: compat
shadow: compat
hosts: files dns ldap
networks: files ldap
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis ldap
passwd_compat: files ldap
group_compat: files ldap
shadow_compat: files ldap
Alle /etc/pam.d
sind wie erstellt von pam-auth-update
, alle drei (Kerberos, Unix und LDAP) Authentifizierungsmethoden ausgewählt.
Ich kann anhand der Paketerfassung bestätigen, dass die LDAP-Suchergebnisse die Benutzerinformationen korrigieren, wie unten als manuelles ldapsearch
Ergebnis gezeigt:
dn: CN=Linux\, test,OU=SpecialAccounts,OU=FI1-Helsinki,OU=EMEA,OU=_Managed Are
as,DC=ad,DC=domain
objectClass: top
objectClass: person
objectClass: domainanizationalPerson
objectClass: user
cn: Linux, test
sn: Linux
givenName: test
distinguishedName: CN=Linux\, test,OU=SpecialAccounts,OU=FI1-Helsinki,OU=EMEA,
OU=_Managed Areas,DC=ad,DC=domain
instanceType: 4
whenCreated: 20110407131914.0Z
whenChanged: 20110511125854.0Z
displayName: Linux, test
uSNCreated: 4144737
uSNChanged: 4638378
name: Linux, test
objectGUID:: wwZt/MX/K0S36BL4bS2w+g==
userAccountControl: 66048
badPwdCount: 0
codePage: 0
countryCode: 0
badPasswordTime: 129489044965699903
lastLogoff: 0
lastLogon: 129495915807176914
pwdLastSet: 129466559550934238
primaryGroupID: 513
objectSid:: AQUAAAAAAAUVAAAAzXxBZqg31mUH5TsrkisAAA==
accountExpires: 9223372036854775807
logonCount: 35
sAMAccountName: test.linux
sAMAccountType: 805306368
userPrincipalName: [email protected]
lockoutTime: 0
objectCategory: CN=Person,CN=Schema,CN=Configuration,DC=ad,DC=domain
dSCorePropagationData: 20110407131916.0Z
dSCorePropagationData: 16010101000000.0Z
lastLogonTimestamp: 129488989872488561
uid: test.linux
msSFU30Name: test.linux
msSFU30NisDomain: ad
uidNumber: 10002
gidNumber: 10000
unixHomeDirectory: /home/test.linux
loginShell: /bin/sh
# refldap://DomainDnsZones.ad.domain/DC=DomainDnsZones,DC=ad,DC=domain
# refldap://ForestDnsZones.ad.domain/DC=ForestDnsZones,DC=ad,DC=domain
# refldap://ad.domain/CN=Configuration,DC=ad,DC=domain
# pagedresultscookie=
- Mit einem korrekten Benutzernamen und Passwort bekomme ich MOTD und eine Nachricht
User not known to the underlying authentication module
- Mit einem falschen Benutzernamen bekomme ich
Login incorrect
- Mit einem korrekten Benutzernamen, aber einem falschen Passwort werde ich
SASL/DIGEST-MD5 authentication started
gefolgtLogin incorrect
Auf dem AD wird ein Windows 2k8 (r2) -Server ausgeführt. Alle Debian-Pakete stammen von apt.
Irgendwelche Ideen sind sehr willkommen.
EDIT 2 : Wie unten vorgeschlagen, habe ich sssd
mit ähnlichen Ergebnissen versucht , jetzt wird das Passwort zweimal abgefragt und das Protokoll zeigt:
May 12 14:53:06 debian-6-master login[11389]: pam_sss(login:auth): authentication failure; logname=LOGIN uid=0 euid=0 tty=/dev/tty3 ruser= rhost= user=test.linux
May 12 14:53:06 debian-6-master login[11389]: pam_sss(login:auth): received for user test.linux: 10 (User not known to the underlying authentication module)
May 12 14:53:14 debian-6-master login[11389]: pam_krb5(login:auth): user test.linux authenticated as [email protected]
May 12 14:53:14 debian-6-master login[11389]: pam_unix(login:account): could not identify user (from getpwnam(test.linux))
May 12 14:53:15 debian-6-master login[11389]: pam_sss(login:account): Access denied for user test.linux: 10 (User not known to the underlying authentication module)
May 12 14:53:15 debian-6-master login[11389]: pam_env(login:session): No such user!?
May 12 14:53:15 debian-6-master login[11389]: pam_env(login:session): No such user!?
May 12 14:53:15 debian-6-master login[11389]: pam_krb5(login:session): (user test.linux) getpwnam failed for test.linux
May 12 14:53:15 debian-6-master login[11389]: pam_unix(login:session): session opened for user test.linux by LOGIN(uid=0)
May 12 14:53:15 debian-6-master login[11389]: User not known to the underlying authentication module
EDIT 3 :
Wenn ich sssd
im Vordergrund mit Debug-Level auf 5 laufe , zeigt das Protokoll:
(Fri May 13 13:50:33 2011) [sssd[nss]] [nss_cmd_endpwent] (4): Terminating request info for all accounts
(Fri May 13 13:50:33 2011) [sssd[nss]] [nss_cmd_getpwnam] (4): Requesting info for [test.linux] from [<ALL>]
(Fri May 13 13:50:33 2011) [sssd[nss]] [nss_cmd_getpwnam] (2): No matching domain found for [test.linux], fail!
(Fri May 13 13:50:34 2011) [sssd[pam]] [pam_cmd_authenticate] (4): entering pam_cmd_authenticate
(Fri May 13 13:50:34 2011) [sssd[pam]] [pam_print_data] (4): command: PAM_AUTHENTICATE
(Fri May 13 13:50:34 2011) [sssd[pam]] [pam_print_data] (4): domain: (null)
(Fri May 13 13:50:34 2011) [sssd[pam]] [pam_print_data] (4): user: test.linux
(Fri May 13 13:50:34 2011) [sssd[pam]] [pam_print_data] (4): service: login
(Fri May 13 13:50:34 2011) [sssd[pam]] [pam_print_data] (4): tty: /dev/tty3
(Fri May 13 13:50:34 2011) [sssd[pam]] [pam_print_data] (4): ruser: (null)
(Fri May 13 13:50:34 2011) [sssd[pam]] [pam_print_data] (4): rhost: (null)
(Fri May 13 13:50:34 2011) [sssd[pam]] [pam_print_data] (4): authtok type: 1
(Fri May 13 13:50:34 2011) [sssd[pam]] [pam_print_data] (4): authtok size: 8
(Fri May 13 13:50:34 2011) [sssd[pam]] [pam_print_data] (4): newauthtok type: 0
(Fri May 13 13:50:34 2011) [sssd[pam]] [pam_print_data] (4): newauthtok size: 0
(Fri May 13 13:50:34 2011) [sssd[pam]] [pam_print_data] (4): priv: 1
(Fri May 13 13:50:34 2011) [sssd[pam]] [pam_print_data] (4): cli_pid: 12507
(Fri May 13 13:50:34 2011) [sssd[pam]] [pam_reply] (4): pam_reply get called.
(Fri May 13 13:50:34 2011) [sssd[pam]] [pam_reply] (4): blen: 8
(Fri May 13 13:50:34 2011) [sssd[nss]] [nss_cmd_endpwent] (4): Terminating request info for all accounts
(Fri May 13 13:50:34 2011) [sssd[nss]] [nss_cmd_getpwnam] (4): Requesting info for [test.linux] from [<ALL>]
(Fri May 13 13:50:34 2011) [sssd[nss]] [nss_cmd_getpwnam] (2): No matching domain found for [test.linux], fail!
Antworten:
Ich würde empfehlen, sssd zu verwenden. Dies ist ein Standard - Paket in Debian Squeeze und macht das Leben viel einfacher. Bei der Installation von sssd sollten Sie gefragt werden, welche Authentifizierungsmethoden verwendet werden sollen. Treffen Sie dort Ihre Auswahl, und die Skripte nsswitch.conf und pam.d werden automatisch aktualisiert. Sie müssen einige Details zu Ihrer AD-Domain zur Hand haben, aber dann sollten Sie sie trotzdem kennen (z. B. welcher DC verwendet werden soll und wie der Kerberos-Realm-Name lautet usw.).
Glauben Sie mir, ich habe viel recherchiert (und einige der diesbezüglich auf dieser Website gestellten Fragen stammen von mir), und sssd ist die Antwort. Es funktioniert sogar gut für Laptops, da die Anmeldeinformationen zwischengespeichert werden und Sie die Eigenschaften des Caches bestimmen können.
Hier ist unsere sssd.conf-Datei mit einigen Kommentaren:
Dies basiert auf der Verwendung der UNIX-Dienste in Windows Server 2008 (das jetzt ein wesentlicher Bestandteil davon ist und in 2k3 und früheren Versionen ein Add-In war).
Im Gegensatz zu anderen LDAP-Systemen benötigt AD eine authentifizierte Sitzung, bevor Daten abgerufen werden können. Wir haben einen speziellen Benutzer namens LDAPsearch erstellt, um dies zu erleichtern. Dies kann jedoch wahrscheinlich auch mit dem tatsächlichen Domänenbenutzer durchgeführt werden.
Bei der Konfiguration von Benutzern müssen Sie deren UNIX-Dienstdetails (Ausgangsverzeichnis, Benutzer-ID und Mitgliedschaft in der primären Gruppe) einrichten. Dies ist jedoch sehr einfach.
Natürlich können Sie eine andere Suchbasis verwenden und Filter hinzufügen, um sicherzustellen, dass Benutzer Mitglieder bestimmter Gruppen usw. sind. Lesen Sie einfach die Manpage für sssd.
quelle
sssd
und bindend für NSS und Pam, aber keine Hilfe. :(Schauen Sie sich Ebenso offen an . Viel weniger herumspielen ist notwendig, obwohl eine emulierte Windows-Registrierung nicht gerade meine Vorstellung von einer guten Zeit ist. Aber die neueren Versionen sind ziemlich solide geworden, es ist einen Blick wert.
quelle
apt-get
irgendwo raus bringt.Ebenso beliebt ist, aber ich habe in letzter Zeit Centrify Express für alle meine Linux-Boxen in meinem Arbeitslabor verwendet und es war großartig. Es wird mit einer eigenen Version von SAMBA geliefert. Die Einrichtung ist so einfach wie die Installation des RPM (lesen Sie jedoch unbedingt das PDF).
quelle
In diesem Thread gab es eine ähnliche Frage , und das OP brachte die Arbeit
winbind
dazu, die Suche nach Benutzernamen und UID sowie diepam_krb5
Kennwortauthentifizierung durchzuführen. Auf diese Weise laufen jetzt mehrere Squeeze-Server.Alle notwendigen Teile sind in Debian. Es sind keine Repositorys von Drittanbietern oder nicht sicherheitsaktualisierten Aktualisierungen erforderlich.
quelle
SSSD könnte die Antwort sein, obwohl ich es noch nicht benutzt habe, also weiß ich es nicht. Was ich verwendet habe, ist Winbind von Samba3x und das hat ziemlich gut funktioniert. Das Problem bei der direkten Konfiguration von Kerberos und LDAP besteht zumindest für mich darin, dass Sie dann die UID / GID und das Home-Verzeichnis für alle vorhandenen Benutzer neu füllen und zwei Datenwelten in AD / LDAP verwalten müssen, was nicht gut zu sein schien Nutzung der Zeit. winbind macht die nativen AD-Gruppen verfügbar, gibt sein Computerkonto in Kerberos neu ein usw. Der einzige Nachteil ist, dass es auf Hostnamen mit maximal 15 Zeichen besteht, um eine seltsame Art von Netbios-Kompatibilität aufrechtzuerhalten, von der ich nicht überzeugt bin, dass sie tatsächlich existiert oder für irgendetwas von Bedeutung ist In Fenstern wird der Daemon nicht mehr immer wieder eingeklemmt und muss neu gestartet werden, was einen funktionierenden OOB-Zugriff erfordert. In Kombination mit pam_mkhomedir und pam_access werden Konten automatisch ausgefüllt und Sie können bei Bedarf einschränken, wer Zugriff auf welche Hosts hat. Beachten Sie, dass Benutzernamen und Gruppen mit Leerzeichen an überraschend vielen Stellen funktionieren, einige Tools wie pam_access access.conf jedoch nicht mit Gruppen mit Leerzeichen funktionieren.
quelle