Site icon ZingServer

7 bước join VPS Linux vào AD bằng realmd (Ubuntu/CentOS)

7 bước join VPS Linux vào AD bằng realmd (UbuntuCentOS)

7 bước join VPS Linux vào AD bằng realmd (UbuntuCentOS)

Chào mừng bạn đến với hướng dẫn chi tiết về cách join VPS Linux vào AD bằng realmd. Nếu bạn đã từng mệt mỏi với việc cấu hình hàng chục file phức tạp của Winbind, thì realmd chính là giải pháp “hiện đại” và tự động mà bạn đang tìm kiếm.

Chúng tôi sẽ hướng dẫn bạn qua 7 bước thực thi rõ ràng để tích hợp máy chủ Ubuntu hoặc CentOS vào Active Directory (AD) một cách nhanh chóng và ổn định nhất.

Lợi ích khi join VPS Linux vào Active Directory (AD)

Tích hợp VPS Linux vào AD không chỉ là một thử nghiệm kỹ thuật. Nó mang lại lợi ích quản trị khổng lồ, đặc biệt là trong môi trường doanh nghiệp.

So sánh “nhanh”: Realmd (SSSD) vs. Winbind (Samba)

Đây là lý do chính khiến realmd là lựa chọn ưu tiên tuyệt đối hiện nay. Trong nhiều năm, Winbind (một phần của bộ Samba) là cách phổ biến. Nhưng nó thật sự phức tạp và dễ gặp lỗi.

Winbind (Cách cũ):

Realmd (Cách mới – Chủ đề chính):

Nói đơn giản: realmd làm thay bạn toàn bộ công việc cấu hình thủ công nhàm chán mà Winbind yêu cầu.

Chuẩn bị “chiến trường” (Điều kiện tiên quyết)

Trước khi gõ bất kỳ lệnh cài đặt nào, bạn phải đảm bảo môi trường mạng và máy chủ của mình sẵn sàng. 90% lỗi xảy ra đều do chuẩn bị không kỹ ở phần này.

Các yêu cầu bắt buộc

Cấu hình “sống còn”: DNS, Hostname và NTP

Đây là bước quan trọng nhất. realmd hoạt động dựa trên việc tự động phát hiện (discovery) dịch vụ AD, và nó dùng DNS để làm điều đó.

1. Cấu hình DNS:

Máy chủ Linux của bạn BẮT BUỘC phải sử dụng DNS của Domain Controller. Bạn có thể tham khảo hướng dẫn cách định cấu hình DNS trong Ubuntu/Debian, CentOS/Fedora chi tiết của chúng tôi.

2. Kiểm tra DNS:

Sau khi cấu hình, hãy kiểm tra kỹ lưG. Lệnh nslookup này phải trả về thông tin SRV records, nếu thất bại, realmd chắc chắn sẽ thất bại.

# Lệnh này phải trả về IP của AD
ping ad.example.com

# Lệnh này phải trả về các dịch vụ Kerberos
nslookup -type=SRV _kerberos._tcp.ad.example.com

3. Đồng bộ thời gian (NTP):

Xác thực Kerberos (cốt lõi của AD) cực kỳ nhạy cảm về thời gian. Nếu thời gian trên VPS Linux và máy chủ AD lệch nhau quá 5 phút, xác thực sẽ thất bại. Hãy cài đặt chrony và trỏ nó về DC.

# Cài đặt (ví dụ trên Ubuntu)
sudo apt install chrony

# Sửa file /etc/chrony/chrony.conf trỏ về AD
# server ad.example.com iburst
sudo systemctl restart chrony

7 bước join VPS Linux vào AD

Sau khi đã hoàn tất mọi yêu cầu ở Phần 2, giờ là lúc thực thi.

Bước 1: Cài đặt các gói tin cần thiết (realmd & SSSD)

Chúng ta cần cài đặt realmd (công cụ điều phối) và sssd (dịch vụ xác thực) cùng các gói hỗ trợ.

Trên Ubuntu/Debian:

sudo apt update
sudo apt install realmd sssd sssd-tools sssd-ad adcli krb5-user packagekit

Trên CentOS/RHEL (7/8/9):

CentOS/RHEL cần thêm các gói oddjob để tự tạo thư mục home và authselect để cấu hình PAM.

# Dùng 'dnf' cho CentOS 8/9+
sudo dnf install realmd sssd oddjob oddjob-mkhomedir adcli samba-common samba-common-tools krb5-workstation authselect-compat

# Dùng 'yum' cho CentOS 7
sudo yum install realmd sssd oddjob oddjob-mkhomedir adcli samba-common samba-common-tools krb5-workstation

Bước 2: Khám phá (Discover) Domain AD

Đây là bước kiểm tra xem cấu hình DNS (ở Phần 2) của bạn đã đúng hay chưa.

sudo realm discover AD.EXAMPLE.COM

Nếu thành công, bạn sẽ thấy output tương tự như sau, cho thấy realmd đã tìm thấy domain và nhận diện đúng là “active-directory”.

ad.example.com
  type: kerberos
  realm-name: AD.EXAMPLE.COM
  domain-name: ad.example.com
  configured: no
  server-software: active-directory
  client-software: sssd
  #... và các gói khác

Bước 3: Lệnh “thần thánh” – Join Domain

Đây là bước join VPS Linux vào AD bằng realmd. Bạn chỉ cần chạy 1 lệnh và nhập mật khẩu của tài khoản Admin AD khi được hỏi.

sudo realm join --user=administrator AD.EXAMPLE.COM

Lệnh này tự động làm gì? Nó tạo file /etc/sssd/sssd.conf, /etc/krb5.conf, tạo keytab cho máy, cấu hình PAM và khởi động dịch vụ sssd.

Mẹo nâng cao khi join:

  • Join vào OU cụ thể: Mặc định VPS sẽ nằm trong Computers. Dùng cờ --computer-ou để chỉ định vị trí: sudo realm join --user=administrator --computer-ou="OU=LinuxServers,DC=ad,DC=example,DC=com" AD.EXAMPLE.COM
  • Dùng POSIX Attributes có sẵn: Nếu AD của bạn đã định nghĩa uidNumbergidNumber cho user, hãy tắt ID mapping tự động: sudo realm join --automatic-id-mapping=no AD.EXAMPLE.COM

Bước 4: Kiểm tra trạng thái join và xác thực

Bạn cần xác nhận VPS đã gia nhập domain ở cả hai phía (Linux và Windows).

1. Kiểm tra trên VPS Linux:

Dùng realm list để xem trạng thái. Dòng configured: ...configured-by-sssd là tín hiệu thành công.

sudo realm list

2. Kiểm tra trên Windows AD Server:

Mở Active Directory Users and Computers (ADUC) trên DC. Di chuyển đến mục Computers (hoặc OU bạn đã chỉ định). Bạn sẽ thấy tên hostname của VPS Linux xuất hiện trong danh sách này.

3. Kiểm tra User (Rất quan trọng):

Dùng lệnh getent (công cụ chuẩn để truy vấn NSS) để xem SSSD đã “thấy” user hay chưa.

# Lệnh này phải trả về thông tin user
getent passwd user_ad@ad.example.com

Hoặc dùng lệnh id để xem nhanh UID, GID và các Group mà user thuộc về:

id user_ad@ad.example.com

4. Kiểm tra Kerberos (Nâng cao):

Nếu bạn đã cài krb5-user, hãy đăng nhập (ví dụ: su - user_ad@ad.example.com hoặc dùng phần mềm PuTTY) và chạy:

Bước 5: Tinh chỉnh SSSD (Bắt buộc để dễ sử dụng)

realm join đã làm 90% công việc. 10% còn lại là các tinh chỉnh “chất lượng cuộc sống” (quality-of-life) sau.

1. Kích hoạt tự động tạo thư mục Home:

Đây là bước cực kỳ quan trọng mà realmd không tự làm.

2. Tinh chỉnh file sssd.conf (Tên ngắn & tối ưu):

Mở file cấu hình SSSD: sudo nano /etc/sssd/sssd.conf. Tìm đến phần [domain/ad.example.com] và thêm/sửa các dòng sau:

# ... (các dòng khác) ...

# 1. (Tùy chọn) Cho phép login bằng "user_ad" thay vì "user_ad@ad.example.com"
use_fully_qualified_names = False

# 2. (Bắt buộc) Đặt đường dẫn home mặc định (phòng trường hợp pam không chạy)
fallback_homedir = /home/%u

# 3. (Nâng cao) Tối ưu cho môi trường lớn: Chỉ kết nối đến DC tại site gần nhất
ad_site = TenSiteCuaBan

Cảnh báo an toàn (Multi-domain Forest):

Việc đặt use_fully_qualified_names = False rất tiện lợi, nhưng chỉ nên dùng nếu bạn ở trong môi trường single-domain.

Nếu hệ thống AD của bạn lớn và có nhiều domain con tin cậy (trusted domains), hãy giữ nguyên giá trị mặc định là True. Việc này bắt buộc người dùng đăng nhập bằng user@domain.com, giúp tránh xung đột và nhầm lẫn danh tính.

3. Khởi động lại SSSD:

Sau khi đã chỉnh sửa, hãy khởi động lại sssd để áp dụng mọi thay đổi.

sudo systemctl restart sssd

Bây giờ, hãy thử getent passwd user_ad (không cần đuôi domain). Nếu nó hoạt động, bạn đã thành công!

Bước 6: Cấp quyền Sudo cho User/Group AD

Mặc định, user AD khi đăng nhập chỉ là user thường. Để họ có thể chạy sudo, bạn có hai cách:

Cách 1: Dùng realm permit (Khuyến nghị)

Đây là cách làm “hiện đại” và an toàn nhất, SSSD sẽ tự động quản lý quyền.

# Cấp quyền sudo cho MỘT user cụ thể
sudo realm permit user_ad@ad.example.com

# Cấp quyền sudo cho MỘT NHÓM AD cụ thể
sudo realm permit -g "Domain Admins"
sudo realm permit -g "Linux Admins@ad.example.com"

Cách 2: Dùng visudo (Cách truyền thống)

Chạy lệnh sudo visudo và thêm một trong các dòng sau vào cuối file (dùng dấu % cho nhóm):

# Cấp quyền cho nhóm "Linux Admins" (phải thêm dấu \ nếu có khoảng trắng)
%Linux\ Admins ALL=(ALL) ALL

Bước 7: Khắc phục sự cố (Lỗi SSH & Cache)

Nếu bạn gặp lỗi, 99% là do 4 nguyên nhân sau:

Quản trị nâng cao và rời Domain

Tích hợp Group Policy (GPO) với SSSD/ADSys

Sau khi join, bạn có thể muốn AD “điều khiển” các máy Linux này (ví dụ: ép cấm login, chạy script…).

Cách rời (Leave) Domain

Nếu bạn muốn gỡ VPS ra khỏi domain, realmd cũng cung cấp một lệnh đơn giản.

sudo realm leave AD.EXAMPLE.COM

Mẹo: Dùng cờ --remove để realmd thử xóa luôn Computer Object trên AD (sẽ hỏi mật khẩu admin):

sudo realm leave --user=administrator --remove AD.EXAMPLE.COM

Câu hỏi thường gặp (FAQ)

1. Realmd là gì và tại sao nó tốt hơn Winbind?

realmd là một dịch vụ hiện đại trên Linux dùng để tự động phát hiện và tham gia (join) các domain như Active Directory. Nó tốt hơn Winbindrealmd tự động hóa 100% quá trình cấu hình SSSD, Kerberos và PAM chỉ bằng một lệnh. Ngược lại, Winbind yêu cầu cấu hình thủ công nhiều file, phức tạp và dễ phát sinh lỗi.

2. SSSD là gì? Nó liên quan gì đến realmd?

SSSD (System Security Services Daemon) là dịch vụ cốt lõi, chịu trách nhiệm liên tục giao tiếp với AD để xác thực người dùng, lấy thông tin group, và cache dữ liệu.

realmd chỉ là công cụ “điều phối” ban đầu. Nó tự động phát hiện AD và viết file cấu hình cho SSSD. Sau khi join xong, sssd chính là dịch vụ chạy chính để xử lý mọi yêu cầu đăng nhập.

3. Join VPS Linux vào AD bằng realmd có an toàn không?

Rất an toàn. Phương pháp này sử dụng Kerberos, giao thức xác thực tiêu chuẩn vàng của Active Directory, dựa trên “vé” (tickets) được mã hóa. realmd và SSSD giao tiếp với AD qua các kênh bảo mật (như LDAP qua GSSAPI), đảm bảo thông tin đăng nhập không bị lộ. Việc này an toàn hơn nhiều so với việc tạo và quản lý từng tài khoản local riêng lẻ trên mỗi VPS.

4. Tôi có thể đăng nhập offline (không có mạng) sau khi join domain không?

Có, bạn có thể. Đây là một trong những tính năng mạnh nhất của SSSD, được gọi là “cached credentials” (bộ đệm xác thực). Sau lần đầu tiên bạn đăng nhập online thành công, SSSD sẽ lưu trữ an toàn (hash) thông tin đăng nhập của bạn. Nếu VPS bị mất kết nối với máy chủ AD, SSSD sẽ sử dụng bộ đệm này để xác thực bạn. realmd thường tự động bật tính năng này (cache_credentials = True).

5. Lỗi phổ biến nhất khi “realm join” thất bại là gì?

Hai lỗi phổ biến nhất là:

  1. Sai DNS: VPS Linux bắt buộc phải trỏ DNS về máy chủ Domain Controller (AD). Nếu không, realmd không thể “phát hiện” (discover) được domain.
  2. Lệch thời gian (NTP): Xác thực Kerberos (cốt lõi của AD) yêu cầu thời gian trên VPS và máy chủ AD phải đồng bộ. Nếu lệch nhau quá 5 phút, việc join sẽ thất bại với lỗi “Clock skew too great”.

6. Làm cách nào để đăng nhập bằng tên ngắn (ví dụ: “user_ad”) thay vì tên dài (“user_ad@ad.example.com”)?

Bạn có thể làm điều này bằng cách chỉnh sửa file /etc/sssd/sssd.conf. Trong phần [domain/...], hãy tìm hoặc thêm dòng use_fully_qualified_names = False và sau đó khởi động lại SSSD (sudo systemctl restart sssd).

Tuy nhiên, lưu ý rằng trong môi trường có nhiều domain (multi-domain forest), việc này không được khuyến khích vì có thể gây xung đột tên người dùng.

Kết luận

Qua 7 bước chi tiết, bạn có thể thấy realmdSSSD đã biến một quy trình phức tạp (Winbind) thành một vài lệnh đơn giản. Đây chính là phương pháp “hiện đại” và được khuyến nghị cho mọi hệ thống Linux cần tích hợp vào Active Directory, giúp bạn quản lý tập trung và tăng cường bảo mật.

Sau khi hoàn tất, bạn nên xem xét các bước tiếp theo như cấu hình Zabbix Agent để giám sát VPS Linux nhằm theo dõi trạng thái của dịch vụ SSSD và hiệu năng máy chủ.

Bạn đang tìm kiếm một giải pháp VPS Linux mạnh mẽ, ổn định để tích hợp vào hệ thống Active Directory của doanh nghiệp?

Tại ZingServer, chúng tôi cung cấp dịch vụ VPS cấu hình cao, tối ưu hóa cho cả Ubuntu và CentOS. Đội ngũ kỹ thuật của chúng tôi luôn sẵn sàng hỗ trợ 24/7, đảm bảo việc tích hợp hệ thống của bạn diễn ra mượt mà.

Liên hệ ngay hôm nay để nhận tư vấn về gói VPS phù hợp nhất!

Tài liệu tham khảo

Exit mobile version