Thứ Ba, 8 tháng 11, 2022

CÀI ĐẶT OPENLDAP VÀ PHPLDAPADMIN TRÊN UBUNTU 20.04

Mục lục
  • Chuẩn bị môi trường
  • Cài đặt và cấu hình OpenLDAP Server
  • Tạo tài khoản người dùng trong OpenLDAP
  • Tạo Bind DN trên OpenLDAP
  • Cài đặt và cấu hình phpLDAPadmin
  • Kết luận

Hôm nay mình sẽ hướng dẫn bạn đọc cách cài đặt OpenLDAP để xác thực tập trung và phpLDAPadmin để quản lý LDAP Server thông qua giao diện web.

Chuẩn bị môi trường

  • Server chạy Ubuntu 20.04.
  • Một domain để gán cho địa chỉ IP của Server.
  • User Root.

Cài đặt và cấu hình OpenLDAP Server

Đầu tiên, bạn cần cập nhật Server trước:

apt-get update -y

Tiếp theo, thực hiện cài đặt OpenLDAP từ repository:

apt-get install slapd ldap-utils

Trong quá trình cài đặt, bạn sẽ được hỏi về mật khẩu của người dùng quản trị:

password-admin-openldap

Sau khi cài đặt xong, bạn cần cấu hình lại:

dpkg-reconfigure slapd

Trong cửa sổ hiện ra, chọn NO:

reconfigure-openldap

Tiếp theo, bạn sẽ được hỏi về domain của LDAP, hãy điền vào domain của bạn:

domain-ldap

Tiếp tục bạn sẽ được hỏi về tên tổ chức, công ty, thực hiện điền tên công ty của bạn tại đó:

organization-ldap

Bạn sẽ được hỏi về mật khẩu của người dùng admin trong LDAP:

ask-password-ldap

Cuối cùng là chọn Yes để lưu lại cấu hình vừa rồi:

confirm-option

Bạn có thể xem lại cấu hình hiện giờ của LDAP bằng câu lệnh dưới:

slapcat

Cấu hình sẽ hiển thị tương tự bên dưới:

dn: dc=tel4vn,dc=edu,dc=vn
objectClass: top
objectClass: dcObject
objectClass: organization
o: example.com
dc: example
structuralObjectClass: organization
entryUUID: 971829cc-ac5f-103a-8e42-9f8486ff5685
creatorsName: cn=admin,dc=tel4vn,dc=edu,dc=vn
createTimestamp: 20201027051828Z
entryCSN: 20201027051828.103064Z#000000#000#000000
modifiersName: cn=admin,dc=tel4vn,dc=edu,dc=vn
modifyTimestamp: 20201027051828Z

dn: cn=admin,dc=tel4vn,dc=edu,dc=vn
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword:: e1NTSEF9Tm5OYlpSMktkYjVnUUprb284MHFPTEVkMjQrQXpQWEk=
structuralObjectClass: organizationalRole
entryUUID: 9718c198-ac5f-103a-8e43-9f8486ff5685
creatorsName: cn=admin,dc=tel4vn,dc=edu,dc=vn
createTimestamp: 20201027051828Z
entryCSN: 20201027051828.107057Z#000000#000#000000
modifiersName: cn=admin,dc=tel4vn,dc=edu,dc=vn
modifyTimestamp: 20201027051828Z

Tạo tài khoản người dùng trong OpenLDAP

Trước hết, bạn cần tạo một organization unit để lưu trữ thông tin người dùng và nhóm người dùng:

nano users-ou.ldif

Thêm đoạn cấu hình sau, lưu ý thay đổi domain là domain của bạn:

dn: ou=people,dc=tel4vn,dc=edu,dc=vn
objectClass: organizationalUnit
objectClass: top
ou: people

dn: ou=groups,dc=tel4vn,dc=edu,dc=vn
objectClass: organizationalUnit
objectClass: top
ou: groups

Lưu lại file và tiếp tục tạo mới file thực thi LDAP như sau:

nano update-mdb-acl.ldif

Thêm đoạn cấu hình sau vào file:

dn: olcDatabase={1}mdb,cn=config
changetype: modify
replace: olcAccess
olcAccess: to attrs=userPassword,shadowLastChange,shadowExpire
  by self write
  by anonymous auth
  by dn.subtree="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage 
  by dn.exact="cn=readonly,ou=people,dc=tel4vn,dc=edu,dc=vn" read 
  by * none
olcAccess: to dn.exact="cn=readonly,ou=people,dc=tel4vn,dc=edu,dc=vn" by dn.subtree="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage by * none
olcAccess: to dn.subtree="dc=tel4vn,dc=edu,dc=vn" by dn.subtree="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage
  by users read 
  by * none

Lưu lại file và thực thi câu lệnh bên dưới để thao tác với LDAP database:

ldapadd -Y EXTERNAL -H ldapi:/// -f update-mdb-acl.ldif

Bạn sẽ nhận được thông tin như bên dưới:

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={1}mdb,cn=config"

Tiếp tục cập nhật thông tin OU bằng câu lệnh bên dưới:

ldapadd -Y EXTERNAL -H ldapi:/// -f users-ou.ldif

Bạn sẽ có thông tin hiện ra như bên dưới:

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "ou=people,dc=tel4vn,dc=edu,dc=vn"

adding new entry "ou=groups,dc=tel4vn,dc=edu,dc=vn"

Như vậy, bạn đã có thể tạo tài khoản người dùng mới. Để làm điều đó, thực hiện tạo file như bên dưới:

nano hitesh.ldif

Với nội dung sau:

dn: uid=tel4vn,ou=people,dc=tel4vn,dc=edu,dc=vn
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
uid: tel4vn
cn: Hitesh
sn: Jethva
loginShell: /bin/bash
uidNumber: 10000
gidNumber: 10000
homeDirectory: /home/tel4vn
shadowMax: 60
shadowMin: 1
shadowWarning: 7
shadowInactive: 7
shadowLastChange: 0

dn: cn=tel4vn,ou=groups,dc=tel4vn,dc=edu,dc=vn
objectClass: posixGroup
cn: tel4vn
gidNumber: 10000
memberUid: tel4vn

Lưu ý: thay đổi phù hợp thông tin với ou và domain của bạn.

Lưu lại thay đổi và sử dụng câu lệnh bên dưới để thêm mới người dùng:

ldapadd -Y EXTERNAL -H ldapi:/// -f hitesh.ldif

Bạn sẽ nhận được thông tin như bên dưới nếu thêm người dùng thành công:

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "uid=tel4vn,ou=people,dc=tel4vn,dc=edu,dc=vn"

adding new entry "cn=tel4vn,ou=groups,dc=tel4vn,dc=edu,dc=vn"

Tiếp theo, bạn hãy sử dụng câu lệnh bên dưới để đặt mật khẩu cho người dùng mới thêm:

ldappasswd -H ldapi:/// -Y EXTERNAL -S "uid=tel4vn,ou=people,dc=tel4vn,dc=edu,dc=vn"

Tạo Bind DN trên OpenLDAP

Để có thể truy vấn trên LDAP database, bạn cần phải tạo một Bind DN tương ứng. Thực hiện tạo mới Bind DN bằng câu lệnh sau:

slappasswd

Sau khi nhập mật khẩu, bạn sẽ nhận được đoạn mật khẩu đã mã hoá như bên dưới:

New password: 
Re-enter new password: 
{SSHA}DhjyJN5akaj2etaFKoyeAY8QMgSD/OTb

Tiếp theo, bạn hãy tạo một file như bên dưới:

nano readonly-user.ldif

Với nội dung file như sau:

dn: cn=readonly,ou=people,dc=tel4vn,dc=edu,dc=vn
objectClass: organizationalRole
objectClass: simpleSecurityObject
cn: readonly
userPassword: {SSHA}DhjyJN5akaj2etaFKoyeAY8QMgSD/OTb
description: Bind DN user for LDAP Operations

Lưu ý: userPassword là đoạn mật khẩu đã mã hoá có được từ bước trên.

Lưu lại file và thực hiện thêm mới tài khoản trên với câu lệnh sau:

ldapadd -Y EXTERNAL -H ldapi:/// -f readonly-user.ldif

Kiểm tra lại tài khoản trên có thể sử dụng để truy vấn được như sau:

ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config '(olcDatabase={1}mdb)' olcAccess

Lúc đó bạn sẽ nhận được thông tin bên dưới từ màn hình:

dn: olcDatabase={1}mdb,cn=config
olcAccess: {0}to attrs=userPassword,shadowLastChange,shadowExpire by self writ
 e by anonymous auth by dn.subtree="gidNumber=0+uidNumber=0,cn=peercred,cn=ext
 ernal,cn=auth" manage  by dn.exact="cn=readonly,ou=people,dc=tel4vn,dc=edu,dc=vn" 
 read  by * none
olcAccess: {1}to dn.exact="cn=readonly,ou=people,dc=tel4vn,dc=edu,dc=vn" by dn.subt
 ree="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage by * non
 e
olcAccess: {2}to dn.subtree="dc=tel4vn,dc=edu,dc=vn" by dn.subtree="gidNumber=0+uid
 Number=0,cn=peercred,cn=external,cn=auth" manage by users read  by * none

Cài đặt và cấu hình phpLDAPadmin

Để tiện cho việc quản lý LDAP database, bạn hãy cài đặt phpLDAPadmin như bên dưới:

apt-get install phpldapadmin -y

Sau khi cài đặt xong, thực hiện chỉnh sửa file bên dưới:

nano /etc/phpldapadmin/config.php

Thay đổi nội dung file như bên dưới rồi lưu lại:

$servers->setValue('server','name','My LDAP Server');
$servers->setValue('server','host','69.87.216.102');
$servers->;setValue('server','base',array('dc=tel4vn,dc=edu,dc=vn'));
$servers->setValue('login','auth_type','session');
$servers->setValue('login','bind_id','cn=admin,dc=tel4vn,dc=edu,dc=vn');
$servers->setValue('auto_number','min',array('uidNumber'=>10000,'gidNumber'=>10000));

Tiếp tục tắt website mặc định của Apache và khởi động lại Apache để cập nhật cấu hình:

a2dissite 000-default.conf
systemctl restart apache2

Như vậy, bạn đã có thể truy cập vào phpLDAPadmin thông qua trình duyệt web với địa chỉ: http://your-server-ip/phpldapadmin:

dashboard-phpLDAPadmin

Thực hiện đăng nhập với Bind DN là người dùng admin hoặc người dùng readonly như bên trên là bạn có thể xem, quản lý, chỉnh sửa LDAP database.

Kết luận

Thông qua hướng dẫn bên trên, hi vọng bạn có thể cài đặt OpenLDAP và sử dụng phpLDAPadmin trong công việc của mình. Cuối cùng, với bất kì thắc mắc nào, bạn hãy bình luận bên dưới để mình hỗ trợ nhé.

Nguồn bài viết: https://www.howtoforge.com/

=============================
* KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE trực tiếp từ tôi giúp bạn bước đầu trở thành những chuyên gia DBA, đủ kinh nghiệm đi thi chứng chỉ OA/OCP, đặc biệt là rất nhiều kinh nghiệm, bí kíp thực chiến trên các hệ thống Core tại VN chỉ sau 1 khoá học.
* CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
* Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile: 0902912888
⚡️ Skype: tranbinh48ca
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: http://bit.ly/ytb_binhoraclemaster
👨 Tiktok: https://www.tiktok.com/@binhoraclemaster?lang=vi
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhoracle
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội

=============================
học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,khóa học pl/sql, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, middleware, hoc solaris, hoc linux, hoc aix, unix, securecrt, xshell, mobaxterm, putty

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master