Portál AbcLinuxu, 30. dubna 2025 17:12

Síťová autentizace pomocí OpenLDAP + NFS

10.1.2011 20:19 | Přečteno: 3513× | Výběrový blog | poslední úprava: 11.1.2011 17:26

Příklad nastavení OpenLDAP serveru a NFS serveru pro podporu přihlášení vzdálených uživatelů na desktopech.

Úvod:

Cílem je zajistit přihlašování uživatelů na linuxových desktopech, kdy udaje o uživatelích jsou uloženy na LDAP serveru a domovské adresáře uloženy na NFS serveru. Uživatel desktopu požádá o přihlášení - autorizuje se pomocí LDAP serveru a budou mu poskytnuty soubory pomocí NFS serveru. Postup neřeší podrobnější konfiguraci LDAP serveru, změny záznamů, atd., konfigurace NFS je jen základ. Slouží spíše k dalšímu studiu.


Příprava:

Pro příklad použijeme tyto servery a PC

LDAP server
IP: 192.168.1.2
Minimální instalace Debian Squeeze
hostname -f
...
ldap.firma.cz
NFS server
IP: 192.168.1.3
Minimální instalace Debian Squeeze
hostname -f
...
nfs.firma.cz
Desktop
IP: 192.168.1.100
Desktop instalace
hostname -f
...
pc100.firma.cz

Instalace OpenLDAP serveru:

Provedeme instalaci OpenLDAP serveru na ldap.firma.cz

apt-get install slapd ldap-utils
...
zadat heslo ldap admin
...
Starting OpenLDAP: slapd

Instalace provede základní nastavení serveru. Nové verze openLDAP mají konfiguraci uloženu přímo v databázi separátně v cn=config - tzv. dynamická konfigurace - změny možné za běhu OpenLDAP serveru


Kontrola běhu - výpis obsahu databáze:

ldapsearch -xLLL -b "dc=firma,dc=cz"
...
dn: dc=firma,dc=cz
objectClass: top
objectClass: dcObject
objectClass: organization
o: firma.cz
dc: firma 
dn: cn=admin,dc=firma,dc=cz
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator

Instalace vytvořila organizaci a uživatele admin


Výpis konfigurace (omezený na dn):

ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b cn=config dn
...
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
dn: cn=config

dn: cn=module{0},cn=config

dn: cn=schema,cn=config

dn: cn={0}core,cn=schema,cn=config

dn: cn={1}cosine,cn=schema,cn=config

dn: cn={2}nis,cn=schema,cn=config

dn: cn={3}inetorgperson,cn=schema,cn=config

dn: olcBackend={0}hdb,cn=config

dn: olcDatabase={-1}frontend,cn=config

dn: olcDatabase={0}config,cn=config

dn: olcDatabase={1}hdb,cn=config

Jsou defaultně naimportována schémata - core, cosine, nis, inetorgperson


Naplnění databáze daty:

Vytvoření organizačních jednotek

soubor organizationalUnit.ldif
...
dn: ou=users,dc=firma,dc=cz
objectClass: organizationalUnit
ou: users

dn: ou=groups,dc=firma,dc=cz
objectClass: organizationalUnit
ou: groups

ldapadd -x -D cn=admin,dc=firma,dc=cz -W -f organizationalUnit.ldif
...
Enter LDAP Password: 
adding new entry "ou=users,dc=firma,dc=cz"

adding new entry "ou=groups,dc=firma,dc=cz"

V příkladech se často používá ou=People, ou=Group


Vytvoření skupiny

soubor posixGroup.ldif
...
dn: cn=ldap_users,ou=groups,dc=firma,dc=cz
objectClass: posixGroup
cn: ldap_users
gidNumber: 10000
description: Group account

ldapadd -x -D cn=admin,dc=firma,dc=cz -W -f posixGroup.ldif

Každý uživatel bude ve skupine ldap_users. (Dnes je zvykem, že každý uživatel má vytvořenou i svou skupinu??)


Vytvoření uživatele

soubor user.ldif
...
dn: uid=testldap,ou=users,dc=firma,dc=cz
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
cn: testldap
uid: testldap
uidNumber: 10000
gidNumber: 10000
homeDirectory: /home/testldap
loginShell: /bin/bash
gecos: Test LDAP
description: User account

ldapadd -x -D cn=admin,dc=firma,dc=cz -W -f user.ldif

Bez objectClass: account to házelo chybu


Výpis obsahu databáze

ldapsearch -xLLL -b "dc=firma,dc=cz"
...

Měly by se zobrazit přidané položky


Začátečníci pro kontrolu použít grafického LDAP klienta

na obrázku je jiná IP adresa než v příkladu


Name Service a PAM:

Zajistí nám propojení systému s daty o uživatelích uložených v LDAP - systém "uvidí" uživatele v LDAP. Toto musíme nastavit na NFS serveru (potřebujeme nastavovat práva souboru uživatelů) a na klientovi / desktopu (potřebuje se přihlásit). Naopak na LDAP serveru by z bezpečnostních důvodů nemělo být přihlašování uživatelů dovoleno - nenastavujeme.

apt-get install libnss-ldap libpam-ldap
Configuring libnss-ldap
LDAP server URI: 
ldap://192.168.1.2/
Distinguished name of the search base:
dc=firma,dc=cz
LDAP version to use:
3
LDAP account for root:
cn=admin,dc=firma,dc=cz
LDAP root account password:
heslo

Configuring libpam-ldap
Allow LDAP admin account to behave like local root?
Yes
Does the LDAP database require login?
No
LDAP administrative account:
cn=admin,dc=firma,dc=cz
LDAP administrative password:
heslo

Instalační script upozorní, že je nutno ručně nastavit NSS


Nastavení NSS

edit /etc/nsswitch.conf
...
passwd:         compat ldap
group:          compat ldap
shadow:         compat ldap

Raději reboot - (po restartu NSS systém viděl uživatele, ale nešly v MC nastavit práva k souborům)


Nezapomenout vytvořit domovský adresář /home/testldap pro uživatele testldap na NFS serveru. Nastavení práv 40700 - uid=10000,gid=10000 - zkopírování profilu z /etc/skel (nastavit práva)


Kontrola nastavení NSS a PAM - výpis uživatelů a skupin na NFS serveru a klientovi

getent passwd
...
testldap:x:10000:Test LDAP:/home/testldap:/bin/bash
...

getent group
...
ldap_users:*:10000
...

Ve výpisech by jsme měli vidět i uživatele a skupiny uložené v LDAP


Přihlašení uživatele

Uživatel by měl být schopen se lokálně přihlásit na NFS serveru


Změna hesla uživatelů v LDAP databázi - oprava chyby

passwd testldap
passwd: Authentication information cannot be recovered
passwd: password unchanged
...
heslo nejde změnit

edit /etc/pam.d/common-password
...
zmenit use_authok na try_authok
...

bug?


NFS server:

Export domovských adresářů uživatelů

apt-get install nfs-kernel-server

edit soubor /etc/exports

/home    *(rw,sync,no_root_squash,no_subtree_check)

/etc/init.d/nfs-kernel-server reload
nebo
exportfs -a

Zápis neřeší optimalizaci NFS serveru


NFS klient na desktopu:

Před, nebo během přihlášení připojit domovský adresář uživatele z NFS serveru

edit /etc/fstab
...
192.168.1.3:/home /home nfs rsize=8192,wsize=8192,timeo=14,intr
...

Případně použít automount


Závěr:

Prosím o upozornění na případné nedostatky, chyby, doporučení, atd.


Zdroje:

Wikipedie

Debian Wiki

Ubuntu Server Guide

       

Hodnocení: 100 %

        špatnédobré        

Obrázky

Síťová autentizace pomocí OpenLDAP + NFS, obrázek 1

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

Saljack avatar 10.1.2011 22:24 Saljack | skóre: 28 | blog: Saljack | Praha
Rozbalit Rozbalit vše Re: Síťová autentizace pomocí OpenLDAP + NFS
Odpovědět | Sbalit | Link | Blokovat | Admin
Dalo by se LDAP použít i na routeru Asus, čistě jenom pro zkušební účely?
Sex, Drugs & Rock´n Roll.
11.1.2011 09:53 Martin Lojda | skóre: 4
Rozbalit Rozbalit vše Re: Síťová autentizace pomocí OpenLDAP + NFS
Pokud na nem bezi OpenWRT, tak nevidim duvod, proc by neslo - existuje primo balicek openldap-server. Popripade pokud je kompatibilni s DebWRT (momentalne asi akorat wl-500gP), tak tam pujde praticky cokoli ;-)
11.1.2011 10:53 SPM | skóre: 28
Rozbalit Rozbalit vše Re: Síťová autentizace pomocí OpenLDAP + NFS
Otázka jak moc je to dobrý nápad - můj LDAP zabírá celkem místo v paměti (ne nijak velké, ale když se veme v úvahu, že ty routery mají nějak cca 64MB RAM, možná míň, tak to dost je)... a když ho chytí amok memory leaků, tak ani gigabajty nestačí :(
Saljack avatar 11.1.2011 11:21 Saljack | skóre: 28 | blog: Saljack | Praha
Rozbalit Rozbalit vše Re: Síťová autentizace pomocí OpenLDAP + NFS
Přesně to jsem měl namysli. To, že to jde nainstalovat mě nezajímá, mě zajímá jestli to půjde provozovat. Zkoušel to někdo?
Sex, Drugs & Rock´n Roll.
11.1.2011 11:49 Martin Lojda | skóre: 4
Rozbalit Rozbalit vše Re: Síťová autentizace pomocí OpenLDAP + NFS
Tak to by nebylo od veci router blize specifikovat, protoze "pouzit na routeru Asus" je ponekud siroky pojem. Na modelu s 32MB ram by snad nemel byt problem - osobne jsem nezkousel, ale kdyz uz se nekdo delal s balickem, tak predpokladam, ze uplne teoreticke to neni... Napr. Postgre databaze mi na routeru s 32MB ram bezi bez vetsich problemu (= pouzivat se to da, na vetsi veci to samozrejme neni).
11.1.2011 13:08 tuxmartin | skóre: 39 | blog: tuxmartin | Jicin
Rozbalit Rozbalit vše Re: Síťová autentizace pomocí OpenLDAP + NFS
Odpovědět | Sbalit | Link | Blokovat | Admin
Minimální instalace Debian Sarge

To jste zverejnil stary navod, nebo stale pouzivate Debian Sarge? ;-)

OndraZX avatar 11.1.2011 17:28 OndraZX | skóre: 27 | blog: OndraZX | Frydek-Mistek
Rozbalit Rozbalit vše Re: Síťová autentizace pomocí OpenLDAP + NFS
Samozřejmě Squeeze - opraveno - díky :-)
11.1.2011 17:36 tuxmartin | skóre: 39 | blog: tuxmartin | Jicin
Rozbalit Rozbalit vše Re: Síťová autentizace pomocí OpenLDAP + NFS
Takze misto stareho Sarge tam mate testing ;-)

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.