Cách cài đặt và cấu hình OpenLDAP và phpLDAPadmin trên Ubuntu 20.04

theanh

Administrator
Nhân viên
LDAP là Giao thức truy cập thư mục nhẹ được sử dụng để truy cập và duy trì thư mục phân tán qua giao thức internet. phpLDAPadmin là máy khách LDAP dựa trên web được sử dụng để quản lý và quản trị máy chủ LDAP. Chức năng tìm kiếm mạnh mẽ và chế độ xem cây phân cấp giúp quản lý máy chủ LDAP dễ dàng hơn thông qua trình duyệt web. Bạn có thể thêm và xóa bản ghi, xem và chỉnh sửa thuộc tính hình ảnh, quản lý băm mật khẩu người dùng và nhiều chức năng khác bằng phpLDAPadmin.

Trong hướng dẫn này, chúng tôi sẽ giải thích cách cài đặt phpLDAPadmin trên Ubuntu 20.04.

Điều kiện tiên quyết​

  • Máy chủ chạy Ubuntu 20.04.
  • Tên miền hợp lệ được trỏ bằng IP máy chủ của bạn.
  • Mật khẩu gốc được định cấu hình cho máy chủ.

Bắt đầu​

Trước khi bắt đầu, bạn nên cập nhật hệ thống của mình lên phiên bản gói mới nhất. Bạn có thể cập nhật bằng lệnh sau:
Mã:
apt-get update -y
Sau khi tất cả các gói được cập nhật, bạn có thể tiến hành bước tiếp theo.

Cài đặt và cấu hình máy chủ OpenLDAP​

Đầu tiên, bạn sẽ cần cài đặt Slapd và các tiện ích LDAP khác trên máy chủ của mình. Bạn có thể cài đặt chúng bằng cách chạy lệnh sau:
Mã:
apt-get install slapd ldap-utils
Trong quá trình cài đặt, bạn sẽ được yêu cầu thiết lập mật khẩu quản trị viên như hiển thị bên dưới:



Cung cấp mật khẩu an toàn của bạn và nhấn Enter để tiếp tục. Sau khi quá trình cài đặt hoàn tất, bạn sẽ cần cấu hình lại gói SLAPD để thiết lập thông tin tên miền của mình.

Bạn có thể cấu hình lại bằng lệnh sau:
Mã:
dpkg-reconfigure slapd
Bạn sẽ được yêu cầu bỏ qua cấu hình máy chủ OpenLDAP như hiển thị bên dưới:



Chọn Không và nhấn Enter để tiếp tục. Bạn sẽ được yêu cầu cung cấp tên miền DNS như hiển thị bên dưới:



Cung cấp tên miền của bạn và nhấn Enter để tiếp tục. Bạn sẽ được yêu cầu cung cấp tên tổ chức như hiển thị bên dưới:



Cung cấp tên tổ chức mong muốn và nhấn Enter để tiếp tục. Bạn sẽ được yêu cầu nhập mật khẩu quản trị viên như hiển thị bên dưới:



Cung cấp mật khẩu quản trị viên và nhấn Enter để tiếp tục. Bạn sẽ được yêu cầu xóa cơ sở dữ liệu như hiển thị bên dưới:



Chọn và nhấn Enter để hoàn tất cấu hình.

Bây giờ, bạn có thể xác minh thông tin LDAP của mình bằng lệnh sau:
Mã:
slapcat
Bạn sẽ nhận được kết quả sau:
Mã:
dn: dc=example,dc=comobjectClass: topobjectClass: dcObjectobjectClass: organizationo: example.comdc: examplestructuralObjectClass: organizationentryUUID: 971829cc-ac5f-103a-8e42-9f8486ff5685creatorsName: cn=admin,dc=example,dc=comcreateTimestamp: 20201027051828ZentryCSN: 20201027051828.103064Z#000000#000#000000modifiersName: cn=admin,dc=example,dc=commodifyTimestamp: 20201027051828Zdn: cn=admin,dc=example,dc=comobjectClass: simpleSecurityObjectobjectClass: organizationalRolecn: admindescription: LDAP administratoruserPassword:: e1NTSEF9Tm5OYlpSMktkYjVnUUprb284MHFPTEVkMjQrQXpQWEk=structuralObjectClass: organizationalRoleentryUUID: 9718c198-ac5f-103a-8e43-9f8486ff5685creatorsName: cn=admin,dc=example,dc=comcreateTimestamp: 20201027051828ZentryCSN: 20201027051828.107057Z#000000#000#000000modifiersName: cn=admin,dc=example,dc=commodifyTimestamp: 20201027051828Z

Tạo Tài khoản Người dùng OpenLDAP​

Trước tiên, bạn sẽ cần tạo các vùng chứa đơn vị tổ chức để lưu trữ thông tin người dùng và nhóm. Bạn có thể tạo nó bằng lệnh sau:
Mã:
nano users-ou.ldif
Thêm các dòng sau:
Mã:
dn: ou=people,dc=example,dc=comobjectClass: organizationalUnitobjectClass: topou: peopledn: ou=groups,dc=example,dc=comobjectClass: organizationalUnitobjectClass: topou: groups
Lưu và đóng tệp khi bạn hoàn tất, sau đó điều chỉnh các điều khiển truy cập cơ sở dữ liệu SLAPD bằng cách tạo tệp sau:
Mã:
nano update-mdb-acl.ldif
Thêm các dòng sau:
Mã:
dn: olcDatabase={1}mdb,cn=configchangetype: modifyreplace: olcAccessolcAccess: 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=example,dc=com" read by * noneolcAccess: to dn.exact="cn=readonly,ou=people,dc=example,dc=com" by dn.subtree="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage by * noneolcAccess: to dn.subtree="dc=example,dc=com" by dn.subtree="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" do người dùng quản lý, đọc bởi * none
Lưu và đóng tệp, sau đó cập nhật ACL cơ sở dữ liệu bằng thông tin trên bằng cách chạy lệnh sau:
Mã:
ldapadd -Y EXTERNAL -H ldapi:/// -f update-mdb-acl.ldif
Bạn sẽ nhận được kết quả sau:
Mã:
Xác thực SASL/EXTERNAL đã bắt đầuTên người dùng SASL: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=authSASL SSF: 0sửa đổi mục nhập "olcDatabase={1}mdb,cn=config"
Tiếp theo, cập nhật cơ sở dữ liệu bằng thông tin OU của người dùng bằng cách chạy lệnh sau:
Mã:
ldapadd -Y EXTERNAL -H ldapi:/// -f users-ou.ldif
Bạn sẽ nhận được kết quả sau:
Mã:
Xác thực SASL/EXTERNAL đã bắt đầuTên người dùng SASL: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=authSASL SSF: 0thêm mục mới "ou=people,dc=example,dc=com"thêm mục mới "ou=groups,dc=example,dc=com"
Tiếp theo, tạo một tài khoản người dùng mới có tên là hiteshj bằng cách tạo tệp sau:
Mã:
nano hitesh.ldif
Thêm các dòng sau:
Mã:
dn: uid=hiteshj,ou=people,dc=example,dc=comobjectClass: inetOrgPersonobjectClass: posixAccountobjectClass: shadowAccountuid: hiteshjcn: Hiteshsn: JethvaloginShell: /bin/bashuidNumber: 10000gidNumber: 10000homeDirectory: /home/hiteshjshadowMax: 60shadowMin: 1shadowWarning: 7shadowInactive: 7shadowLastChange: 0dn: cn=hiteshj,ou=groups,dc=example,dc=comobjectClass: posixGroupcn: hiteshjgidNumber: 10000memberUid: hiteshj
Lưu và đóng tệp, sau đó thêm người dùng vào cơ sở dữ liệu bằng lệnh sau:
Mã:
ldapadd -Y EXTERNAL -H ldapi:/// -f hitesh.ldif
Bạn sẽ nhận được kết quả sau:
Mã:
Xác thực SASL/EXTERNAL đã bắt đầuTên người dùng SASL: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=authSASL SSF: 0thêm mục mới "uid=hiteshj,ou=people,dc=example,dc=com"thêm mục mới "cn=hiteshj,ou=groups,dc=example,dc=com"
Tiếp theo, bạn sẽ cần đặt mật khẩu cho người dùng. Bạn có thể thiết lập bằng lệnh sau:
Mã:
ldappasswd -H ldapi:/// -Y EXTERNAL -S "uid=hiteshj,ou=people,dc=example,dc=com"
Bạn sẽ thấy đầu ra sau:
Mã:
Mật khẩu mới:Nhập lại mật khẩu mới:Xác thực SASL/EXTERNAL đã bắt đầuTên người dùng SASL: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=authSASL SSF: 0
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

Tạo OpenLDAP Bind DN​

Tiếp theo, bạn sẽ cần xác định tên người dùng và mật khẩu để truy vấn máy chủ thư mục. Trước tiên, tạo băm mật khẩu cho người dùng DN bind bằng lệnh sau:
Mã:
slappasswd
Bạn sẽ nhận được kết quả sau:
Mã:
Mật khẩu mới:Nhập lại mật khẩu mới:{SSHA}DhjyJN5akaj2etaFKoyeAY8QMgSD/OTb
Tiếp theo, tạo tên DN Bind chỉ đọc bằng lệnh sau:
Mã:
nano readonly-user.ldif
Thêm các dòng sau:
Mã:
dn: cn=readonly,ou=people,dc=example,dc=comobjectClass: organizationalRoleobjectClass: simpleSecurityObjectcn: readonlyuserPassword: {SSHA}DhjyJN5akaj2etaFKoyeAY8QMgSD/OTbdescription: Người dùng DN Bind cho các hoạt động LDAP
Lưu và đóng tệp khi bạn hoàn tất sau đó thêm người dùng BIND vào cơ sở dữ liệu bằng lệnh sau:
Mã:
ldapadd -Y EXTERNAL -H ldapi:/// -f readonly-user.ldif
Bạn sẽ nhận được kết quả sau:
Mã:
Xác thực SASL/EXTERNAL đã bắt đầuTên người dùng SASL: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=authSASL SSF: 0thêm mục mới "cn=readonly,ou=people,dc=example,dc=com"
Tiếp theo, xác minh ACL Bind DN bằng lệnh sau:
Mã:
ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config '(olcDatabase={1}mdb)' olcAccess
Bạn sẽ nhận được kết quả sau:
Mã:
dn: olcDatabase={1}mdb,cn=configolcAccess: {0}đến attrs=userPassword,shadowLastChange,shadowExpire do self ghi e do anonymous auth do dn.subtree="gidNumber=0+uidNumber=0,cn=peercred,cn=ext ernal,cn=auth" quản lý do dn.exact="cn=readonly,ou=people,dc=example,dc=com" do * none đọcolcAccess: {1}đến dn.exact="cn=readonly,ou=people,dc=example,dc=com" do dn.subt ree="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" quản lý do * non eolcAccess: {2}đến dn.subtree="dc=example,dc=com" do dn.subtree="gidNumber=0+uid Number=0,cn=peercred,cn=external,cn=auth" quản lý bởi người dùng đọc bởi * none

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

Theo mặc định, gói phpLDAPadmin có sẵn trong kho lưu trữ mặc định của Ubuntu 20.04. Bạn có thể cài đặt nó bằng cách chạy lệnh sau:
Mã:
apt-get install phpldapadmin -y
Sau khi cài đặt phpLDAPadmin, bạn sẽ cần cấu hình phpLDAPadmin và xác định thông tin tên miền của mình. Bạn có thể thực hiện bằng cách chỉnh sửa tệp /etc/phpldapadmin/config.php:
Mã:
nano /etc/phpldapadmin/config.php
Thay đổi các dòng sau:
Mã:
$servers->setValue('server','name','My LDAP Server');$servers->setValue('server','host','69.87.216.102');$servers->;setValue('server','base',array('dc=example,dc=com'));$servers->setValue('login','auth_type','session');$servers->setValue('login','bind_id','cn=admin,dc=example,dc=com');$servers->setValue('auto_number','min',array('uidNumber'=>10000,'gidNumber'=>10000));
Lưu và đóng tệp khi bạn hoàn tất.

Cấu hình Apache cho phpLDAPadmin​

Tệp cấu hình mặc định của phpLDAPadmin cho Apache nằm tại /etc/apache2/conf-available/phpldapadmin.conf. Không thực hiện bất kỳ thay đổi nào và sử dụng cài đặt mặc định.

Tiếp theo, vô hiệu hóa tệp cấu hình máy chủ ảo Apache mặc định và khởi động lại dịch vụ Apache để áp dụng các thay đổi:
Mã:
a2dissite 000-default.conf
systemctl restart apache2
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

Truy cập Giao diện người dùng web phpLDAPadmin​

Bây giờ, hãy mở trình duyệt web của bạn và truy cập phpLDAPadmin bằng URL . Bạn sẽ thấy màn hình sau:



Bây giờ, hãy nhấp vào nút đăng nhập. Bạn sẽ thấy màn hình đăng nhập phpLDAPadmin:



Cung cấp DN đăng nhập, mật khẩu và nhấp vào nút Xác thực. Bạn sẽ thấy bảng điều khiển phpLDAPadmin trong màn hình sau:


Kết luận​

Xin chúc mừng! bạn đã cài đặt và cấu hình phpLDAPadmin thành công trên máy chủ Ubuntu 20.04. Bây giờ bạn có thể quản lý máy chủ LDAP của mình và thực hiện một số tác vụ bao gồm thêm đơn vị tổ chức, nhóm và người dùng bằng giao diện người dùng web phpLDAPadmin. Hãy thoải mái hỏi tôi nếu bạn có bất kỳ câu hỏi nào.
 
Back
Bên trên