Hướng dẫn cài đặt FreeIPA trên CentOS Stream 9: Quản lý định danh tập trung (IdM) chuyên nghiệp

CentOS tutorial - IT technology blog
CentOS tutorial - IT technology blog

Nỗi lo quản trị tài khoản thủ công

Hãy tưởng tượng bạn đang quản lý cụm 20 server Linux. Mỗi khi có nhân viên mới, bạn phải SSH vào từng máy để gõ useradd rồi đặt mật khẩu. Công việc này không chỉ nhàm chán mà còn cực kỳ dễ sai sót. Khi nhân viên đó nghỉ việc, việc rà soát để xóa tài khoản trên mọi node mà không bỏ sót chỗ nào thực sự là một bài toán cân não.

Thời điểm CentOS 8 đột ngột dừng hỗ trợ, mình đã phải gấp rút chuyển đổi toàn bộ hệ thống định danh sang CentOS Stream 9. Lúc đó, mình đứng trước hai lựa chọn: OpenLDAP thuần túy hoặc FreeIPA. Sau hơn 6 tháng vận hành FreeIPA cho hơn 50 server thực tế, mình rút ra kết luận: Nếu muốn một hệ sinh thái quản trị Linux đồng bộ, FreeIPA là lựa chọn thực dụng nhất hiện nay.

FreeIPA là gì? Tại sao không phải là OpenLDAP?

FreeIPA (Identity, Policy, Audit) thường được ví như Active Directory của thế giới Linux. Nó không chỉ là một database lưu thông tin người dùng. Đây là sự kết hợp của “bộ tứ quyền lực”:

  • 389 Directory Server: LDAP lưu trữ dữ liệu.
  • MIT Kerberos: Trái tim của cơ chế Single Sign-On (SSO).
  • Dogtag Certificate System: Quản lý chứng chỉ số (CA) nội bộ.
  • BIND: Hệ thống DNS tích hợp mạnh mẽ.

Điều khiến mình tâm đắc nhất là khả năng quản lý tập trung sudo rule và SSH keys. Thay vì copy file cấu hình thủ công, bạn chỉ cần định nghĩa chính sách trên Web UI. Mọi thay đổi sẽ có hiệu lực ngay lập tức trên toàn bộ các node trong hệ thống.

Thông số phần cứng: Đừng tiết kiệm RAM

FreeIPA khá ngốn tài nguyên do chạy nhiều dịch vụ cùng lúc. Đừng cố cài nó trên một VPS 1GB RAM; bạn sẽ sớm thấy OOM Killer “ghé thăm” và làm crash hệ thống liên tục. Dưới đây là cấu hình thực tế mình khuyên dùng:

  • OS: CentOS Stream 9 (Bản Minimal).
  • RAM: Tối thiểu 4GB. Nếu bạn dự định chạy cả DNS và CA, hãy ưu tiên 8GB RAM để hệ thống vận hành mượt mà.
  • CPU: Ít nhất 2 Cores.
  • Mạng: Bắt buộc dùng IP tĩnh.
  • Hostname: Phải là FQDN chuẩn, ví dụ: ipa.lab.itfromzero.com.

Trước khi bắt đầu, hãy thiết lập hostname và cập nhật hệ thống để tránh xung đột package:

# Thiết lập hostname
hostnamectl set-hostname ipa.lab.itfromzero.com

# Cập nhật hệ thống lên bản mới nhất
dnf update -y

# Khai báo IP vào file hosts để đảm bảo phân giải nội bộ
echo "192.168.1.100 ipa.lab.itfromzero.com ipa" >> /etc/hosts

Các bước cài đặt chi tiết trên CentOS Stream 9

Trên CentOS Stream 9, FreeIPA được quản lý theo dạng module. Bạn cần kích hoạt đúng module trước khi tải các gói cài đặt.

Bước 1: Kích hoạt Module IDM

Mặc định, CentOS Stream 9 cung cấp stream idm:DL1. Đây là phiên bản ổn định nhất dành cho Identity Management.

dnf module enable idm:DL1 -y

Bước 2: Cài đặt gói FreeIPA Server

Mình luôn khuyến khích cài đặt kèm DNS. Việc này giúp tự động hóa các bản ghi SRV cần thiết cho Kerberos, giúp client tự tìm thấy server mà không cần cấu hình thủ công quá nhiều.

dnf install ipa-server ipa-server-dns -y

Bước 3: Khởi tạo hệ thống

Quá trình này sẽ diễn ra dưới dạng tương tác hỏi đáp. Bạn cần chuẩn bị sẵn mật khẩu quản trị.

ipa-server-install --setup-dns

Khi script chạy, hãy lưu ý các thông tin sau:

  1. Server Hostname: Kiểm tra kỹ xem đã đúng ipa.lab.itfromzero.com chưa.
  2. Domain Name: Thường là lab.itfromzero.com.
  3. Realm Name: Phải viết hoa, ví dụ: LAB.ITFROMZERO.COM. Đây là quy tắc bắt buộc của Kerberos.
  4. Directory Manager Password: Dùng để can thiệp sâu vào LDAP backend.
  5. DNS Forwarders: Nhập IP DNS của Google (8.8.8.8) hoặc của nhà mạng để server có thể truy cập internet.

Quá trình cấu hình mất khoảng 5 đến 10 phút. Nếu bạn thấy dòng chữ “IPA server setup complete”, hệ thống đã sẵn sàng.

Bước 4: Mở cổng Firewall

Rất nhiều bạn quên bước này khiến client không thể kết nối. FreeIPA cần khá nhiều port để hoạt động.

firewall-cmd --add-service={freeipa-ldap,freeipa-ldaps,dns,ntp,http,https,kerberos,kpasswd} --permanent
firewall-cmd --reload

Kiểm tra và vận hành

Để xác nhận mọi thứ đã ổn, hãy thử xin cấp ticket Kerberos cho user admin:

kinit admin
# Nhập mật khẩu admin đã đặt ở bước 3

klist

Nếu kết quả trả về thông tin ticket với thời gian hết hạn cụ thể, hệ thống xác thực đã chạy chuẩn. Bạn có thể thử tạo nhanh một user mới qua CLI:

ipa user-add tuananh --first=Tuan --last=Anh --password

Bây giờ, hãy truy cập https://ipa.lab.itfromzero.com. Giao diện Web UI hiện ra rất trực quan. Tại đây, bạn có thể quản lý hàng nghìn user chỉ với vài cú click chuột.

3 bài học xương máu sau 6 tháng thực chiến

Vận hành FreeIPA trên môi trường production không giống như làm lab. Dưới đây là những lưu ý giúp bạn tránh khỏi những sự cố đáng tiếc:

  1. Đừng bao giờ quên Backup: Hãy dùng lệnh ipa-backup định kỳ hàng ngày. Một lần mình lỡ tay làm hỏng cấu hình LDAP, chính file backup này đã cứu mình khỏi một đêm trắng cài lại từ đầu.
  2. Thời gian là vàng: Kerberos sẽ từ chối mọi yêu cầu đăng nhập nếu thời gian giữa server và client lệch quá 300 giây. Hãy đảm bảo dịch vụ chronyd luôn hoạt động trên tất cả các máy.
  3. Luôn có phương án dự phòng (Replica): Đừng để hệ thống phụ thuộc vào một con server duy nhất. Hãy dựng ít nhất một bản Replica. Nếu server chính gặp sự cố phần cứng, hệ thống của bạn vẫn hoạt động bình thường.

Lời kết

Triển khai FreeIPA trên CentOS Stream 9 là bước đi thông minh để chuyên nghiệp hóa hạ tầng IT. Dù ban đầu các khái niệm như Kerberos hay LDAP có vẻ khó hiểu, nhưng lợi ích về bảo mật và sự tiện lợi mà nó mang lại là cực kỳ lớn. Nếu bạn đang mệt mỏi với việc quản lý user thủ công, hãy bắt tay vào cài đặt FreeIPA ngay hôm nay.

Share: