[Network] Tìm hiểu LDAP, cấu hình xác thực SSH với LDAP

0
37
Rate this post

Bạn đã bao giờ nghe về LDAP (Lightweight Directory Access Protocol) chưa? Nếu chưa, hãy cùng tôi khám phá những thông tin thú vị về giao thức này và cách cấu hình xác thực SSH với LDAP.

LDAP là gì?

LDAP là chữ viết tắt của Lightweight Directory Access Protocol. Đây là một giao thức truy cập dịch vụ thư mục (Directory Service – DS) chạy trên nền tảng OSI. LDAP được coi là lightweight vì nó sử dụng gói tin overhead thấp và xác định chính xác trên lớp TCP của danh sách giao thức TCP/IP. LDAP chỉ là giao thức truy cập và không hỗ trợ xử lý như cơ sở dữ liệu, nên nó cần một nơi lưu trữ backend và xử lý dữ liệu tại đó.

Mối quan hệ giữa LDAP client, LDAP server và nơi chứa dữ liệu

LDAP được sử dụng để truy cập vào dữ liệu theo mô hình dạng cây (Directory Information Tree) và là giao thức truy cập dạng client/server.

Phương thức hoạt động của LDAP

LDAP hoạt động theo mô hình client-server. Một hoặc nhiều LDAP server chứa thông tin về cây thư mục. Client kết nối đến server và gửi yêu cầu. Server phản hồi bằng chính nó hoặc trỏ tới LDAP server khác để client lấy thông tin. Trình tự khi có kết nối với LDAP bao gồm: Connect (kết nối với LDAP), Bind (kiểu kết nối: nặc danh hoặc đăng nhập xác thực), Search (tìm kiếm), Interpret search (xử lý tìm kiếm), Result (kết quả), Unbind (gửi yêu cầu đóng kết nối tới server), Close connection (đóng kết nối từ server).

Database backend của LDAP

LDAP sử dụng backend để lưu trữ và xử lý dữ liệu. Trong trường hợp này, Slapd là một “LDAP directory server” có thể chạy trên nhiều nền tảng khác nhau và cung cấp các dịch vụ riêng. SLAPD hỗ trợ các tính năng như LDAPv3, Simple Authentication and Security Layer (SASL), Transport Layer Security (TLS) hoặc Secure Sockets Layer (SSL), và hỗ trợ hai loại database backend là BDB (Oracle Berkeley DB) và HDB (database phân cấp). BDB thường được sử dụng làm database backend chính cho SLAPD thông thường, trong khi HDB hỗ trợ cơ sở dữ liệu dạng cây.

Lưu trữ thông tin của LDAP

LDAP sử dụng LDIF (LDAP Data Interchange Format), một chuẩn định dạng file text để lưu trữ thông tin cấu hình LDAP và nội dung thư mục. File LDIF thường được sử dụng để import dữ liệu mới vào trong directory hoặc thay đổi dữ liệu đã có. Mỗi file LDIF phải tuân theo quy luật có trong schema của LDAP.

Cấu trúc tập tin LDIF

Thông thường, file LDIF sẽ có mẫu sau:

Mỗi tập entry khác nhau được phân cách bởi dòng trắng
“tên thuộc tính: giá trị”
Một tập chỉ dẫn cú pháp để làm sao xử lý thông tin

Ví dụ: thông tin của OU, people, các thư mục bên trong Distinguished Name framgia.com Thông tin LDAP thể hiện theo dạng cây

ou: People

ou: Server

File LDIF lưu thông tin: –

dn: o=framgia.com
objectclass: top
objectclass: organization
o: framgia.com

dn: ou=People,o=framgia.com
objectclass: organizationalUnit
ou: People

dn: ou=Server, o=framgia.com
objectclass: organizationalUnit
ou: Server

dn: ou=IT, ou=People, o=framgia.com
objectclass: organizationalUnit
ou: IT

dn: cn=cuongtv, ou=IT, ou=People, o=framgia.com
objectclass: top
objectclass: organizationalPerson
cn: cuongtv
sn: tran
givenname: cuong
uid: cuongtv
ou: IT

Mô hình thông tin LDAP

Mô hình thông tin LDAP định nghĩa các kiểu dữ liệu và các thành phần thông tin cơ bản trong thư mục. Mô hình này mô tả cách xây dựng các khối dữ liệu mà chúng ta có thể sử dụng để tạo ra thư mục.

Mô hình đặt tên LDAP

Mô hình đặt tên LDAP xác định cách chúng ta có thể sắp xếp và tham chiếu đến dữ liệu trong thư mục. Mô hình này mô tả cách sắp xếp các entry vào một cấu trúc có logic và cách tham chiếu đến bất kỳ một entry thư mục nào trong cấu trúc đó. Mô hình đặt tên LDAP cho phép chúng ta đặt dữ liệu vào thư mục theo cách mà chúng ta có thể dễ dàng quản lý nhất.

Mô hình chức năng LDAP

Mô hình chức năng LDAP mô tả các thao tác cho phép chúng ta thao tác trên thư mục. Mô hình này chứa một tập các thao tác chia thành 3 nhóm: thao tác thẩm tra (interrogation), thao tác cập nhật (update) và thao tác xác thực và điều khiển (authentiaction and control). Ngoài ra, có cả thao tác mở rộng cho phép nhiều phương thức xác thực và điều khiển mới.

Mô hình bảo mật LDAP

Mô hình bảo mật LDAP đảm bảo rằng thông tin trong thư mục được bảo vệ khỏi các truy cập không được phép. Việc xác thực trong một thư mục LDAP là một điều cần thiết và không thể thiếu. Quá trình xác thực được sử dụng để thiết lập quyền của khách hàng cho mỗi lần sử dụng. Tất cả các công việc như tìm kiếm, truy vấn và xác thực đều được kiểm soát bởi các mức ủy quyền của người được xác thực.

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

Để cài đặt và cấu hình LDAP trên máy chủ Ubuntu, bạn cần thực hiện các bước sau:

  1. Cài đặt gói package slapd và ldap-utils bằng câu lệnh apt-get install slapd ldap-utils.
  2. Thiết lập cấu hình cho LDAP bằng câu lệnh sudo dpkg-reconfigure slapd.
  3. Thiết lập các tham số như DNS domain name, Organization name và Administrator password.
  4. Chọn database backend là HDB hoặc BDB.
  5. Hoàn tất cấu hình và kiểm tra bằng câu lệnh slapcat.

Thêm thuộc tính với LDIF

Để thêm entry mới vào LDAP, bạn cần tạo file LDIF chứa thông tin cần tạo. Ví dụ:

dn: ou=people,dc=test,dc=com
objectClass: organizationalUnit
ou: people

dn: ou=group,dc=test,dc=com
objectClass: organizationalUnit
ou: group

Sau đó, sử dụng câu lệnh ldapadd để thêm entry mới vào LDAP.

Chỉnh sửa LDAP với ldapadmin

Trên Windows, bạn có thể sử dụng phần mềm LDAPAdmin để thực hiện các thao tác chỉnh sửa trên thư mục LDAP. Với phần mềm này, bạn có thể tạo mới, chỉnh sửa hoặc xóa các entry ngay trên giao diện.

Kết nối client tới server (login SSH bằng account LDAP)

Trên client, bạn cần cài đặt các gói package libpam-ldap và nscd. Sau đó, cấu hình các thông tin như LDAP server Uniform Resource Identifier, Distinguished name of the search base, LDAP version to use, LDAP account for root, và LDAP root account password. Tiếp theo, sửa file /etc/nsswitch.conf và các file PAM config để thiết lập xác thực và điều khiển.

Lưu ý: Trên Ubuntu, bạn có thể sử dụng câu lệnh sudo dpkg-reconfigure ldap-auth-config để cấu hình lại các thông số xác thực LDAP.

Với các bước cài đặt và cấu hình đầy đủ, bạn đã có thể kết nối tới server LDAP và sử dụng tài khoản LDAP để đăng nhập SSH.

Tìm hiểu thêm về LDAP và các dịch vụ hỗ trợ của nó tại dnulib.edu.vn.

Edited by: Dnulib