1/12/09

Triển khai hệ thống quản trị tập trung với LDAP

1. Giới thiệu
Trong tương lai không xa, phần mềm mã nguồn mở và miễn phí rất có thể sẽ trở thành một lựa chọn tất yếu đối với các tổ chức/doanh nghiệp. Với ưu điểm mã nguồn mở, dễ dàng mở rộng, hoạt động ổn định… lĩnh vực ứng dụng này đang ngày càng chứng tỏ tính khả dụng và hiệu quả của nó.
Hầu hết các tổ chức/doanh nghiệp đều cần đến một hệ thống mạng nội bộ để hỗ trợ xử lý công việc thường ngày, điều hành hoạt động, phối hợp làm việc…Bài viết sẽ hướng dẫn các bước xây dựng hệ thống mạng Ubuntu quản lý tập trung với LDAP, một giải pháp hoàn toàn có thể thay thế hệ thống mạng Microsoft Windows với Active Directory.
2. Yêu cầu hệ thống
Chúng ta sử dụng 03 máy tính với thông tin như sau:
Máy tính Ubuntu server:
Địa chỉ IP: 192.168.10.2
DNS server: 192.168.10.2
Tên máy: ubuntu-server
Máy tính Ubuntu desktop 01:
Địa chỉ IP: 192.168.10.12
DNS server: 192.168.10.2
Tên máy: ubuntu-desktop01
Máy tính Ubuntu desktop 02:
Địa chỉ IP: 192.168.10.14
DNS server: 192.168.10.2
Tên máy: ubuntu-desktop02
3. Cấu hình hệ thống
Trên máy ubuntu-server, chúng ta thực hiện:
Cài đặt và cấu hình DNS server với phần mềm BIND.
Domain name: tk5cn.com.vn
Bổ sung 02 Host (A) record tương ứng với 02 máy trạm Ubuntu vào DNS server:
ubuntu-desktop01.tk5cn.com.vn 192.168.10.12
ubuntu-desktop02.tk5cn.com.vn 192.168.10.14
Cài đặt và cấu hình LDAP server với phần mềm OpenLDAP.
Bổ sung 02 account tương ứng với 02 máy trạm Ubuntu vào LDAP server:
Account 01 - hungnn:********
Account 02 - hhdll:********
Các bước thực hiện lần lượt như sau:
4. Cài đặt và cấu hình LDAP server với phần mềm OpenLDAP
4.1. Cài đặt OpenLDAP
Phần mềm dùng để xây dựng LDAP server trên Ubuntu là OpenLDAP. Chúng ta sẽ cài đặt các phần mềm và tiện ích cần thiết để thiết lập LDAP server, bao gồm:
slapd (OpenLDAP Server - OpenLDAP standalone server): phần mềm này được dùng để tạo ra một standalone directory service và bao gồm cả slurpd replication server.
ldap-utils (OpenLDAP Utilities): gói này chứa các tiện ích dùng để truy cập LDAP server cục bộ hoặc từ xa (local or remote). ldap-utils cũng chứa tất cả các chương trình cần thiết (required client programs) để truy cập các LDAP server.
db4.2-util (Berkeley v4.2 Database Utility): gói này chứa các công cụ (tools) được dùng để thao tác (manipulating) với các cơ sở dữ liệu có định dạng là Berkeley v4.2 Database. Các bước thực hiện như sau:
Cập nhật danh mục phần mềm (package list) trên Ubuntu và cài đặt OpenLDAP:
hungnn@ubuntu-server:~$ sudo -i
[sudo] password for hungnn:
root@ubuntu-server:~#
root@ubuntu-server:~# aptitude update
root@ubuntu-server:~# apt-get install slapd
root@ubuntu-server:~# apt-get install ldap-utils
root@ubuntu-server:~# apt-get install db4.2-util
4.2. Cấu hình LDAP server
Chúng ta sẽ thao tác trên các file của OpenLDAP để cấu hình LDAP server. Các bước thực hiện như sau:
Sao chép dự phòng các file của OpenLDAP:
root@ubuntu-server:~# cp -R /etc/ldap /backup
Sử dụng tiện ích slappasswd để mã hóa mật khẩu admin và lưu chuỗi ký tự mã hóa vào cuối file /etc/ldap/slapd.conf:
root@ubuntu-server:~# slappasswd >> /etc/ldap/slapd.conf
New password:
Re-enter new password:
Cấu hình OpenLDAP:
Hiệu chỉnh file /etc/ldap/slapd.conf (file cấu hình chính của OpenLDAP) như sau:
root@ubuntu-server:~# vim /etc/ldap/slapd.conf
suffix “dc=tk5cn,dc=com,dc=vn”
rootdn “cn=admin,dc=tk5cn,dc=com,dc=vn”
# password này do tiện ích ldappasswd tạo ra.
rootpw {SSHA}AwiGYep3HmBbL5rQka4Bchd4g8ofhnXC
directory “/var/lib/ldap”
# Set change password permission
access to attrs=userPassword,shadowLastChange
by dn=“cn=admin,dc=tk5cn,dc=com,dc=vn” write
by anonymous auth
by self write
by * none
# Ensure read access to the base for things like
# supportedSASLMechanisms.
access to dn.base=“” by * read
# The admin dn has full write access, everyone else can
# read everything.
access to *
by dn=“cn=admin,dc=tk5cn,dc=com,dc=vn” write
by * read
Lưu ý: giữ lại những thiết lập mặc định của file /etc/ldap/slapd.conf không được đề cập ở trên.
Khởi chạy standalone LDAP server:
root@ubuntu-server:~# /etc/init.d/slapd start
Starting OpenLDAP: slapd
Đến bước này, LDAP server đã sẵn sàng. Để bắt đầu đưa server này vào hoạt động, chúng ta cần bổ sung các entry (thực thể - user, group, ou…) khởi tạo trên server. Bổ sung các initial entry (thực thể khởi tạo):
LDAP server có thể bổ sung các entry bằng câu lệnh hoặc từ các file có định dạng ldif (ldap directory interchange format). Dưới đây, chúng ta tạo ra file init.ldif và lưu vào thư mục /etc/ldap.
root@ubuntu-server:~# vim /etc/ldap/init.ldif
dn: dc=tk5cn,dc=com,dc=vn
objectClass: dcObject
objectClass: organizationalUnit
dc: tk5cn
ou: tk5cn.com.vn
dn: cn=admin,dc=tk5cn,dc=com,dc=vn
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword: {SSHA}AwiGYep3HmBbL5rQka4Bchd4g8ofhnXC
dn: ou=users,dc=tk5cn,dc=com,dc=vn
objectClass: organizationalUnit
ou: users
dn: ou=groups,dc=tk5cn,dc=com,dc=vn
objectClass: organizationalUnit
ou: groups
dn: cn=ktm,ou=groups,dc=tk5cn,dc=com,dc=vn
objectClass: posixGroup
cn: ktm
gidNumber: 5000
Lưu ý: UID/GID trong bài viết này được thiết lập theo qui định sau:
System account: UID < 500
Real People in LDAP: 499 < UID < 10.000
Local users, groups (not in LDAP): UID > 10.000
Thực hiện các bước như sau để bổ sung entry vào LDAP server:
Dừng dịch vụ LDAP:
root@ubuntu-server:~# /etc/init.d/slapd stop
Xóa nội dung đã tự động tạo ra trong khi cài đặt OpenLDAP:
root@ubuntu-server:~# rm -rf /var/lib/ldap/*
Bổ sung entry mới:
root@ubuntu-server:~# slapadd -l init.ldif
Hiệu chỉnh quyền trên cơ sở dữ liệu:
root@ubuntu-server:~# chown -R openldap:openldap /var/lib/ldap
Khởi chạy dịch vụ LDAP:
root@ubuntu-server:~# /etc/init.d/slapd start
Kiểm tra các entry vừa bổ sung:
Chúng ta có thể kiểm tra các entry vừa mới bổ sung vào bằng cách sử dụng tiện ích ldapsearch:
root@ubuntu-server:~# ldapsearch –xLLL –b “dc=tk5cn,dc=com,dc=vn”
Trong đó:
-x: không sử dụng phương thức thẩm định SASL (mặc định).
-LLL: vô hiệu hoá việc in thông tin LDIF.
-b: tìm kiếm cơ bản.
Nếu các thao tác bổ sung entry vào LDAP server được thực hiện một cách chính xác, tiện ích ldapsearch sẽ hiển thị thông tin về các entry này tương tự như nội dung đã tạo trong file /etc/init.ldif.
Với các bước cấu hình như trên, chúng ta đã hoàn thành thao tác cài đặt và cấu hình LDAP server trên máy tính ubuntu-server. Tiếp theo, chúng ta tiến hành các thao tác cài đặt và cấu hình các hệ thống máy trạm Ubuntu.
4.3. Cấu hình ubuntu-desktop01
Để máy trạm đăng nhập với tài khoản được tạo ra trên LDAP server, chúng ta cần thực hiện các bước cấu hình trên các file PAM (Pluggable Authentication Modules) và NSSWITCH (Name Service Switch) trong Ubuntu. Các bước thực hiện như sau:
4.3.1. Cài đặt LDAP client
Các phần mềm và tiện ích cần phải cài đặt trên máy trạm Ubuntu là:
libpam-ldap: thư viện dùng để cho phép xác thực (allow for authentication) qua LDAP.
libnss-ldap: thư viện dùng để cho phép truy vấn thông tin về các session (allow session information) qua LDAP.
nss-updatedb: tiện ích dùng để tạo ra một cơ sở dữ liệu tài khoản cục bộ (local database of the user names). Cơ sở dữ liệu này được dùng để khắc phục trường hợp mạng bị giảm tốc độ truy cập (network slowdown), hoặc bị ngưng hoạt động vì sự cố (outage). Các bước thực hiện như sau:
Cập nhật danh mục phần mềm (package list) trên Ubuntu và cài đặt libpam-ldap, libnss-ldap và nss-updatedb:
hhdll@ubuntu-desktop01:~$ sudo -i
[sudo] password for hhdll:
root@ubuntu-desktop01:~#
root@ubuntu-desktop01:~# aptitude update
root@ubuntu-desktop01:~# apt-get install libpam-ldap
Khi cài đặt thư viện này, chúng ta cần cung cấp các thông số:
LDAP Server Uniform Resource Identifier: ldap://192.168.10.2
Distinguished name of the search base: dc=tk5cn,dc=com,dc=vn
LDAP version to use: 3
LDAP account for root: cn=admin,dc=tk5cn,dc=com,dc=vn
LDAP root account password: ******
root@ubuntu-desktop01:~# apt-get install libnss-ldap
Khi cài đặt thư viện này, chúng ta cần cung cấp các thông số:
LDAP account for root: cn=admin,dc=tk5cn,dc=com,dc=vn
LDAP root account password: ******
Chú ý: một hộp thoại xuất hiện, thông báo rằng hệ thống không thể quản lý file nsswitch.conf một cách tự động. Chúng ta nhấn nút OK và sẽ thay đổi cấu hình của file này ở phần sau.
root@ubuntu-desktop01:~# apt-get install nss-updatedb
4.3.2. Cấu hình LDAP client
Chúng ta sẽ thao tác trên các file của PAM và NSSWITCH để cấu hình LDAP client. Các bước thực hiện như sau:
Sao chép dự phòng các file của PAM và NSSWITCH:
root@ubuntu-desktop01:~# mkdir /backup
root@ubuntu-desktop01:~# cp /etc/nsswitch.conf /backup
root@ubuntu-desktop01:~# cp -R /etc/pam /backup
Cấu hình NSSWITCH:
Hiệu chỉnh file /etc/nsswitch.conf (file cấu hình chính của NSSWITCH). File này xác định các name service mà hệ thống sử dụng để truy vấn thông tin (search for information). File này cũng chỉ ra thứ thự của các name service để hệ thống ưu tiên tìm kiếm theo một thứ tự đã được lập ra.
root@ubuntu-desktop01:~# vim /etc/nsswitch.conf
passwd: files ldap
group: files ldap
Kiểm tra cấu hình vừa thiết lập bằng cách thực hiện 02 lệnh:
root@ubuntu-desktop01:~# getent passwd
root@ubuntu-desktop01:~# getent group
02 lệnh trên sẽ liệt kê mật khẩu và các nhóm trên Ubuntu desktop và trên LDAP server.
Cấu hình PAM:
Có 04 file cấu hình của PAM liên quan đến LDAP:
/etc/pam.d/common-account
/etc/pam.d/common-auth
/etc/pam.d/common-password
/etc/pam.d/common-session
Hiệu chỉnh các file này theo các bước như sau:
root@ubuntu-desktop01:~# cd /etc/pam.d
root@ubuntu-desktop01:/etc/pam.d# vim ./common-account
account sufficient pam_ldap.so
account required pam_unix.so
root@ubuntu-desktop01:/etc/pam.d# vim ./common-auth
auth sufficient pam_ldap.so
auth required pam_unix.so nullok_secure use_first_pass
root@ubuntu-desktop01:/etc/pam.d# vim ./common-password
password sufficient pam_ldap.so
password required pam_unix.so nullok obscure min=4
max=8 md5
root@ubuntu-desktop01:/etc/pam.d# vim ./common-session
session required pam_unix.so
session required pam_mkhomedir.so skel=/etc/skel/
session optional pam_ldap.so
session optional pam_foreground.so
Tạo thư mục dùng để lưu trữ các thư mục home tương ứng với mỗi tài khoản đăng nhập vào máy trạm:
root@ubuntu-desktop01:~# mkdir /home/users
root@ubuntu-desktop01:~# mkdir /home/users/ktm
Chú ý: nếu không thực hiện bước này sau khi đã tạo tài khoản trên LDAP, chúng ta sẽ gặp thông báo lỗi trong quá trình đăng nhập vào máy trạm Ubuntu.
“Authentication failed”. Nếu xem trong file /var/log/auth.log, chúng ta sẽ thấy nguyên nhân của lỗi: “Unable to create directory /home/users/ktm/hungnn”; “couldn’t open session for hungnn”.
4.3.3. Tạo tài khoản đăng nhập với phpLDAPadmin
Để đơn giản trong việc quản lý OpenLDAP server, chúng ta sử dụng phpLDAPadmin. Đây là ứng dụng web được sử dụng để thao tác với OpenLDAP server.
Các bước sau đây sẽ giúp chúng ta cài đặt và sử dụng phpLDAPadmin trên máy trạm Ubuntu để quản lý LDAP server.
Cài đặt phpLDAPadmin với lệnh:
root@ubuntu-desktop01:~# apt-get install phpldapadmin
Cấu hình phpLDAPadmin:
root@ubuntu-desktop01:~# cp -R /usr/share/phpldapadmin /var/www/myphpldapadmin
root@ubuntu-desktop01:~# cp /etc/phpldapadmin/config.php
/etc/phpldapadmin/first.config.php
root@ubuntu-desktop01:~# rm /var/www.myphpldapadmin/config/config.php
root@ubuntu-desktop01:~# ln –s /etc/phpldapadmin/first.config.php /var/www/myphpldapadmin/config/config.php
root@ubuntu-desktop01:~# chmod +r /etc/phpldapadmin/first.config.php
Truy cập phpLDAPadmin:
Từ cửa sổ trình duyệt, nhập địa chỉ http://localhost/myphpldapadmin.

Nhấn vào nút Login ở panel bên trái, nhập thông tin tài khoản root:
Login DN: cn=admin,dc=tk5cn,dc=com,dc=vn
Password: ******
Nhấn nút Authenticate để đăng nhập.

Nếu đăng nhập vào LDAP server thành công, hệ thống sẽ thông báo:

Tạo tài khoản trên phpLDAPadmin:
Kích vào mục ou=users, chọn Create new entry here, chọn User Account. Nhấn nút Process>>.

Điền thông tin liên quan đến tài khoản và nhấn nút Process>>.

Xem lại thông tin. Sau khi đã chắc chắn, nhấn nút Create Object.

Sau khi tạo xong, màn hình hiển thị thông tin của tài khoản vừa tạo sẽ xuất hiện.

Nhấn nút Add new attribute để thêm thuộc tính LoginShell.

Nhấn nút Add để hoàn thành thao tác tạo và hiệu chỉnh tài khoản. Đến bước này, chúng ta nhấn nút Logout và bắt đầu kiểm tra khả năng hoạt động của hệ thống LDAP trên Ubuntu.
5. Kiểm tra hệ thống
Để kiểm tra hệ thống sau khi hoàn thành các bước cấu hình, từ máy trạm ubuntu, chúng ta đăng nhập bằng tài khoản được tạo ra trên LDAP server. Trong trường hợp của mình, trên máy ubuntu-desktop01, sau khi hệ thống khởi động, chúng ta nhập:
Username: hungnn
Password: ******
Hệ thống sẽ thông báo: “Creating directory ‘/home/users/ktm/hungnn’”, chúng ta nhấn nút OK để hoàn thành thao tác đăng nhập.

Không có nhận xét nào:

Đăng nhận xét