Cách tham gia CentOS Linux vào miền Active Directory

Tác giả sysadmin, T.M.Hai 25, 2022, 03:22:11 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

Cách tham gia CentOS Linux vào miền Active Directory


Ở đây chúng tôi sẽ chỉ cho bạn cách thêm hệ thống Linux của bạn vào miền Microsoft Windows Active Directory (AD) thông qua dòng lệnh. Điều này sẽ cho phép chúng tôi SSH vào máy chủ Linux bằng tài khoản người dùng trong miền AD của chúng tôi, cung cấp nguồn xác thực đa nền tảng trung tâm.

Có một số cách để thực hiện việc này, tuy nhiên đây là cách dễ nhất mà tôi tìm thấy để thực hiện hoàn toàn thông qua dòng lệnh.

Trong ví dụ này, tôi đang sử dụng CentOS 7 và Windows Server 2012 R2, tuy nhiên phiên bản Windows không quan trọng. Chúng tôi giả định rằng miền của chúng tôi đã được thiết lập và định cấu hình, chúng tôi chỉ đơn giản là kết nối máy chủ CentOS của mình với một miền hiện có.

1. Chuẩn bị CentOS

Trước tiên, chúng tôi muốn cài đặt tất cả các gói bên dưới trong CentOS.

Mã nguồn [Chọn]
yum install sssd realmd oddjob oddjob-mkhomedir adcli samba-common samba-common-tools krb5-workstation openldap-clients policycoreutils-python -y
Máy chủ CentOS sẽ cần có khả năng phân giải miền Active Directory để tham gia thành công. Trong trường hợp này, máy chủ DNS của tôi trong /etc/resolv.conf được đặt thành một trong các máy chủ Active Directory lưu trữ miền   Đăng nhập để xem liên kết mà tôi muốn tham gia.

Mã nguồn [Chọn]
[root@centos7 ~]# cat /etc/resolv.conf
search example.com
nameserver 192.168.1.2

2. Tham gia CentOS vào miền Windows

Bây giờ chúng ta đã hiểu được cách chúng ta thực sự có thể tham gia miền, điều này có thể được thực hiện bằng lệnh 'tham gia lĩnh vực' như được hiển thị bên dưới. Bạn sẽ cần chỉ định tên người dùng của người dùng trong miền có đặc quyền tham gia máy tính vào miền.

Mã nguồn [Chọn]
[root@centos7 ~]# realm join --user=administrator example.com
Password for administrator:

Khi bạn nhập mật khẩu cho tài khoản cụ thể của mình, các tệp /etc/sssd/sssd.conf và /etc/krb.conf sẽ được cấu hình tự động. Điều này thực sự tuyệt vời vì việc chỉnh sửa những thứ này theo cách thủ công thường dẫn đến tất cả các loại sự cố lặt vặt khi tham gia miền. Tệp /etc/krb5.keytab cũng được tạo trong quá trình này.

Nếu điều này không thành công, bạn có thể thêm -v vào cuối lệnh để có đầu ra dài dòng, điều này sẽ cung cấp cho bạn thông tin chi tiết hơn về sự cố để khắc phục sự cố thêm.

Chúng tôi có thể xác nhận rằng chúng tôi đang ở trong vương quốc (thuật ngữ Linux cho miền) bằng cách chạy lệnh 'danh sách vương quốc', như được hiển thị bên dưới.

Mã nguồn [Chọn]
[root@centos7 ~]# 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: %[email protected]
  login-policy: allow-realm-logins

Khi quá trình này hoàn tất thành công, một đối tượng máy tính sẽ được tạo trong Active Directory trong bộ chứa máy tính mặc định như minh họa bên dưới.


Để giữ mọi thứ gọn gàng, tôi muốn chuyển cái này vào một số đơn vị tổ chức (OU) khác cho máy chủ Linux hơn là để mọi thứ trong bộ chứa máy tính mặc định, tuy nhiên điều này không thực sự quan trọng đối với bài tập này.

Bây giờ máy chủ Linux của chúng tôi là thành viên của miền Active Directory, chúng tôi có thể thực hiện một số thử nghiệm. Theo mặc định nếu chúng tôi muốn chỉ định bất kỳ người dùng nào trong miền, chúng tôi cần chỉ định tên miền. Ví dụ: với lệnh 'id' bên dưới, chúng tôi không nhận được gì cho 'quản trị viên', tuy nhiên ' [email protected] ' hiển thị UID cho tài khoản cũng như tất cả các nhóm mà tài khoản là thành viên trong miền Active Directory.

Mã nguồn [Chọn]
[root@centos7 ~]# id administrator
id: administrator: no such user

[root@centos7 ~]# id [email protected]
uid=1829600500([email protected]) gid=1829600513(domain [email protected]) groups=1829600513(domain [email protected]),1829600512(domain [email protected]),1829600572(denied rodc password replication [email protected]),1829600519(enterprise [email protected]),1829600518(schema [email protected]),1829600520(group policy creator [email protected])

Chúng ta có thể thay đổi hành vi này bằng cách sửa đổi tệp /etc/sssd/sssd.conf, các dòng sau cần thay đổi từ:

Mã nguồn [Chọn]
use_fully_qualified_names = True
fallback_homedir = /home/%u@%d

Đối với bên dưới, không yêu cầu phải chỉ định tên miền đủ điều kiện (FQDN). Điều này cũng sửa đổi thư mục người dùng trong/home khỏi việc chỉ định FQDN sau tên người dùng.

Mã nguồn [Chọn]
use_fully_qualified_names = False
fallback_homedir = /home/%u

Để áp dụng những thay đổi này, hãy khởi động lại sssd.

Mã nguồn [Chọn]
[root@centos7 ~]# systemctl restart sssd
Giờ đây, chúng tôi có thể tìm thấy tài khoản người dùng mà không cần chỉ định tên miền, như được hiển thị bên dưới, tính năng này hiện hoạt động ở nơi trước đây không hoạt động.

Mã nguồn [Chọn]
[root@centos7 ~]# id administrator
uid=1829600500(administrator) gid=1829600513(domain users) groups=1829600513(domain users),1829600512(domain admins),1829600572(denied rodc password replication group),1829600520(group policy creator owners),1829600519(enterprise admins),1829600518(schema admins)

Nếu cách này vẫn không hoạt động chính xác với bạn, tôi khuyên bạn nên xem xét việc xóa bộ nhớ cache sssd của mình.

3. Định cấu hình quyền truy cập SSH và Sudo

Bây giờ chúng tôi đã kết nối thành công máy chủ CentOS của mình với miền   Đăng nhập để xem liên kết, chúng tôi có thể SSH vào với tư cách là bất kỳ người dùng miền nào từ Active Directory với cài đặt mặc định.

Mã nguồn [Chọn]
[root@centos7 ~]# ssh user1@localhost
user1@localhost's password:
Creating home directory for user1.

Chúng tôi có thể hạn chế thêm quyền truy cập SSH bằng cách sửa đổi tệp /etc/ssh/sshd_config và sử dụng những thứ như AllowUsers hoặc AllowGroups để chỉ cho phép một số người dùng hoặc nhóm nhất định từ AD có quyền truy cập. Xem hướng dẫn của chúng tôi về tệp sshd_config để biết thêm thông tin. Đừng quên khởi động lại sshd nếu bạn thực hiện bất kỳ thay đổi nào đối với tệp này để áp dụng chúng.

Chúng tôi cũng có thể sửa đổi cấu hình sudoers của mình để cho phép tài khoản người dùng của chúng tôi từ miền có mức truy cập mong muốn. Tôi thường tạo một nhóm Active Directory được gọi là 'sudoers', đặt người dùng của tôi vào đó, sau đó cho phép nhóm này truy cập sudo bằng cách tạo một tệp trong /etc/sudoers.d/ cho phép AD kiểm soát tập trung quyền truy cập root.

Dưới đây là một ví dụ về điều này, nhóm 'sudoers' sẽ có toàn quyền truy cập root.

Mã nguồn [Chọn]
[root@centos7 ~]# cat /etc/sudoers.d/sudoers
%sudoers    ALL=(ALL)       ALL

Nhóm này chỉ tồn tại trong Active Directory, máy chủ Linux của chúng tôi có thể thấy rằng user1 là thành viên của nhóm sudoers trong Active Directory và tôn trọng cấu hình nhóm này cũng như cho phép user1 có đặc quyền root theo cấu hình trên.


Với điều này, tài khoản user1 của chúng ta trong miền   Đăng nhập để xem liên kết Active Directory giờ đây sẽ có thể sử dụng lệnh sudo để chạy các lệnh có quyền root.

Mã nguồn [Chọn]
[user1@centos7 ~]$ sudo su
[sudo] password for user1:
[root@centos7 user1]#
[root@centos7 user1]# whoami
root

Đó là tất cả những gì cần làm, giờ đây chúng ta có thể SSH tới máy chủ Linux bằng tài khoản người dùng từ miền Active Directory của mình và thậm chí cấp cho những người dùng hoặc nhóm cụ thể từ các cấp độ truy cập cụ thể của AD.

4. Rời Miền

Nếu bạn muốn đảo ngược quy trình và xóa chính mình khỏi miền, chỉ cần chạy lệnh 'rời khỏi vương quốc' theo sau tên miền, như minh họa bên dưới.

Mã nguồn [Chọn]
[root@centos7 ~]# realm leave example.com
Điều này sẽ hoàn thành mà không cần thêm bất kỳ đầu vào nào của người dùng. Nó sẽ xóa đối tượng máy tính đã được tạo trong Active Directory, xóa tệp keytab và đặt các tệp sssd.conf và krb5.conf trở lại mặc định.

Chúng tôi đã trình bày cách bạn có thể dễ dàng thêm hệ thống CentOS Linux của mình vào miền Microsoft Windows Active Directory, sau đó cấp quyền truy cập SSH hoặc sudo dựa trên người dùng hoặc nhóm từ miền.

Nếu bạn có một số lượng lớn máy chủ Linux và miền Windows hiện có, bạn có thể dễ dàng sử dụng quy trình này để thêm máy chủ Linux của mình vào miền Windows, cho phép xác thực người dùng tập trung, dễ quản lý hơn nhiều so với việc trải rộng tài khoản người dùng cục bộ trên mọi máy chủ Linux.