Mikhail Zakharov ([email protected])
În cadrul organizațiilor mari, o creștere a numărului de utilizatori duce în mod inevitabil la probleme legate de administrarea conturilor. În acest caz, este necesară implementarea unui singur sistem de autentificare. Una dintre variantele unui astfel de sistem se poate baza pe utilizarea unui server LDAP.
Pentru a construi un astfel de sistem pe FreeBSD (FreeBSD-4.4-Release), am folosit următorul software distribuit gratuit:
Înainte de a începe, vreau să fac în prealabil câteva remarci și avertismente importante. În primul rând, manualul propus se referă la genul de pornire rapidă. și opțiuni de configurare enumerate aici nu sunt ideale probleme de autentificare soluție, este doar modelul unui sistem de autentificare bazat pe LDAP. În al doilea rând, pentru a face modificări în pam.conf să fie atenți, pentru că situația este posibil, în care nici un utilizator pur și simplu nu va fi capabil să treacă de autentificare prin orice metodă. Și, în sfârșit, în al treilea rând, după instalarea serverului LDAP pentru a vă asigura că biblioteca liblber. * Și libldap. * Sunt în directoarele / usr / lib și fișiere disptmpl.h, LBER * .h, * .h și ldap srchpref .h sunt localizate în directorul / usr / include. Acest lucru vă va salva de la erorile în compilarea și conectarea software-ului client.
Configurarea serverului LDAP.
Ca server LDAP, vom configura OpenLDAP-2.0.23. Toate fișierele de configurare OpenLDAP sunt localizate în directorul / usr / local / etc / openldap. Aici, în primul rând, fișierul slapd.conf este interesant, în care sunt specificate setările serverului. În cazul nostru, acest dosar trebuie să conțină cel puțin următoarele 8 linii:
Primele trei linii conectează schema LDAP. Formatul și structura de date stocate în LDAP sunt definite prin scheme. Procedura de conectare a circuitelor este importantă, deoarece circuitul poate utiliza valorile definite într-o altă schemă.
Apoi, tipul de bază de date este indicat, în care informațiile sunt într-adevăr stocate, în cazul nostru este ldbm.
Suffix definește baza pentru interogare, rădăcina la care ne referim atunci când solicităm baza de date LDAP. Suffix este selectat când se configurează un server LDAP și este, de obicei, numele de domeniu al organizației.
Ultima linie specifică directorul în care vor fi localizate fișierele bazei de date LDBM.
În sfârșit, în slapd.conf, este util să adăugați reguli care diferențiază accesul la resursele LDAP, de exemplu:
accesul la dn = ". *, dc = testdomain, dc = en" attr = userPassword
de dn = "cn = Admin, dc = testdomain, dc = en" scrieți
accesul la dn = ". *, dc = testdomain, dc = en"
de dn = "cn = Admin, dc = testdomain, dc = en" scrieți
Rulați serverul LDAP:
Acum puteți popula baza de date server LDAP. Pentru a face acest lucru, creați un fișier text, de exemplu testdomain.ldif, care conține înregistrări despre organizația, administratorul, grupul de utilizatori și, de fapt, unul dintre utilizatori:
Clienții LDAP.
Pentru a asigura funcționarea serviciilor de rețea pe FreeBSD, sunt de obicei instalate versiuni gratuite de software distribuite. Majoritatea acestor programe nu pot interacționa direct cu LDAP, dar susțin posibilitatea autentificării prin intermediul modulelor PAM. Întrucât, în cazul nostru, există o majoritate de astfel de programe, vom începe cu ei.
Mai întâi, modulul PAM pe care îl vom folosi se numește pam_ldap. În distribuția FreeBSD acest modul nu este inclus, deci trebuie să fie instalat utilizând sistemul port sau compilat manual prin preluarea acestuia de pe serverul www.padl.com.
Modulul pam_ldap caută fișierul de configurare ldap.conf. De obicei, acest fișier ar trebui să fie localizat în directorul / etc, dar uneori, în funcție de opțiunile specificate la compilare, acesta poate fi localizat în / usr / local / etc /.
/etc/ldap.conf va conține numai 3 rânduri:
Aici BASE este baza pentru căutarea în arborele LDAP;
pam_password indică faptul că vor fi utilizate parolele necriptate. Acest lucru se face pentru simplitate, în practică este mai rezonabil să se utilizeze parole criptate. Cu toate acestea, în acest caz, este necesar ca parolele stocate în LDAP să fie, de asemenea, criptate. Desigur, intrarea rootpw din /usr/local/etc/slapd.conf este recomandată, de asemenea, să fie criptată. Pentru a genera parole, inclusiv cele criptate, puteți utiliza utilitarul ldappasswd din suita OpenLDAP.
Fișierul de configurare PAM principal este localizat în directorul / etc și se numește pam.conf. Se compune din reguli care descriu metodele de efectuare a autentificării pentru diverse servicii. Pentru serviciile noastre, intrările în pam.conf pot fi:
Primul lucru pe care vrem este să organizăm accesul prin autentificare:
autentificați auth suficient pam_ldap.so
autentifica auth suficient pam_skey.so
conectați auth requisite pam_cleartext_pass_ok.so
autentificare autentificare necesară pam_unix.so try_first_pass
codul de conectare necesar pam_unix.so
parola de conectare necesară pam_permit.so
sesiunea de conectare necesară a pam_permit.so
Pentru intrările FTP arătați mai simplu:
ftpd auth suficient pam_ldap.so
ftpd auth suficient pam_skey.so
ftpd auth requisite pam_cleartext_pass_ok.so
Au nevoie de ftpd auth pam_unix.so try_first_pass
OpenSSH va necesita următoarele reguli:
sshd auth suficient pam_ldap.so
sshd auth suficient pam_skey.so
sshd auth a cerut pam_unix.so try_first_pass
Sshd-ul este necesar pentru pam_unix.so
sshd parola necesară pam_permit.so
Sesiunea sshd a necesitat pam_permit.so
Următoarele rânduri sunt necesare în /etc/pam.conf:
samba auth a solicitat pam_ldap.so
Sesiunea samba a necesitat pam_ldap.so
Cea mai simplă configurație este în Qpopper 4.4. În /etc/pam.conf adăugăm:
pop3 auth suficient pam_ldap.so
În plus, Qpopper trebuie de asemenea să fie compilat cu suport PAM:
Singurul produs care rulează servere cu LDAP fără ajutorul PAM este SQUID. Pentru autentificare prin LDAP Squid, folosim propriul nostru modul squid_ldap_auth, care este un program extern. În distribuția Squid, sursele sale sunt în directorul auth_modules / LDAP.
Prin compilarea și instalarea squid_ldap_auth, puteți începe configurarea Squid.
În squid.conf, specificăm că trebuie să folosim modulul de autentificare:
authenticate_program / usr / local / squid / libexec / squid / squid_ldap_auth -B dc = testdomain, dc = ru ldap_server
Apoi, pentru testare, adăugăm la squid.conf cel mai simplu ACL:
parola acl proxy_auth REQUIRED
http_access permite parola
http_access neagă toate