Hướng dẫn cài đặt ldap tren centos 6

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:

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ị:

Hướng dẫn cài đặt ldap tren centos 6

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

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

Hướng dẫn cài đặt ldap tren centos 6

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:

Hướng dẫn cài đặt ldap tren centos 6

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 đó:

Hướng dẫn cài đặt ldap tren centos 6

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

Hướng dẫn cài đặt ldap tren centos 6

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

Hướng dẫn cài đặt ldap tren centos 6

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:

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:

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:

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:

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:

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

0

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:

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

1

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:

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:

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

2

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

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

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

3

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:

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

4

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

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

5

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

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

6

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:

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

7

Sau khi cài đặt xong, thực hiện chỉnh sửa file 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

8

Thay đổi nội dung file như bên dưới rồi lưu lạ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

9

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:

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

0

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:

Hướng dẫn cài đặt ldap tren centos 6

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é.