Quản Trị  Hệ Điều Hành Linux - Unix
 
Sử dụng OpenLDAP để quản lý đăng nhập
14:10 | 10/04/2010
Đây là một tài liệu ngắn gọn giới thiệu sơ lược về cách cài đặt và sử dụng OpenLDAP để quản lý việc đăng nhập tập trung cho một hệ thống. Đặc biệt do người viết chỉ mới tiếp xúc và sử dụng Linux trong một khoảng thời gian chưa lâu nên chỉ có kiến thức cơ bản đối với DEBIAN do đó các thao tác cài đặt, xử lý ở đây chỉ tập trung trên nền DEBIAN. Nội dung tài liệu bao gồm các phần sau:

Tổng quan

Cài đặt OpenLDAP trên Debian 3.0

Cấu hình cho OpenLDAP

Thiết lập cấu hình cho OpenLDAP

Xây dựng CSDL

Cài đặt và cấu hình cho NSS (Name Service Switch)

Cấu hình cho module pam_ldap

Tài liệu này được viết dựa rất nhiều vào hai tài liệu hay sau: http://howto.aphroland.de/HOWTO/LDAP/FrontPage
http://homex.subnet.at/~max/ldap/index_NO-SW-PATENTS.php

Tổng quan

Trong môi trường máy tính mạng thì việc cấp phát và quản lý account là một việc không hoàn toàn đơn giản. Nếu tất cả các máy tính không nối mạng với nhau và mỗi một nhân viên đều chỉ đơn thuần sử dụng một máy tính cụ thể thì mọi việc sẽ trở nên tầm thường. Tuy nhiên, trong điều kiện làm việc ngày nay thì hầu hết các máy tính đều được nối mạng và nhu cầu đặt ra là mỗi người nhân viên có thể cơ động làm việc ở các máy khác nhau đã khiến cho việc quản lý đăng nhập tập trung trở nên cầp thiết. Giải pháp tầm thường cho vấn đề này là tạo tất cả các account trên tất cả các máy để mọi người có thể linh động làm việc ở bất cứ máy nào. Tuy nhiên giải pháp này dẫn đến sự khó khăn trong công tác quản lý ở các khía cạnh như: quản lý user id (uid), group id (gid), quyền hạn sử dụng (level of access), …

Trước đây NIS (Network Information Services) là một giải pháp được nhiều người sử dụng NIS là một giao thức dựa trên RPC và tương tự như NFS. Tuy nhiên NIS lại tỏ ra không thực sự ổn định và LDAP xuất hiện như một sự thay thế phù hợp.

Trong tài liệu này, ta sẽ lần lượt cài đặt và cấu hình các gói sau:

Về phía Server:

libldap2

slapd

migrationtools

openssl

Về phía Client:

libldap2

ldap-client

nss_ldap

pam_ldap



Cài đặt OpenLDAP trên Debian 3.0

Tải về các gói liên quan

Nếu không có nhu cầu bảo mật cao (bật tính năng SSL) đối với việc quản lý thì bạn có thể cài trực tiếp gói slapd đi kèm trên đĩa DEBIAN. Tuy nhiên, ở đây tôi muốn trình bày cách cài đặt hỗ trợ SSL cho nên bạn cần phải biên dịch lại phần source của gói slapd.

Bước 1: Bạn cần bổ sung vào tập tin /etc/apt/sources.list chương trình apt-get có thể tải về phần source của gói slapd và các gói tương ứng khác. Ví dụ:
#deb-src http://ftp.wa.au.debian.org/debian

Bước 2: Cài đặt phần source của gói slapd.
#apt-get source slapd

Bước 3: Cài đặt các gói liên quan cần thiết để có thể biên dịch được gói slapd từ source.
#apt-get build-dep slapd

Bước 4: Cài đặt gói libssl-dev.
#apt-get íntall libssl-dev

Biên dịch và cài đặt

Trước tiên bạn cần chuyển vào thư mục mà lệnh apt-get đã tải về và giải nén nội dung phần source của gói slapd. Để bật tính năng bảo mật cho OpenLDAP, bạn cần thay đổi nội dung của tập tin /debian/rules như sau:

Thay tùy chọn –without-tls thành –with-tls

Nếu bạn không sử dụng tính năng hỗ trợ SASL, bạn có thể xóa bỏ hai tùy chọn: –with-cyrus-sasl và –enable-spasswd.

Sau khi thay đổi nội dung của tập tin /debian/rules cho phù hợp với nhu cầu sử dụng, chúng ta bắt đầu biên dịch lại gói OpenLDAP:
#./debian/rules binary

Sau khi biên dịch thì các gói sau sẽ được tạo ra dưới dạng package của DEBIAN:

slapd_2.0.23-6_i386.deb

libldap2_2.0.23-6_i386.deb

libldap2-dev_2.0.23-6_i386.deb

ldap-utils_2.0.23-6_i386.deb

Sau khi biên dịch xong, ta sẽ cài đặt các gói:
#dpkg -i slapd_2.0.23-6_i386.deb libldap2_2.0.23-6_i386.deb libldap2-dev_2.0.23-6_i386.deb ldap-utils_2.0.23-6_i386.deb

Trong quá trình cài đặt, bạn sẽ được hỏi một loạt các câu hỏi. Khi này bạn chỉ việc trả lời OK với tất cả các câu hỏi vì sau này ta sẽ customize phần cấu hình lại cho phù hợp với nhu cầu sử dụng riêng.

Lưu ý:

Sau khi biên dịch xong thì daemon slapd sẽ được thực thi ngay. Tuy nhiên trước khi hoàn tất việc cấu hình OpenLDAP cho phù hợp ta nên tắt daemon này đi.

Các gói được cài đặt vào máy là các gói do ta tự biên dịch cho nên ta cần tránh việc DEBIAN tự động cập nhật lại các gói này bằng các gói được biên dịch sẫn đi kèm trên đĩa CDROM. Để thực hiện được việc này thì bạn có thể thực hiện bằng hai phương pháp (bạn có thể tham khảo thêm tài liệu Debian Reference để biết thêm thông tin). Ở đây ta sẽ dùng cách sau:
#echo “slapd hold” | dpkg –set-selections
Bạn cũng làm tương tự với các gói vừa cài vào để đảm bảo là tất cả các gói này không bị tự động cập nhật bởi DEBIAN (đây là một thao tác rất quan trọng vì nếu bạn không thực hiện thì các gói mới sẽ bị thay thế bởi các gói mặt nhiên và khi này chức năng SSL sẽ bị tắt đi và mọi việc sẽ trở nên rối rắm, khó debug :-!).

Cấu hình cho OpenLDAP

Thiết lập cấu hình cho OpenLDAP

Sau khi thực hiện xong các bước trên, ta đã hoàn tất việc cài đặt OpenLDAP và bây giờ ta sẽ đi vào việc cấu hình cho nó.

Trước tiên, ta sẽ tạo ra một người dùng mới là slapd:
#useradd slapd

Mọi việc khởi động, quản lý, … sẽ được thực hiện dưới quyền của người dùng tên là slapd.

Sau đó, ta sẽ thực hiện việc đổi owner và quyền truy cập cho hệ thống thư mục liên quan của OpenLDAP:
#chown -R slapd.slapd /etc/ldap
#chmod 750 /etc/ldap
#find /etc/ldap -type f -exec chmod 440 {} \;
#find /etc/ldap -type d -exec chmod 770 {} \;
#chown -R slapd.slapd /var/lib/ldap
#chmod 750 /var/lib/ldap
#rm /var/lib/ldap/*
#chown -R slapd.slapd /var/spool/splurd
#rm /var/spool/slurpd/*

Mọi cấu hình chính của OpenLDAP đều được lưu trong tập tin /etc/ldap/slapd.conf . Để cấu hình lại cho OpenLDAP theo ý của mình thì ta sẽ chỉnh sửa lại tập tin với nội dung sau:

include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/misc.schema

Các tập tin *.schema trên sẽ định nghĩa các kiểu dữ liệu được lưu vào CSDL. Các tập tin *.schema này định nghĩa rất nhiều các quy tắc, quan hệ giữa các thành phần trong CSDL. Ở mức độ ban đầu thì ta chưa cần quan tâm đến các mục này. Sau này, khi cần customize để tạo ra các lớp dữ liệu phù hợp cho một nhu cầu riêng thì ta có thể định nghĩa riêng một schema.

Sau đó, bạn cần thêm vào các mục sau:

# lệnh này yêu cầu OpenLDAP kiểm tra cấu trúc của dữ liệu có
# phù hơp với cấu trúc của dữ liệu được định
# nghĩa trong tập tin *.schema hay không.
schemacheck on
# đường dẫn đến tập tin lưu trữ proccess id của daemon slapd.
pidfile /var/run/slapd.pid
# đường dẫn đến tập tin lưu các tham số được gửi đến daemon slapd.
argsfile /var/run/slapd.arg
# xác định kiểu password-hash mặc định.
password-hash {CRYPT}
password-crypt-salt-format “$1$%.8s”
# log file của daemon thực hiện chức năng replication.
replogfile /var/lib/ldap/replog
# mức độ debug khi thực thi daemon slapd. Bạn nên bắt đầu ở mức 256
loglevel 256
# kiểu CSDL
database ldbm
# kích thước của cache (tính bằng byte).
dbcachesize 3000000

Trên đây chỉ là các thông số có tính chất tham khảo, bạn hoàn toàn có thể thay đổi nó cho phù hợp với nhu cầu sử dụng. Để biết thêm chi tiết về các tham số, bạn có thể tham khảo tài liệu tại trang web http://www.openldap.org

Xây dựng CSDL ban đầu

LDAP tổ chức dữ liệu dạng cây. Do đó trong CSDL phải có một cơ sở, các nhánh, các nhánh của nhánh và các nút lá (các entries trong CSDL). Trong ví dụ này tôi sẽ xây dựng CSDL có cấu trúc như sau:

Cơ sở (base): dc=hcmup,dc=vn

Nhánh 1:
ou=People : lưu trữ thông tin về người dùng (lấy ra từ /etc/passwd)
ou=Group : lưu trữ trong tin về các group trên hệ thống.

Ứng với cơ sở và mỗi nhánh sẽ có một người có toàn quyền quản lý. Và do LDAP tổ chức dữ liệu kiểu cây cho nên người ở mức cao hơn sẽ có quyền cao hơn.

Lưu ý: Password-hash ở đây là dạng CRYPT chứ không phải MD5. Việc mã hóa theo kiểu CRYPT có một số hạn chế nhất định (ví dụ như kích thước chuối mã hóa dài tối đa là 8 kí tự, … Tuy nhiên, đây cũng là một kiểu mã hóa khá tốt. Mặt khác, trên một số hệ thống thì LDAP lại không làm việc tốt với kiểu mã hóa MD5.

Bây giờ ta sẽ thêm vào tập tin /etc/ldap/slapd.conf thông số về CSDL như sau:

##############################################
## LDAP Authentication
##############################################
database ldbm
suffix “dc=hcmup,dc=vn”
rootpw your-password (được sinh ra bởi lệnh slappasswd -h {CRYPT} )
directory “/var/lib/ldap”
index objectClass eq
lastmod on
dbcachesize 3000000

access to attribute=userPassword
by dn=”cn=LDAPManager,dc=hcmup,dc=vn” write
by dn=”cn=nss,dc=hcmup,dc=vn” read
by anonymous auth
by * none
access to *
by dn=”cn=LDAPManager,dc=hcmup,dc=vn” write
by dn=”cn=nss,dc=hcmup,dc=vn” read
by * auth

Bây giờ ta sẽ xây dựng CSDL ban đầu, lưu vào tập tin /tmp/initial.ldif:

dn: dc=hcmup, dc=vn
objectClass: organization
o: hcmup dn: cn=LDAPManager, dc=hcmup, dc=vn
objectClass: organizationalRole
objectClass: simpleSecurityObject
cn: Administrator
description: LDAP Administrator
userPassword: your-desired-passwd

dn: cn=nss, dc=hcmup, dc=vn
objectClass: organizationalRole
objectClass: simpleSecurityObject
cn: nss
description: LDAP NSS user for authentication
userPassword: your-desired-passwd

dn: ou=People, dc=hcmup, dc=vn
objectClass: organizationalUnit
ou: People

dn: ou=Group, dc=hcmup, dc=vn
objectClass: top
objectClass: organizationalUnit
ou: Group


Trong phần dữ liệu ở trên thì account LDAPManager được tạo ra để quản lý toàn bộ CSDL và người dùng nss được tạo ra để cho phép các máy client kết nối được vào server để đọc được thông tin trong CSDL của LDAP nhằm phục vụ cho việc đăng nhập. Sau này thì ta sẽ dùng account LDAPManager để thay đổi, thêm vào thông tin người dùng hay account tùy theo yêu cầu.

Để thêm dữ liệu vào CSDL, bạn cần thực hiện lệnh sau:

#slapadd -l /tmp/initial.ldif

Lưu ý: để thêm dữ liệu vào CSDL thì bạn có hai cách: dùng slapadd hay ldapadd. Lệnh slapadd chỉ thực hiện được khi daemon slapd đã được tắt. Còn đối với lệnh ldapadd thì daemon slapd phải chạy trước, sau đó thì việc thêm dữ liệu vào mới được tiến hành. Ngoài ra bạn cần chú ý rằng vì ta đã tạo một account mới là slapd để thực hiện mọi dịch vụ liên quan đến LDAP cho nên khi thêm dữ liệu vào thì chỉ có người dùng này mới được thêm và truy xuất.

Khởi động OpenLDAP

Ở bước này ta sẽ chạy daemon slapd bằng account slapd (account được thêm vào để dành cho chức năng này).:
#su - slapd /usr/bin/slapd -h `ldap://địa-chỉ-ip-của-máy-chủ/’ -d 255

Nếu lệnh su trên máy của bạn không hỗ trợ tính năng này thì bạn có thể làm như sau:
#su slapd -c /usr/bin/slapd -h `ldap://địa-chỉ-ip-của-máy-chủ/` -d 255

Theo mặc nhiên thì daemon này sẽ lắng nghe ở cổng 389. Nếu bạn thêm vào tính năng bảo mật SSL thì slapd sẽ lắng nghe ở cổng 636.

Nếu mọi việc thực hiện thành công thì daemon này sẽ chạy và bạn có thể kiểm tra xem nó có chạy chưa:
#ps aux | grep slapd
Khi này bạn sẽ thấy một loạt thông tin về daemon này trên màn hình.

Xây dựng CSDL quản lý đăng nhập

Để chuyển nội CSDL người dùng trong tập tin /etc/passwd và /etc/group sang CSDL được quản lý bởi OpenLDAP, ta có thể sử dụng gói migrationtools.
#apt-get install migrationtools

Theo một số nguồn thông tin thì gói này trên bản Debian Woody (version 40-1) lại hơi bị “buggy”. Phiên bản mới hơn dành cho Debian Sarge (version 44-6) làm việc tốt hơn. Do đó, thay vì cài gói migrationtools như trên thì bạn có thể tải về gói mới nhất để sử dụng. Bạn có thể tải về gói này ở trang web www.padl.com.

Sau khi giải nén, bạn cần chỉnh lại một số thông tin cho phù hợp trong tập tin migrate_common.ph:
$DEFAULT_MAIL_DOMAIN = “hcmup.vn”;
$DEFAULT_BASE = “dc=hcmup,dc=vn”;
$DEFAULT_MAIL_HOST = “hcmup.edu.vn”;
$EXTENDED_SCHEMA = 1;

Sau khi chỉnh lại các thông số trên, ta bắt đầu tiến hành việc chuyển CSDL trong tập tin /etc/passwd và /etc/group sang dạng LDIF để đưa vào CSDL của OpenLDAP:
#./usr/share/migrationtools/migrate_passwd /etc/passwd > /tmp/passwd.ldif
#./usr/share/migrationtools/migrate_group /etc/group > /tmp/group.ldif

Lưu ý: Tùy theo yêu cầu của bạn mà bạn có thể chuyển các thông tin khác như host, …

Sau khi chuyển dữ liệu xong, bạn cần phải thêm dữ liệu này vào CSDL của OpenLDAP như đã làm:
#slapadd -l /tmp/passwd
#slapadd -l /tmp/group
Bạn nên nhớ là phải dừng daemon slapd trước khi thực hiện việc thêm dữ liệu vào.

Sau khi thêm dữ liệu vào server thì ta đã sẵn sàng cho việc cấu hình phía client. Tuy nhiên để sử dụng SSL thì ta cần phải thực hiện thêm một bước nữa đó là tạo CERTIFICATE (nếu không sửa dụng tính năng SSL thì bạn có thể bỏ qua bước này)..

Tạo Certificate

Khi sử dụng SSL thì bạn cần phải tạo một certificate để giúp cho server và client có thể bắt tay với nhau và trao đổi giữ liệu (nếu không sử dụng SSL thì bạn có thể bỏ qua bước này).

Bạn cần cài đặt gói openssl để có thể tự tạo được certificate (ngoài ra bạn cũng có thể liên hệ với một số web site chuyên về vấn đề này).

Chuyển vào thư mục /usr/lib/ssl/misc và thực hiện lệnh:
#./CA.pl -newca
CA certificate filename (or enter to create)Making CA certificate …
Using configuration from /usr/lib/ssl/openssl.cnf
Generating a 1024 bit RSA private key
………………..++++++
…………………………..++++++
writing new private key to ./demoCA/private/cakey.pem
Enter PEM pass phrase:
Verifying password - Enter PEM pass phrase:
—–
You are about to be asked to enter information that will be incorporated into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ., the field will be left blank.
—–
Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []: địa-chỉ-ip-của-server
Email Address []:


Thông tin ở mục Common Name và rất quan trọng vì nếu thông tin này không đúng thì server và client không thể nào bắt tay với nhau để có thể trao đổi dữ liệu —> mọi thứ xôi hỏng bổng không hết!! :-<<<

#openssl req -new > new.cert.csr
Using configuration from /usr/lib/ssl/openssl.cnf
Generating a 1024 bit RSA private key
………………++++++
…………….++++++
writing new private key to privkey.pem
Enter PEM pass phrase:
Verifying password - Enter PEM pass phrase:
—–
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ., the field will be left blank.
—–
Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:
Email Address []:(DO NOT PUT ANYTHING FOR THESE ENTRIES) Please enter the following extra attributes to be sent with your certificate request
A challenge password []:
An optional company name []:


Tiếp đến ta sẽ lấy phần password trong key file ra để khỏi phải nhập password khi sử dụng

#openssl rsa -in privkey.pem -out new.cert.key
read RSA key
Enter PEM pass phrase:
writing RSA key#cat privkey.pem > newreq.pem
#cat new.cert.csr >>newreq.pem
#./CA.pl -signreq


Using configuration from /usr/lib/ssl/openssl.cnf
(enter the password you used when you created the authority using the CA.pl -newca command above)
Enter PEM pass phrase:
Check that the request matches the signature Signature ok
The Subjects Distinguished Name is as follows
countryName :PRINTABLE:VI
stateOrProvinceName :PRINTABLE:HO CHI MINH
organizationName :PRINTABLE:UNIVERSITY OF EDUCATION
commonName :PRINTABLE: địa-chỉ-ip-của-server
Certificate is to be certified until Jul 27 22:03:10 2022 GMT (7300 days) Sign the certificate? [y/n]:y

Trích phần CERTIFICATE trong tập tin newcert.pem vào một tập tin mới là server.cert. Bên cạnh đó, bạn cần đổi tên tập tin new.cert.key thành server.key. Vậy là quá trình tạo CERTIFICATE hòan tất với hai tập tin quan trong là server.key và server.cert.

Sau đi tạo CERTIFICATE xong, ta cần báo cho OpenLDAP là ta sẽ sử dụng chúng. Do đó, ta sẽ chép hai tập tin trên và thư mục demoCA vào thư mục /etc/ldap/ và chỉnh tập tin /etc/ldap/slapd.conf như sau:
TLSCipherSuite HIGH:MEDIUM:+SSLv2
TLSCertificateFile /etc/ldap/server.cert
TLSCertificateKeyFile /etc/ldap/server.key
TLSCACertificateFile /etc/ldap/demoCA/cacert.pem
TLSVerifyClient 0

Lưu ý là phần nội dung trên phải nằm trước khai báo CSDL và bạn cần phải restart lại LDAP server:
#su slapd /usr/sbin/slapd -h “ldap://địa-chỉ-ip-của-server/ ldaps://địa-chỉ-ip-của-server/”

Cài đặt và cấu hình cho NSS (Name Service Switch)

Cài đặt NSS (Name Service Switch)

Để các máy con có thể thay đổi cách đăng nhập truyền thống, ta cần phải cài thêm hai gói sau vào máy: libnss-ldap và libpam-ldap. Nếu bạn không cần sử dụng tính năng SSL thì chỉ việc cài đặt ngay hai gói trên vào máy. Ở đây, ta sẽ build lại từ source và bất tính năng hỗ trợ SSL:
#apt-get source libnss-ldap libpam-ldap

Sau khi tải về hai gói trên thì bạn cần chỉnh từ –disable-ssl thành –enable-ssl. Tiếp đến, chạy lệnh ./debian/rules binary để build từ source thành gói của Debian.

Lưu ý: hai gói này có sử dụng gói libldap2. Theo mặc định thì khi bạn cài hai gói này thì DEBIAN sẽ tự động cài gói libldap2 mặc định và gói này lại chưa được biên dịch để hỗ trợ SSL. Do đó, bạn cần sử dụng gói libldap2 đã được biên dịch lại khi biên dịch gói slapd trên server để cài vào máy client. Nếu không thì khi sử dụng các tính năng liên quan đến SSL thì bạn sẽ gặp lỗi !!!! (lỗi này đã khiến tác giả mất 1 tuần –> hơi bị thiếu “iốt”)

Tương tự như việc cài đặt gói slapd, bạn có thể cài hai gói này như sau:
#dpkg -i libnss-ldap_186_1.i386.deb libpam-ldap_140-1.deb

Sau khi cài đặt, để tránh việc Debian sẽ tự động upgrade các gói thì bạn cần thực hiện lệnh:
#echo “libnss-ldap hold” | dpkg –set-selections
#echo “libpam-ldap hold” | dpkg –set-selections

Cấu hình cho NSS (Name Service Switch)

Để thay đổi cách thức đăng nhập của hệ thống, ta sẽ thay đổi nội dung của tập tin nsswitch.conf như sau:
passwd: files ldap
group: files ldap
shadow: files ldap

Khi này hệ thống sẽ tìm người dùng trong các tập tin trên đĩa trước, nếu không thấy thì sẽ tìm trong CSDL của LDAP. Sau khi thử nghiệm thành công thì bạn có thể thay đổi cách thức đăng nhập là tìm ngay dữ liệu trong CSDL của LDAP ngay.

Tiếp đến, bạn cần thay đổi nội dung của tập tin /etc/libnss-ldap.conf
# địa chỉ của máy chủ
host địa-chỉ-ip-của-server
# cơ sở và nhánh mặc định
base dc=hcmup,dc=vn
# địa chỉ của server
# Nếu bạn không sử dụng SSL thì dùng uri ldap:// …
# còn nếu bạn muốn dùng SSL thì khai báo uri ldaps://…
#uri ldap://địa-chỉ-ip-của-server/
uri ldaps://địa-chỉ-ip-của-server/
# phiên bản của LDAP
ldap_version 3
# account được sử dụng để đăng nhập và đọc dữ liệu từ CSDL của OpenLDAP
binddn cn=nss,dc=hcmup,dc=vn
# mật mã của account được sử dụng — lưu ý là mật mã này được ghi ở dạng plain text
bindpw password-of-nss
# cổng sẽ kết nối (mặc đinh là 389) nếu dùng SSL thì mặc đinh là 636
port 636
nss_base_passwd ou=People,o=aphroland,c=us?one
nss_base_group ou=Group,o=aphroland,c=us?one:

Bây giờ bạn có thể kiểm tra xem mọi việc có thành công không bằng cách:
#finger tên-người-dùng-có-trong-CSDL-của-LDAP-mà-không-có-trên-client

Nếu mọi việc diễn ra tốt thì bạn sẽ thấy thông tin về người dùng này.

Cấu hình cho module pam_ldap — để quản lý việc đăng nhập

Tương tự như cấu hình cho nss, ta cũng sẽ thay đổi nội dung của tập tin /etc/pam_ldap.conf:
# địa chỉ của máy chủ
host địa-chỉ-ip-của-server
# cơ sở và nhánh mặc định
base dc=hcmup,dc=vn
# địa chỉ của server
#uri ldap://địa-chỉ-ip-của-server/
uri ldaps://địa-chỉ-ip-của-server/
# phiên bản của LDAP
ldap_version 3
# account được sử dụng để đăng nhập và đọc dữ liệu từ CSDL của OpenLDAP
binddn cn=nss,dc=hcmup,dc=vn
# mật mã của account được sử dụng — lưu ý là mật mã này được ghi ở dạng plain text
bindpw password-of-account-nss
# cổng sẽ kết nối (mặc đinh là 389) nếu dùng SSL thì mặc đinh là 636
port 636

Sau khi cài module pam_ldap thì cách thức đăng nhập, … được ghi trong các tập tin có tên tương ứng trong thư mục /etc/pam.d.

Do đó, để thay đổi cách thức đăng nhập thì ta cần thay đổi nội dung của tập tin /etc/pam.d/login.
#%PAM-1.0
auth required /lib/security/pam_env.so
auth sufficient /lib/security/pam_unix.so likeauth nullok
auth sufficient /lib/security/pam_ldap.so use_first_pass
auth required /lib/security/pam_deny.so account sufficient /lib/security/pam_ldap.so
account required /lib/security/pam_unix.so

session sufficient /lib/security/pam_ldap.so
session required /lib/security/pam_unix.so
session optional /lib/security/pam_lastlog.so # [1]
session optional /lib/security/pam_motd.so # [1]
session optional /lib/security/pam_mail.so standard noenv # [1]
session required /lib/security/pam_limits.so

password sufficient /lib/security/pam_ldap.so
password required /lib/security/pam_unix.so


Tương tự, bạn có thể thay đổi nội dung của file ssh, su, … cho phù hợp với yêu cầu sử dụng.

Trong cách thiết lập cấu hình như trên thì việc thay đổi password của người dùng vẫn chưa được giải quyết trọn vẹn. Để người dùng có thể thay đổi được password, … thì bạn cần xem thêm tài liệu về tham số rootbinddn để customize cho phù hợp với yêu cầu sử dụng.

NHƯ VẬY LÀ BẠN ĐÃ THIẾT LẬP XONG MỌI CẤU HÌNH VÀ CÓ THỂ QUẢN LÝ ĐƯỢC VIỆC ĐĂNG NHẬP TẬP TRUNG. CHÚC BẠN THÀNH CÔNG.

Nguồn : Internet
 
Ý kiến phản hồi và bình luận Góp ý kiến của bạn

Các tin mới nhất :
- Thiết lập 1 hệ thống High-availability - Loadbalancing và Reverse Proxy cho Web Server trên CentOS 6/RHEL Sử dụng HAProxy và Keepalived
- Đồng bộ hóa dữ liệu giữa hai Server Ubuntu 11.10 sử dụng Unison.
- Bảo vệ thư mục web với mod_auth_mysql trên Apache2
- Tích hợp MailScanner - ClamAV - SpamAssassin - SquirrelMail vào PostfixTrên Centos 5.7
- Cài đặt rsnapshot trên CentOS
- Xây dựng hệ thống NAS Cluster sử dụng OpenFiler
- Cài đặt Nginx trên Ubuntu 11.10
- Thiết lập hệ thống Active/active Samba CTDB Cluster sử dụng GFS & DRBD Trên Centos 5.7 X86_64
- Thiết lập máy chủ Ubuntu 11.10 và cài đặt ISPConfig 3 (Phần3)
- Thiết lập máy chủ Ubuntu 11.10 và cài đặt ISPConfig 3 (Phần2)
Các tin liên quan :
- Thiết lập tường lửa Iptables cho Linux - Phần 4
- Thiết lập tường lửa Iptables cho Linux - Phần 3
- Thiết lập tường lửa Iptables cho Linux - Phần 2
- Cài đặt lighttpd trên Linux
- Kiểm tra file, service và restart service khi cần thiết với Monit
- Tối ưu và tăng tốc PHP với XCache !
- Thiết lập Openvpn trên Server Linux
- Thiết lập tường lửa Iptables cho Linux - Phần 1
Bài nhiều người đọc cùng chuyên mục
Thiết lập 1 hệ thống High-availability - Loadbalancing và Reverse Proxy cho Web Server trên CentOS 6/RHEL Sử dụng HAProxy và Keepalived
 
Cài đặt Nginx trên server CentOS 6 x86_64 với PHP5 hỗ trợ qua PHP – FPM và MySQL.
 
Cấu hình ftp server với vsftpd
 
Quản lý đĩa trên linux dùng kỹ thuật LVM (Phần 1)
 
Cài Đặt Web Server (LAMP )Trên Centos 6 X86_64
 
Cài đặt và cấu hình Server Linux CentOS hoàn chỉnh (Phần 1)
 
Cài đặt công cụ giám sát web server apache
 
Trang chủ | Giới thiệu | Quảng cáo | Liên hệ
Giấy phép ICP số 199/GP-TTĐT. Bộ Thông tin và Truyền thông cấp.
Cơ quan quản lý  : Công Ty Cổ Phần Kênh Giải Pháp
Bản quyền © 2010-2011 Kenhgiaiphap.vn . Giữ toàn quyền.
Ghi rõ nguồn "Kenhgiaiphap.vn" khi phát hành lại thông tin từ website này.

return false; });