Liebe Leidensgenossen,
mein Problem ist zwar überall beschrieben und doch nicht dazu passend. Eigentlich läuft soweit alles, ausser das alle Profile, auch die vom Admin, mit dem Vermerk(im Win XP Pro SP1) "Typ: Nur lesen" aber Servergespeichert sind. Sobald irgendeine Änderung gemacht wird und ich mich abmelde sind diese alle weg.. Sonst läuft alles. Anmelden ist ok. Zugriff auf alle Shares kein Problem. auch ist alles sichtbar.
Eine Sache ist mekrwürdig:
Wenn der angemeldete User den befehl net use x: /home ausführt, wird auf dem OpenLDAP Server erstmal nach dem user gesucht(an dem log kann ich sehen, dass er ein feedback mit nentries=1 etwas gefunden hat), dann aber eine suche nach nobody(inklusive sambaGroupmapping) und dann sucht er nach uid=home. Was soll den das für ein mist? Und dann wird als Endergebnis im log smbd erfcl20001-xpp (10.0.0.143) couldn't find service home zurückgeliefert. Irgendwie komisch oder.
Ansonsten lief alles nach Plan.. Die Installation vom Suse 9.1 verlief "mehr oder weniger" problemlos, aber sauber. Danach yast online update gefahren. Und dann ans konfigurieren. Folgende Software wurde mit einbezogen:
• Suse 9.1 (FTP installation)
• make(per yast2)
• webmin((per yast2) danach aus dem webmin upgraden..)
• locate(per yast2)
• nss_ldap(per yast2)
• pam_ldap(per yast2)
• net::sslea(Suse unclude Perl Script(per yast2))
• net::ldap(Suse unclude Perl Script(per yast2))
• samba(server 3.0.4)(per yast2)
• samba(client)(per yast2)
• openldap Server 2.x(per yast2)
• crypt::smbhash 0.02(externes perl modul, ebenfalls ist zip da. Nur noch installieren.)
• smbldap-tools 0.8.5(vorbereites package ist schon da als zip. Bei neuer struktur neu anpassen)
Ich habe mir eine Anleitung aus den ganzen RedHat Linux + Samba3 + LDAP ******* meine eigene Suse beschreibung gebaut. Danach gehe ich vor(die XP notwendigen sachen sind noch nicht drin, alle es sind schon alle gemacht worden): Ach noch was, es spielt keine rolle ob bei [homes] ein pfad drin ist oder nicht. Die Homes findet er generell beim anmelden nie. Aber als share sind diese da. Witzig(ist dat ne *******e.)
Aufsetzen eines Suse Linux 9.1 Servers +
Samba 3.0.4(NT 4 Schema +PDC) + LDAP
Server 2.x Revision 1.0
1.0.0 Nachdem aufsetzen des Linux Servers müssen noch einige Packeges installiert werden.
Hierbei handelt es sich um die:
• make(per yast2)
• webmin((per yast2) danach aus dem webmin upgraden..)
• locate(per yast2)
• nss_ldap(per yast2)
• pam_ldap(per yast2)
• net::ssley(Suse unclude Perl Script(per yast2))
• net::ldap(Suse unclude Perl Script(per yast2))
• samba(server)(per yast2)
• samba(client)(per yast2)
• openldap Server 2.x(per yast2)
• crypt::smbhash(externes perl modul, ebenfalls ist zip da. Nur noch installieren.)
• smbldap-tools(vorbereites package ist schon da als zip. Bei neuer struktur neu anpassen)
!!!!!!!!!!!!!!!!Wichtig nach der installation ein YastOnlineUpdate zu machen und ein init 6
!!Samba noch in ruhe lassen, bis alles notwenigen Files drüben sind, sonst wird's kompliziert..
1.1.0Jetzt geht es dem OpenLDAP Server an den kragen mit dem Pfad /etc/openldap/slapd.conf:
################################################## #############################
# Die Include Files #
################################################## #############################
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema
include /etc/openldap/schema/samba3.schema
################################################## #############################
# Die pid Files #
################################################## #############################
pidfile /var/run/slapd/run/slapd.pid
argsfile /var/run/slapd/run/slapd.args
################################################## #############################
# Load dynamic backend modules: #
################################################## #############################
modulepath /usr/lib/openldap/modules
access to *
by * write
################################################## ##############################
# bdb database definitions #
################################################## ##############################
database ldbm
suffix "dc=berlin-home,dc=local"
rootdn "cn=Manager,dc=berlin-home,dc=local"
# Cleartext passwords, especially for the rootdn, should
# be avoid. See slappasswd(8) and slapd.conf(5) for details.
# Use of strong authentication encouraged.
rootpw secret
directory /var/lib/ldap
# Indices to maintain
index objectClass,uidNumber,gidNumber eq
index cn,sn,uid,displayName pres,sub,eq
index memberUid,mail,givenname eq,subinitial
index sambaSID,sambaPrimaryGroupSID,sambaDomainName eq
1.1.1 Das war der OpenLDAP Server. Jetzt nur noch die Datei /etc/openldap/ldap.conf bearbeiten
################################################## ##############################
# Hier kommen die Base als Standardsuchpfad #
################################################## ##############################
BASE dc=berlin-home, dc=local
HOST 10.0.0.140
1.1.1.1 Den OpenLDAP Server starten mit /etc/init.d/ldap start
Der Server sollte ohne irgendwelche Probleme starten. Sollte es nicht der Fall sein, Fehler
ansehen und entsprechend versuchen zu beheben. Sonst kann man sich den Rest sparen.
1.1.2 Und jetzt kommt Samba dran(!! Aber den Samba noch nicht neu starten) mit der Datei
/etc/samba/smb.conf
# Samba config file created using SWAT
# from 10.0.0.139 (10.0.0.139)
# Date: 2004/06/18 20:13:45
# Global parameters
[global]
unix charset = ISO8859-1
workgroup = berlin-home
server string = Samba Server
interfaces = 10.0.0.140
bind interfaces only = Yes
client schannel = Yes
server schannel = Auto
map to guest = Bad User
passdb backend = ldapsam:ldap://10.0.0.140/
passwd program = /usr/local/sbin/smbldap-passwd "%u"
smb ports = 445 139 137
printcap cache time = 750
add user script = /usr/local/sbin/smbldap-useradd -m "%u"
add group script = /usr/local/sbin/smbldap-groupadd -p "%g"
add user to group script = /usr/local/sbin/smbldap-groupmod -m "%u" "%g"
delete user from group script = /usr/local/sbin/smbldap-groupmod -x "%u" "%g"
set primary group script = /usr/local/sbin/smbldap-usermod -g "%g" "%u"
add machine script = /usr/local/sbin/smbldap-useradd -w "%u"
logon path = \\%L\profiles\.msprofile
logon drive = X:
logon home = \\%L\%U\.9xprofile
domain logons = Yes
os level = 65
log level = 10
preferred master = Yes
domain master = Yes
wins support = Yes
# Ldap Suffix & Co.#
ldap suffix = dc=berlin-home,dc=local
ldap machine suffix = ou=Computers
ldap user suffix = ou=Users
ldap group suffix = ou=Groups
ldap admin dn = cn=Manager,dc=berlin-home,dc=local
ldap ssl = no
ldap delete dn = Yes
valid users = nobody, testuser1, root, Administrator
printer admin = @ntadmin, root, administrator
cups options = raw
[homes]
comment = Home Directories
valid users = %U
read only = No
inherit permissions = Yes
browseable = No
[profiles]
comment = Network Profiles Service
path = /home/samba/profiles
valid users = %U, '@Domain Admins'
force user = %U
read only = No
create mask = 0600
directory mask = 0700
profile acls = Yes
store dos attributes = Yes
[netlogon]
path = /home/samba/netlogon
write list = ntadmin
guest ok = Yes
[users]
comment = All users
path = /home
read only = No
inherit permissions = Yes
veto files = /aquota.user/groups/shares/
[groups]
comment = All groups
path = /home/groups
read only = No
inherit permissions = Yes
[pdf]
comment = PDF creator
path = /var/tmp
create mask = 0600
printable = Yes
[printers]
comment = All Printers
path = /var/tmp
create mask = 0600
printable = Yes
browseable = No
[print$]
comment = Printer Drivers
path = /var/lib/samba/drivers
write list = @ntadmin, root
force group = ntadmin
create mask = 0664
directory mask = 0775
[ldap]
path = /home/ldap
read only = No
guest ok = Yes
!!!!!!!!!!Wichtig ist auch folgende Pfade gemäß der smb.conf zu erstellen:
mkdir /home/samba
mkdir /home/samba/netlogon
mkdir /home/samba/profiles
chmod 1777 /home/samba/profiles
1.1.3 Das war Samba(feel free to define your own new definitions). Jetzt müssen wir die nur noch
das Passwort aus der /etc/openldap/slapd.conf in die secrets.tdb schreiben. Das passiert mit dem
Befehl:
smbpasswd -w <passwort>
Dann einfach kucken, ob der eingetragen „cn=<manager>,dc=<erster wert>,dc=<zweiter wert> mit
dem übereinstimmt, dass in der smb.conf „ldap admin dn =“ + in der slapd.conf. Das Passwort was
wir eingetragen haben ist das, was Samba zur authentication mit LDAP benötigen wird, um die
Daten vom LDAP Server anzufordern.
1.1.4 Wer möchte kann noch die lmhosts unter /etc/samba füttern. Besser fürs Netbios.
# This file provides the same function that the lmhosts file does for
# Windows. It's another way to map netbios names to ip addresses.
# See section 'name resolve order' in the manual page of smb.conf for
# more information.
127.0.0.1 localhost
10.0.0.140 Linux2.berlin-home.local
10.0.0.143 erfcl20001-xpp.berlin-home.local
1.1.5 Wir kommen nun zu den wichtigsten Parts. Die /etc/ldap.conf:
################################################## #############################
# Host ist wohl jedem klar.. muss übereinstimmen.. Man kann auch LINUX2.TUX-NET machen.#
# Allerdings muss Linux2.TUX-NET DNS mässig auflösbar sein.Das ist der Hacken.. #
################################################## #############################
host 10.0.0.140
################################################## ##############################
# The distinguished name of the search base. Erleutrn muss man dies nicht.. Die Base-Adresse #
# worauf der Server zuerst gesucht werden soll #
################################################## ##############################
base dc=berlin-home,dc=local
ldap_version 3
binddn cn=Manager,dc=berlin-home,dc=local
bindpw secret
port 389
scope sub
pam_password md5
nss_base_passwd dc=berlin-home,dc=local?sub
nss_base_shadow dc=berlin-home,dc=local?sub
nss_base_group ou=Groups,dc=berlin-home,dc=local?one
ssl No
1.1.6 Nun ist auch die Zauberdatei /etc/nsswitch.conf. In der müssen die fett folgenden Einträge
angepasst sein.
#
# /etc/nsswitch.conf
#
# For more information, please read the nsswitch.conf.5 manual page.
#
passwd: compat
shadow: files ldap
group: compat
passwd_compat: ldap
group_compat: ldap
hosts: files dns
networks: files dns
services: files
protocols: files
rpc: files
ethers: files
netmasks: files
netgroup: files
publickey: files
bootparams: files
automount: files nis
aliases: files
1.1.7 Und the last but not least.. Die wichtigsten Dateien überhaupt /etc/pam.d/login und /
etc/pam.d/passwd. Vorsicht ist angesagt.. Es gibt keine Config-Tools dafür(ausser füs Red Hat
Linux)
Als erstes schnappen wir uns die datei /etc/pam.d/login:
auth requisite pam_unix2.so nullok #set_secrpc
auth sufficient pam_ldap.so
auth required pam_securetty.so
auth required pam_nologin.so
auth required pam_env.so
auth required pam_mail.so
account sufficient pam_ldap.so
account required pam_unix2.so
password sufficient pam_ldap.so
password required pam_pwcheck.so nullok
password required pam_unix2.so nullok use_first_pass use_authtok
session sufficient pam_ldap.so
session required pam_unix2.so none # debug or trace
session required pam_limits.so
Und nun kommt die /etc/pam.d/passwd
#%PAM-1.0
auth sufficient pam_ldap.so
auth required pam_unix2.so nullok
account sufficient pam_ldap.so
account required pam_unix2.so
password sufficient pam_ldap.so
password required pam_pwcheck.so nullok
password required pam_unix2.so nullok use_first_pass use_authtok
session sufficient pam_ldap.so
session required pam_unix2.so
1.1.8 Jetzt müssen wir noch das Package crypt::SmbHash falls noch nicht installiert noch
installieren.
perl Makefile.PL
make
make test
make install
1.1.9 Wir sind nun fertig und doch nur am anfang. Jetzt kümmern wir ums füttern des LDAP
Servers.
Erstmal mit ./configure.pl die smbldap.conf und smbldap_bind.conf neu schreiben lassen.
Die darin angeforderten anfragen immer neu bestätigen.. Habe es nicht testen wollen, was
das Programm macht, wenn man nur enter drückt bei sachen, wo er den pfad zeigte. Sollte
die smbldap-tools sollte immer unter /usr/local/sbin drin sein, sonnst pfade anpassen. Wenn
das ./configure durchgelaufen ist, kann man sich dem script smbldap-populate widmen.
Dieses macht die ersten einträge. Es muss ohne Fehler durchlaufen.. Ansonsten wird 100%
Ärger/Probleme geben.
Beendet wird das ganze indem wir noch ein Zusatzscript laufen lassen. Es beinhaltet
folgende Einträge(ansich brachen wir auch nur die einträge mit dem nssldap):
dn: ou=DSA,dc=berlin-home,dc=local
objectClass: top
objectClass: organizationalUnit
ou: DSA
description: security accounts for LDAP clients
dn: cn=samba,ou=DSA,dc=berlin-home,dc=local
objectclass: organizationalRole
objectClass: top
objectClass: simpleSecurityObject
userPassword: defaultpwd
cn: samba
dn: cn=nssldap,ou=DSA,dc=berlin-home,dc=local
objectclass: organizationalRole
objectClass: top
objectClass: simpleSecurityObject
userPassword: defaultpwd
cn: nssldap
dn: cn=smbldap-tools,ou=DSA,dc=berlin-home,dc=local
objectclass: organizationalRole
objectClass: top
objectClass: simpleSecurityObject
userPassword: defaultpwd
cn: smbldap-tools
Jetzt wäre ein guter Zeitpunkt den Samba Server neu zu starten mit den Befehlen:
/etc/init.d/smb restart
/etc/init.d/nmb restart
1.2.0 Damit aber auch die Account laufen und richtig müssen noch die Passwörter richtig gesetzt
werden mit den folgenden commands:
ldappasswd -x -h 10.0.0.140 -D "cn=Manager,dc=berlin-home,dc=local" -s sambasecretpwd -W \
cn=samba,ou=DSA,dc=berlin-home,dc=local
Das Passwort was der LDAP Server euch fragt ist das Passwort, was in der slapd.conf drinsteht und
auch was ihr in der secrets.tdb verewigt habt.
ldappasswd -x -h 10.0.0.140 -D "cn=Manager,dc=berlin-home,dc=local" -s nssldapsecret \
-W cn=nssldap,ou=DSA,dc=berlin-home,dc=local
Bei diesem Account müsst ihr mit den Passwörtern vorsichtig sein, da dieser Account auch in
der /etc/ldap.conf als „binddn=“ samt Klartextpasswort eingetragen ist und dies auch
geändert werden muss, wenn ihr die Passwörter fü den Account ändert.
Das Passwort was der LDAP Server euch fragt ist das Passwort, was in der slapd.conf drinsteht und
auch was ihr in der secrets.tdb verewigt habt.
ldappasswd -x -h 10.0.0.140 -D "cn=Manager,dc=berlin-home,dc=local" -s smbldapsecretpwd \
-W cn=smbldap-tools,ou=DSA,dc=berlin-home,dc=local
Mal nach den SID nachkucken mit net groupmap ob alles ok ist.. das kommt raus wenn alles ok ist.
Domain Admins (S-1-5-21-1356524046-1554731702-4227933625-512) -> Domain Admins
Domain Users (S-1-5-21-1356524046-1554731702-4227933625-513) -> Domain Users
Domain Guests (S-1-5-21-1356524046-1554731702-4227933625-514) -> Domain Guests
Print Operators (S-1-5-32-550) -> Print Operators
Backup Operators (S-1-5-32-551) -> Backup Operators
Replicators (S-1-5-32-552) -> Replicators
1.2.0 Auch mit dem Tool von Pegacat Jxplorer die ID vom guest/nobody prüfen. Die
SambaSID muss auf 501 und die SambaPrimaryGroupSID muss auf 513 sein. Dann erst lässt
euch der Samba an dem LDAP ran. Ansonsten gibt es die schicke meldung: „Can't become
connected user“..
!!!!!!!!!!!!!!!!!Wichtig.. Beim Script die SID UNBEDINGT DER SYSTEMSID ANPASSEN.
Eigentlich sollte nun alles funktionieren. Sowohl das joinen der Domains als auch das Anmelden an
der Domain. Viel Spass noch.....
Lesezeichen