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.
Đầ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ị:
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:
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:
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 đó:
Bạn sẽ được hỏi về mật khẩu của người dùng admin trong LDAP:
Cuối cùng là chọn Yes để lưu lại cấu hình vừa rồi:
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
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"
Để 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
Để 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:
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.
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/
Powered by BetterDocs
Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *
Ghi nhớ tôi
Chưa đăng ký? Đăng ký
Bạn đã đăng ký? Đăng nhập ngay