Servus Stefan!

Am Donnerstag, den 19.07.2012, 19:52 +0200 schrieb Stefan Bauer:
> 
> derzeit nutzt mein System pam_unix zum Authentifizieren des Benutzers
> gegen /etc/passwd+shadow.
> Jetzt hab ich hier einen Server 2008 und würde mich gerne mit pam_ldap
> spielen.

Geht schon, kann man machen, ob sinnvoll? Ich würde Kerberos statt LDAP
zur Authentifizierung empfehlen und das Ganze einschränken, denn root,
admin, nagios etc. brauchen noch Passwörter in /etc/passwd:

/etc/pam.d/common-password
password   sufficient pam_krb5.so minimum_uid=2000
password   required   pam_unix.so nullok obscure min=4 max=8 md5

/etc/pam.d/common-auth 
auth    sufficient      pam_unix.so nullok_secure
auth    required        pam_krb5.so use_first_pass forwardable

/etc/pam.d/common-session
session optional        pam_krb5.so ignore_root
session required        pam_unix.so

/etc/pam.d/common-account
account sufficient      pam_krb5.so
account required        pam_unix.so broken_shadow


> Ich frage mich, wie es gedacht ist, wo und wie die zusätzlichen Infos
> bezogen werden wie:
> 
> UID/GUID
> Homedirectory
> Shell

Dazu benötigst du im AD eine Schemaerweiterung. 2 Wege führen dazu:
1) Unix-Services for Windows (NIS)
2) nur die Schemaerweiterung

Einzelheiten habe ich grad nicht im Kopf, also häng dich bitte nicht an
Namen auf. Einfach die entsprechende Rolle dem AD hinzufügen, soweit ich
das noch im Kopf habe. Nach der Erweiterung kannst du im Benutzerobjekt
im AD oben genannte Infos eintragen.

Damit Linux das dann auch frisst benötigst du LDAP, NSS und den nscd
(besser unscd, weil nscd zu buggy und aufgeblasen). Nscd cached dir die
LDAP Einträge, weil bei jedem Zugriff aufs FS uid/gid abgefragt werden,
dazu will man nicht wirklich für jedes Objekt eine neue LDAP-Anfrage an
den AD starten. 

/etc/nsswitch.conf:
passwd:         files ldap
group:          files ldap
shadow:         files
[..]

/etc/libnss-ldap.conf:
base dc=domain,dc=com
uri ldap://dc.domain.com
ldap_version 3
bind_policy soft
nss_map_attribute uid sAMAccountName
nss_map_attribute homeDirectory unixHomeDirectory
nss_map_attribute uniqueMember member
nss_map_attribute memberUid nosuchattribute
nss_map_attribute userPassword nosuchattribute
nss_map_attribute gecos displayName
nss_map_attribute shadowLastChange pwdLastSet

pam_login_attribute sAMAccountName
pam_filter objectclass=User
pam_password ad

# RFC 2307 (AD) mappings
nss_map_objectclass posixAccount User
nss_map_objectclass posixGroup Group
nss_map_objectclass shadowAccount User
nss_map_attribute objectClass objectCategory

use_sasl on

# Use paged results
nss_paged_results yes
pagesize 1000
referrals no


# Disable SASL security layers. This is needed for AD.
SASL_SECPROPS maxssf=0

# Override the default Kerberos ticket cache location.
krb5_ccname FILE:/var/run/nscd/krb5cc
nss_initgroups_minimum_uid 2000



Und die zugehörige LDAP Konfiguration:
/etc/ldap/ldap.con:
BASE    dc=domain,dc=com
HOST    dc.domain.com
SASL_MECH   gssapi
bind_policy soft
TLS_CACERT /etc/ssl/domain.com-CA-cacert.pem

Damit die LDAP-Authentifizierung am AD auch mit Kerberos statt
simple_bind funktioniert, muss noch kstart laufen (der füttert
die /var/run/nscd/krb5cc mit den entsprechenden credentials aus der
Keytab und erneuert die Tickets regelnmässig).

/usr/bin/k5start -b -p /var/run/k5start.pid -K 60 -f /etc/krb5.keytab
-k /var/run/nscd/krb5cc short_hostname

simple_bind ist das, was du möchtest, wenn du nur LDAP machst. SSL am AD
habe ich noch nicht implementiert, TLS hingegen klappt prima! Bei LDPA
only muss halt die /etc/pam.d/common-* entsprechend anpassen, dazu
findet man aber genug Know-How im Internet.

Kerberos ist ein eigenes Thema. SPN und UPN muss für die Maschine im AD
erstellt worden sein und mit kinit auch auf dem Linux-Rechner
eingerichtet worden sein. Können wir bei Bedarf mal vis-avis durchgehen.
Kerberos ist halt toll, weil man sich eine SSO Lösung ins Haus holt und
die Basis für sicheres NFSv4 schafft.

Noch Fragen? ;-)

LG
-- 


---------------------------------------------------------------------------
 copyleft(c) by |   _-_     Avoid the Gates of Hell. Use Linux (Unknown
 Peter Allgeyer | 0(o_o)0   source)
---------------oOO--(_)--OOo-----------------------------------------------


_______________________________________________
lug-ts mailing list
[email protected]
http://www.lug-ts.de/mailman/listinfo/lug-ts

Antwort per Email an