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.
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.
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:
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 Có 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:
Bạn sẽ nhận được kết quả sau:
Thêm các dòng sau:
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:
Thêm các dòng sau:
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:
Bạn sẽ nhận được kết quả sau:
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:
Bạn sẽ nhận được kết quả sau:
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:
Thêm các dòng sau:
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:
Bạn sẽ nhận được kết quả sau:
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:
Bạn sẽ thấy đầu ra sau:
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.
Bạn sẽ nhận được kết quả sau:
Tiếp theo, tạo tên DN Bind chỉ đọc bằng lệnh sau:
Thêm các dòng sau:
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:
Bạn sẽ nhận được kết quả sau:
Tiếp theo, xác minh ACL Bind DN bằng lệnh sau:
Bạn sẽ nhận được kết quả sau:
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:
Thay đổi các dòng sau:
Lưu và đóng tệp khi bạn hoàn tất.
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:
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.
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:
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
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
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
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 Có 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
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
Mã:
dn: ou=people,dc=example,dc=comobjectClass: organizationalUnitobjectClass: topou: peopledn: ou=groups,dc=example,dc=comobjectClass: organizationalUnitobjectClass: topou: groups
Mã:
nano update-mdb-acl.ldif
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
Mã:
ldapadd -Y EXTERNAL -H ldapi:/// -f update-mdb-acl.ldif
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"
Mã:
ldapadd -Y EXTERNAL -H ldapi:/// -f users-ou.ldif
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"
Mã:
nano hitesh.ldif
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
Mã:
ldapadd -Y EXTERNAL -H ldapi:/// -f hitesh.ldif
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"
Mã:
ldappasswd -H ldapi:/// -Y EXTERNAL -S "uid=hiteshj,ou=people,dc=example,dc=com"
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
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
Mã:
Mật khẩu mới:Nhập lại mật khẩu mới:{SSHA}DhjyJN5akaj2etaFKoyeAY8QMgSD/OTb
Mã:
nano readonly-user.ldif
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
Mã:
ldapadd -Y EXTERNAL -H ldapi:/// -f readonly-user.ldif
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"
Mã:
ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config '(olcDatabase={1}mdb)' olcAccess
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
Mã:
nano /etc/phpldapadmin/config.php
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));
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
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: