Câu hỏi : Làm cách nào để kết nối hệ thống CentOS 8 / RHEL 8 với Windows Active Directory ?. Trong hướng dẫn này, chúng tôi sẽ thảo luận làm thế nào để sử dụng realmd hệ thống để tham gia vào một máy chủ CentOS 8 / RHEL 8 hoặc máy trạm đến một miền Active Directory. Realmd cung cấp một cách rõ ràng và đơn giản để khám phá và tham gia các miền nhận dạng để đạt được tích hợp miền trực tiếp.

Hướng dẫn này sẽ minh họa cách cấu hình SSSD để truy xuất thông tin từ các miền trong cùng Resource Forest  Active Directory Resource Forest. nếu bạn đang làm việc với nhiều AD, hướng dẫn này có thể không phù hợp với bạn.

Bước 1: Cài đặt các gói bắt buộc

Cần có một số gói để tích hợp CentOS 8 / RHEL 8 AD. Cài đặt chúng trên hệ thống của bạn bằng cách chạy các lệnh sau:

sudo dnf install realmd sssd oddjob oddjob-mkhomedir adcli samba-common samba-common-tools krb5-workstation authselect-compat

Chấp nhận lời nhắc cài đặt.

Last metadata expiration check: 0:19:18 ago on Fri 27 Sep 2019 09:45:40 PM EAT.
Package realmd-0.16.3-16.el8.x86_64 is already installed.
Package sssd-2.0.0-43.el8_0.3.x86_64 is already installed.
Package adcli-0.8.2-2.el8.x86_64 is already installed.
Package samba-common-4.9.1-8.el8.noarch is already installed.
Dependencies resolved.
===================================================================================================================================================
 Package                                  Arch                         Version                               Repository                       Size
===================================================================================================================================================
Installing:
 oddjob                                   x86_64                       0.34.4-7.el8                          AppStream                        83 k
 oddjob-mkhomedir                         x86_64                       0.34.4-7.el8                          AppStream                        52 k
 samba-common-tools                       x86_64                       4.9.1-8.el8                           BaseOS                          461 k
Installing dependencies:
 samba-libs                               x86_64                       4.9.1-8.el8                           BaseOS                          177 k

Transaction Summary
===================================================================================================================================================
Install  4 Packages

Total download size: 773 k
Installed size: 1.7 M
Is this ok [y/N]: y

Trên máy RHEL 8 mới, bạn sẽ cần đăng ký nó để cài đặt các gói.

$ sudo s$ sudo subscription-manager register
Registering to: subscription.rhsm.redhat.com:443/subscription
Username:  
Password: 
The system has been registered with ID: d39d60a7-3236-4287-b361-53264159f5d1
The registered system name is: master.example.com

$ sudo subscription-manager attach --auto
Installed Product Current Status:
Product Name: Red Hat Enterprise Linux for x86_64
Status:       Subscribed

Bước 2: Khám phá miền Active Directory trên CentOS 8 / RHEL 8

Trước khi thực hiện tích hợp AD, hãy đảm bảo máy CentOS / RHEL 8 có thể phân giải và khám phá miền AD.

Xác minh cài đặt DNS của bạn.

$ cat /etc/resolv.conf

Kiểm tra xem việc khám phá miền AD có thành công hay không.

$ $ realm  discover example.com
example.com
  type: kerberos
  realm-name: EXAMPLE.COM
  domain-name: example.com
  configured: no
  server-software: active-directory
  client-software: sssd
  required-package: oddjob
  required-package: oddjob-mkhomedir
  required-package: sssd
  required-package: adcli
  required-package: samba-common-tools

Bước 3: Cài đặt CentOS 8 / RHEL 8 Linux trong miền Active Directory

Cần có tài khoản người dùng quản trị AD để tích hợp máy CentOS 8 / RHEL 8 với miền Windows Active Directory.

Đảm bảo rằng bạn có tên người dùng và mật khẩu quản trị viên. Sau đó chạy lệnh dưới đây để tham gia hệ thống Linux CentOS 8 / RHEL 8 vào miền Active Directory.

$ realm join example.com -U Administrator
Password for Administrator: 

Thay thế Administratorbằng tài khoản quản trị AD của bạn và nhập mật khẩu khi được yêu cầu. Xác nhận rằng tham gia đã thành công.

$ sudo realm list
example.com
  type: kerberos
  realm-name: EXAMPLE.COM
  domain-name: example.com
  configured: kerberos-member
  server-software: active-directory
  client-software: sssd
  required-package: oddjob
  required-package: oddjob-mkhomedir
  required-package: sssd
  required-package: adcli
  required-package: samba-common-tools
  login-formats: %U@example.com
  login-policy: allow-realm-logins

Sau khi máy được kết nối, hãy chạy các lệnh bên dưới.

sudo authselect select sssd
sudo authselect select sssd with-mkhomedir

Tệp cấu hình sssd.conf của bạn sẽ giống như bên dưới,

$ cat /etc/sssd/sssd.conf 

[sssd]

domains = example.com config_file_version = 2 services = nss, pam default_domain_suffix = example.com

[nss]

homedir_substring = /home

[pam]

[domain/example.com]

ad_domain = example.com krb5_realm = EXAMPLE.COM realmd_tags = manages-system joined-with-samba cache_credentials = True id_provider = ad krb5_store_password_if_offline = True default_shell = /bin/bash ldap_id_mapping = True use_fully_qualified_names = True fallback_homedir = /home/%u@%d access_provider = ad

Khi một thay đổi được thực hiện trong tệp cấu hình, khởi động lại dịch vụ là bắt buộc.

sudo systemctl restart sssd

Trạng thái sẽ được chạy.

$ systemctl status sssd
 ● sssd.service - System Security Services Daemon
    Loaded: loaded (/usr/lib/systemd/system/sssd.service; enabled; vendor preset: disabled)
    Active: active (running) since Fri 2019-09-27 22:30:25 EAT; 37min ago
  Main PID: 32474 (sssd)
    CGroup: /system.slice/sssd.service
            ├─32474 /usr/sbin/sssd -i --logger=files
            ├─32478 /usr/libexec/sssd/sssd_be --domain example.com --uid 0 --gid 0 --logger=files
            ├─32479 /usr/libexec/sssd/sssd_nss --uid 0 --gid 0 --logger=files
            └─32480 /usr/libexec/sssd/sssd_pam --uid 0 --gid 0 --logger=files
................................................................

Nếu tích hợp đang hoạt động, có thể lấy thông tin người dùng AD.

$ id jmutai
uid=1783929917(jmutai@example.com) gid=1784800513(domain users@example.com) groups=1783870513(domain users@example.com)

Bước 4: Kiểm soát quyền truy cập – Giới hạn đối với người dùng / nhóm

Quyền truy cập vào máy chủ đã đăng ký có thể bị giới hạn bằng cách chỉ cho phép người dùng / và nhóm cụ thể.

Giới hạn cho người dùng

Để cho phép người dùng truy cập qua SSH và bảng điều khiển, hãy sử dụng lệnh:

$ realm permit user1@example.com
$ realm permit user2@example.com user3@example.com

Cho phép truy cập vào nhóm – Ví dụ

$ ream permit -g sysadmins
$ realm permit -g 'Security Users'
$ realm permit 'Domain Users' 'admin users'

Điều này sẽ sửa đổi tệp sssd.conf .

Thay vào đó, nếu bạn muốn cho phép tất cả người dùng truy cập, hãy chạy:

$ sudo realm permit --all

Để từ chối tất cả quyền truy cập của người dùng Miền, hãy sử dụng:

$ sudo realm  deny --all

Bước 5: Định cấu hình quyền truy cập Sudo

Theo mặc định, người dùng Miền sẽ không có quyền chuyển đặc quyền lên root. Người dùng phải được cấp quyền truy cập dựa trên tên người dùng hoặc nhóm.

Đầu tiên chúng ta hãy tạo tệp cấp quyền sudo.

$ sudo vi /etc/sudoers.d/domain_admins

Thêm một người dùng:

user1@example.com        ALL=(ALL)       ALL

Thêm người dùng khác:

user1@example.com     ALL=(ALL)   ALL
user2@example.com     ALL=(ALL)   ALL

Thêm nhóm

%group1@example.com     ALL=(ALL)   ALL

Thêm nhóm có hai hoặc ba tên.

%security\ users@example.com       ALL=(ALL)       ALL
%system\ super\ admins@example.com ALL=(ALL)       ALL

Bước 6: Kiểm tra quyền truy cập SSH

Truy cập máy chủ từ xa với tư cách người dùng trên AD được phép đăng nhập.

$ ssh jmutai@localhost
The authenticity of host 'localhost (::1)' can't be established.
ECDSA key fingerprint is SHA256:wmWcLi/lijm4zWbQ/Uf6uLMYzM7g1AnBwxzooqpB5CU.
ECDSA key fingerprint is MD5:10:0c:cb:22:fd:28:34:c6:3e:d7:68:15:02:f9:b4:e9.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.