Cách cài đặt LDAP Server trên Ubuntu

Các khái niệm cơ bản

Thư mục:

Một cách chung nhất thư mục là nơi dùng để lưu trữ và cho phép thực hiện các thao tác truy nhập thông tin. Tuy vậy có thể khái niệm này trùng với khái niệm cơ sở dữ liệu, đối với một thư mục các đặc điểm nổi bật phân biệt với cơ sở dữ liệu đó là :

  • thư mục được thiết kế để phục vụ thao tác đọc hơn là thao tác ghi;

  • thư mục cung cấp cái nhìn tĩnh về dữ liệu;

  • các thao tác cập nhật trong thư mục là đơn giản, không có sự giàng buộc như trong cơ sở dữ liệu.

Các dịch vụ thư mục:

Dịch vụ thư mục cho phép truy nhập thư mục, có thể qua các giao thức mạng. Thường thì các dịch vụ này còn cho phép nhân bản và phân bố dữ liệu thư mục. Một ví dụ về dịch vụ thư mục đó là dịch vụ quản lí tên miền (Domain Name System, DNS) cho phép ánh xạ một tên máy với một địa chỉ IP thích hợp. Các dịch vụ thư mục rất phong phú có thể kể ra đây như dịch vụ vân tay hay dịch vụ mail,.v.v

LDAP :

Trước hết LDAP là một dịch vụ thư mục, nó là ngôn ngữ chung cho phép LDAP khách và chủ giao tiếp với nhau. Có thể liệt kê những đặc điểm nổi bật của giao thức này:

  • là một giao thức mạng cho phép truy nhập các thông tin trong một thư mục;

  • là một mô hình thông tin cho phép xác định cấu trúc và đặc điểm của thông tin trong thư mục;

  • là một không gian tên cho phép xác định cách các thông tin được tham chiếu và tổ chức;

  • một mô hình các thao tác cho phép xác định cách tham chiếu và phân bố dữ liệu;

  • là một giao thức mở rộng;

  • là một mô hình thông tin mở rộng.

Cài đặt LDAP

OpenLDAP server có sẵn trong package "slapd" của Ubuntu. Nên chúng ta có thể dễ dàng cài đặt bằng lệnh "apt-get" :

sudo apt-get update
sudo apt-get install slapd ldap-utils

Bạn sẽ được yêu cầu nhập và xác nhận mật khẩu quản trị cho các tài khoản quản trị LDAP.

Cấu hình slapd

Khi cài đặt hoàn tất, chúng ta cần phải cấu hình lại gói LDAP:

sudo dpkg-reconfigure slapd

Bạn sẽ được hỏi một loạt các câu hỏi về cách bạn muốn cấu hình phần mềm.

Omit OpenLDAP server configuration? No

DNS domain name?

Điều này sẽ tạo ra các cấu trúc cơ sở của đường dẫn thư mục của bạn. Đọc tin nhắn để hiểu làm thế nào nó hoạt động. Không có quy tắc thiết lập cho cấu hình này. Nếu bạn có một tên miền thực trên máy chủ này, bạn có thể sử dụng đó. Nếu không, sử dụng bất cứ điều gì bạn muốn. Trong bài viết này, chúng tôi sẽ gọi nó test.com

Organization name?

Một lần nữa, điều này là tùy thuộc vào bạn Chúng ta sẽ sử dụng ví dụ trong hướng dẫn này.

Administrator password?

Sử dụng mật khẩu bạn đã cấu hình trong khi cài đặt, hoặc chọn một số khác

Database backend to use? HDB

Remove the database when slapd is purged? No

Move old database? Yes

Allow LDAPv2 protocol? No

Cài đặt PHPldapadmin

Chúng tôi sẽ quản trị LDAP thông qua một giao diện web được gọi là PHPldapadmin. Điều này cũng có sẵn trong kho mặc định của Ubuntu.

Cài đặt nó bằng lệnh này:

sudo apt-get install phpldapadmin

Cấu hình PHPldapadmin

Chúng ta cần phải cấu hình một số giá trị trong các tập tin cấu hình giao diện web trước khi sử dụng.

Mở tập tin cấu hình với quyền root:

sudo nano /etc/phpldapadmin/config.php

Tìm kiếm cho các phần sau đây và thay đổi chúng cho phù hợp.

Thay đổi giá trị màu đỏ như cách bạn sẽ được tham khảo máy chủ của bạn, hoặc thông qua tên miền hoặc địa chỉ IP.

$servers->setValue('server','host','domain_nam_or_IP_address');

Đối với phần tiếp theo, bạn sẽ cần phải đưa giá trị tên miền DNS khi chúng ta cấu hình lại "slapd".

Bạn sẽ phải chuyển đổi nó sang một định dạng mà LDAP hiểu bằng cách tách từng thành phần tên miền. thành phần miền là bất cứ điều gì mà được phân cách bằng một dấu chấm.

Các thành phần này sau đó được đưa ra là giá trị cho các thuộc tính "dc".

Ví dụ, nếu mục nhập tên miền DNS của bạn là "imaginary.lalala.com", LDAP sẽ cần phải xemviết là "dc=imaginary,dc=lalala,dc=com". Chỉnh sửa các mục sau đây để phản ánh tên bạn chọn (của chúng tôi là "test.com"):

$servers->setValue('server','base',array('dc=test,dc=com'));

Các giá trị tiếp theo để sửa đổi sẽ sử dụng các thành phần cùng một tên miền mà bạn vừa thiết lập ở mục cuối cùng. Thêm vào "cn = admin" trong mục dưới đây:

$servers->setValue('login','bind_id','cn=admin,dc=test,dc=com');

Tìm kiếm thuộc tính "hide_template_warning" . Chúng tôi muốn bỏ ghi chú dòng này và thiết lập giá trị "true" để tránh một số cảnh báo gây phiền nhiễu không quan trọng.

$config->custom->appearance['hide_template_warning'] = true; Lưu và đóng tập tin.

Trên đây là cách cài đặt cơ bản ldap server và phpldapadmin. Ở phần tiếp theo chúng ta sẽ tiếp tục dùng phpldapadmin để tạo Organizational Units, Groups, và Users để có thể authenticate với ldap server.

tham khảo: https://www.digitalocean.com/