Tìm kiếm trang web

Kết nối máy chủ Linux với miền Active Directory bằng SSSD và reald


Hệ điều hành Linux đã đi được một chặng đường dài kể từ năm 1991 khi nó được Linux Torvalds giới thiệu lần đầu tiên như một hệ điều hành miễn phí. Ngày nay, một số dạng Linux được sử dụng trong mọi thứ, từ máy chủ cao cấp và máy ảo đến thiết bị IoT và thiết bị nhúng. Thông thường, các nền tảng cơ sở dữ liệu phổ biến như Oracle, PostgreSQL, MySQL và MongoDB được triển khai trên các máy chủ chạy Linux.

Một ngoại lệ đáng chú ý là Microsoft SQL Server. Điều đó đã thay đổi khi Microsoft công bố hỗ trợ cho Linux bắt đầu với SQL Server 2017. Tuy nhiên, Microsoft không cung cấp cách đơn giản để tích hợp máy chủ Linux vào Active Directory (AD), khiến việc quản lý chúng trở nên khó khăn hơn.

May mắn thay, có một cách dễ dàng để tích hợp Linux với AD cho các hệ thống Windows tại chỗ và đám mây — bằng cách sử dụng reald và Daemon Dịch vụ Bảo mật Hệ thống (SSSD).

Đọc hướng dẫn này để tìm hiểu cách tích hợp Linux với Active Directory. Chúng tôi cũng sẽ đề cập đến cách tham gia AD bằng cách sử dụng vương quốc, cách sử dụng SSSD và cách ánh xạ số nhận dạng duy nhất (UID) và ID nhóm (GID) của Linux tới số nhận dạng trang web (SID) trong AD.

Tóm tắt ngắn gọn về tương tác của Linux với Active Directory

Như phần giới thiệu, đây là bản tóm tắt ngắn gọn về cách Linux tương tác với AD.

Những lý do chính để kết nối máy Linux với dịch vụ thư mục dựa trên Giao thức truy cập thư mục nhẹ (LDAP) như Windows AD bao gồm:

  • Chính sách kinh doanh
  • Kiểm soát truy cập
  • Quản lý danh tính tập trung

Khi kết nối máy chủ Linux vào Active Directory (AD), cần có hai thành phần:

  • Một để quản lý danh tính trung tâm và nguồn xác thực (Active Directory)
  • Một người xử lý việc khám phá miền và đóng vai trò trung gian giữa thành phần đầu tiên và nguồn nhận dạng

Trong những năm qua, đã có một số tùy chọn cấu hình để kết nối máy Linux với AD. Hầu hết đều bất tiện khi định cấu hình và yêu cầu bạn thiết lập thủ công (SSSD để tham gia các miền. Tuy nhiên, bộ reald cho phép bạn hoàn thành tác vụ mà không cần chỉnh sửa tệp cấu hình rườm rà.

Cách tích hợp máy chủ Linux vào miền Windows AD

Bây giờ, hãy xem các bước tích hợp máy chủ Linux chạy trên CentOS 8 vào miền Windows Active Directory (AD) được định cấu hình trên Windows 2012 R2 Server Standard Edition. (Lý do chúng tôi chỉ định các phiên bản và loại bản phân phối Linux và Windows Server là vì có sự khác biệt nhỏ giữa các phiên bản Linux và Windows. Ví dụ: trong CentOS/RHEL 8, các hoạt động của máy khách và máy chủ Giao thức thời gian mạng (NTP) đã được quản lý sử dụng daemon ntp, nhưng trong CentOS/RHEL 8, nó đã được thay thế bằng daemon chrony.)

Bước 1: Đảm bảo rằng tên máy chủ và FQDN được chỉ định.

Đảm bảo rằng tên máy chủ và tên miền đủ điều kiện (FQDN) được chỉ định trong tệp /etc/hosts. Tên máy chủ không thể là localhost vì nó được ánh xạ tới bộ điều hợp vòng lặp 127.0.0.1. Nếu bạn cần thay đổi tên máy chủ hiện có, hãy sử dụng lệnh sau để thay đổi tên đó thành tên mong muốn. Không cần chỉ định FQDN như một phần của tên máy chủ.

[root@oldhostname ~]# hostnamectl set-hostname <new_host_name>

[root@newhostname~]# echo 192.168.44.9 sblinmssql2019 >> /etc/hosts

Bước 2: Chỉ định bộ điều khiển miền AD.

Chỉ định bộ điều khiển miền AD (DC) trong tệp /etc/hosts bằng lệnh sau:

[root@newhostname~]# echo 192.168.xx.x sbad.sbits.net sbad >> /etc/hosts

[root@newhostname~]# ping sbad.sbits.net

Bước 3: Ping bộ điều khiển miền AD.

Ping bộ điều khiển miền AD đã được chỉ định ở Bước 2 và đảm bảo rằng bạn nhận được phản hồi ping.

Bước 4: Trỏ máy chủ DNS tới bộ điều khiển miền AD.

Trong trường hợp của tôi, máy chủ DNS cần được trỏ đến bộ điều khiển miền AD vì DC của tôi cũng là máy chủ DNS cho miền của tôi, sbits.net.

Bước 5: Định cấu hình máy chủ NTP, nếu cần.

Nếu DC chính mà bạn định sử dụng làm máy chủ NTP chưa được định cấu hình máy chủ NTP, hãy làm theo các bước trong ảnh chụp màn hình để định cấu hình và bật máy chủ NTP trên DC chính.

Bước 6: Cài đặt chrony và cấu hình nó để sử dụng DC.

Máy chủ Linux cần đồng bộ hóa thời gian với một trong các DC trong miền AD. Trong trường hợp của tôi, chỉ có một bộ điều khiển miền nên máy chủ Linux sẽ đồng bộ hóa thời gian với nó.

Nếu tính năng đồng bộ hóa chưa được cài đặt, hãy cài đặt nó và định cấu hình nó để sử dụng DC nhằm đồng bộ hóa thời gian. (Nếu nó đã được cài đặt, bạn sẽ nhận được thông báo báo cáo điều đó.)

[root@newhostname~]# vi /etc/resolv.conf

[root@newhostname~]# systemctl restart NetworkManager

[root@sblinmssql2019~]# vi /etc/chrony.conf

  [root@sblinmssql2019~]# systemctl enable chronyd

  [root@sblinmssql2019~]# systemctl restart chronyd

  [root@sblinmssql2019~]# systemctl enable chronyd 

Nếu chrony đã được cài đặt, chúng ta cần chỉnh sửa tệp cấu hình thechrony.conf và đặt máy chủ thời gian thành bộ điều khiển miền AD và khởi động lại dịch vụ chronyd. Nếu dịch vụ chưa được cài đặt sẵn, hãy bật dịch vụ để khởi động khi khởi động lại và đảm bảo rằng tường lửa được định cấu hình để cho phép lưu lượng NTP sau khi cài đặt.

Sau khi chronyd được định cấu hình và bật, lệnh timedatectl sẽ hiển thị liệu dịch vụ NTP có hoạt động hay không. Sau khi xác nhận rằng dịch vụ NTP đang hoạt động, hãy chạy lệnh nguồn chronyc để xác nhận rằng nó đang sử dụng bộ điều khiển miền làm máy chủ thời gian, như hiển thị bên dưới.

Bước 7: Cài đặt bộ Samba trên Linux.

Tiếp theo, cài đặt bộ Samba, bao gồm winbind, trên máy chủ Linux. Dịch vụ winbind cho phép máy chủ Linux tương tác với miền AD giống như máy chủ Windows. Sau khi cài đặt hoàn tất, hãy xác nhận rằng các gói hiển thị trong ảnh chụp màn hình bên dưới đã được cài đặt.

Bước 8: Sửa đổi tệp /etc/samba/smb.conf để phản ánh giá trị cảnh giới.

Tiếp theo, sửa đổi tệp /etc/samba/smb.conf để phản ánh giá trị cảnh giới cho tên miền đủ điều kiện và thay đổi giá trị nhóm làm việc thành tên miền, như minh họa trong ảnh chụp màn hình bên dưới .

[root@sblinmssql2019~]# yum -y install samba samba-client

[root@sblinmssql2019~]# yum -y install samba-winbind samba-winbind-clients

Bước 9: Kích hoạt daemon winbind khi khởi động lại hệ thống.

Kích hoạt daemon winbind khi khởi động lại hệ thống bằng lệnh systemctl như trong ảnh chụp màn hình bên dưới. Xin lưu ý rằng không có lý do gì để khởi động lại máy chủ Linux, không giống như máy chủ Windows.

Lưu ý: Tham số realm là tên miền của bạn. Trong ví dụ này, đó là “sbits.net” và tham số workgroup được đặt thành “sbits”. Thay vào đó, tham số nhóm làm việc có thể được đặt thành mặc định của Windows là “WORKGROUP” nếu bạn muốn. security=ADS chỉ định rằng máy chủ này là một phần của miền AD. Dấu phân cách winbind =+ chỉ định rằng dấu cộng (+) sẽ được sử dụng để phân tách tên miền và tên người dùng. Dấu phân cách truyền thống của Windows không tương thích với Linux và ký tự thoát phải được sử dụng mỗi khi tên người dùng được chỉ định bằng tiền tố tên miền.

Bước 10: Cài đặt gói Kerberos Realms.

Cài đặt gói Kerberos Realms bằng lệnh yum:

[root@sblinmssql2019~]# yum -y install krb5-workstation

Bước 11: Thêm máy chủ Linux vào miền AD.

Bây giờ, hãy thêm máy chủ Linux vào miền AD bằng lệnh bên dưới. Rất có thể bạn sẽ gặp lỗi “Cập nhật DNS không thành công: NT_STATUS_INVALID_PARAMETER”.

Trong trường hợp của tôi, mặc dù tôi gặp lỗi nhưng máy chủ Linux đã được thêm vào miền AD. Tôi đã phát hành lại lệnh có cờ -no-dns-updates và lỗi không xuất hiện.

Bước 12: Thay đổi cài đặt bảo mật bằng Trình quản lý DNS.

Nếu bạn không muốn gặp lỗi và muốn DNS cập nhật thông tin về máy chủ Linux mới, hãy thay đổi cài đặt bảo mật bằng Trình quản lý DNS như hiển thị bên dưới.

Bước 13: Xác minh rằng đối tượng máy tính Linux đã được thêm vào.

Trên bộ điều khiển miền chính, hãy xác minh rằng đối tượng máy tính Linux đã được thêm bằng cách sử dụng công cụ Active Directory Users and Computers.

Bước 14: Xác nhận rằng dịch vụ winbind đang chạy.

Xác nhận rằng dịch vụ winbind đang chạy trên máy chủ Linux.

Bước 15: Xác thực rằng máy chủ Linux là một phần của miền AD.

Xác thực rằng máy chủ Linux thực sự là một phần của miền AD và có thể giao tiếp với DC bằng cách sử dụng gói wbinfo để chạy lệnh gọi RPC được mã hóa tới DC:

[root@sblinmssql2019~]# wbinfo -t    # verifies if encrypted RPC are supported

[root@sblinmssql2019~]# wbinfo – u  # enumerates AD the list of users

[root@sblinmssql2019~]# wbinfo – g  # enumerates AD the list of groups

Bước 16: Đảm bảo rằng winbind được chọn làm nhà cung cấp ủy quyền.

Tiếp theo, chúng ta cần đảm bảo rằng winbind được chọn làm nhà cung cấp ủy quyền bằng cách sử dụng lệnh authselect select winbind -force như hiển thị bên dưới. Cờ -force sẽ ghi đè các mục trong tệp /etc/nsswitch. conf tập tin.

Bước 17: Đảm bảo các mục nhập mật khẩu và nhóm được liệt kê để sử dụng winbind.

Để đảm bảo rằng Linux sẽ sử dụng winbind để xác thực người dùng trước khi xác thực Linux cục bộ, hãy đảm bảo các mục passwd và group được liệt kê để sử dụng winbind trong /etc/ tập tin nsswitch.conf.

Bước 18: Sử dụng kinit để nhận Kerberos TGT.

Cuối cùng, sử dụng kinit để cố gắng lấy Vé cấp vé Kerberos (TGT):

[root@sblinmssql2019~]# wbinfo -t    # kinit skumar@sbits.net

[root@sblinmssql2019~]# wbinfo – u  # klist

Rất có thể bạn sẽ gặp phải lỗi như trong ảnh chụp màn hình ở trên. Nếu vậy, hãy chỉnh sửa tệp /etc/krb5.conf và thay đổi cài đặt như hiển thị bên dưới:

Sau khi tệp được sửa đổi, không có lý do gì để khởi động bất kỳ dịch vụ nào trên máy chủ Linux và yêu cầu vé sẽ hoạt động tốt.

Bạn cũng có thể xác minh nó trên bộ điều khiển miền AD, như hiển thị bên dưới:

Chúc mừng! Bạn đã thêm máy chủ Linux vào miền Windows AD.

Tham gia tên miền AD bằng cách sử dụng reald

Bây giờ bạn đã biết cách tích hợp Linux với miền Active Directory, hãy chuyển sang tham gia miền AD. Có một cách nhanh chóng và dễ dàng để thiết lập SSSD để tham gia các miền mà không cần chỉnh sửa tệp cấu hình rườm rà: bộ phần mềm reald. Công cụ dòng lệnh này có thể được sử dụng để quản lý việc đăng ký trong các vùng Kerberos, như miền Active Directory hoặc miền IPA. Hệ thống reald 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 nhằm đạt được sự tích hợp miền trực tiếp. Nó cũng không quá phức tạp vì reald xử lý cấu hình của các dịch vụ hệ thống Linux cơ bản phức tạp, chẳng hạn như SSSD hoặc winbind.

Realmd cũng là một công cụ tuyệt vời để quản lý quyền truy cập, quản lý sự kiện, định cấu hình thành viên miền, đạt được miền trực tiếp tích hợp cũng như xác thực SSH mạng và người dùng. Nhiều nhóm an ninh mạng doanh nghiệp sử dụng lĩnh vực này để giảm bề mặt tấn công bằng cách kiểm soát ai có quyền truy cập vào nội dung gì.

Thực hiện theo các bước sau để tham gia máy chủ Active Directory bằng công cụ Realmd Desktop Bus (D-Bus). Những hướng dẫn này áp dụng cho tất cả các bản phân phối Linux, bao gồm Fedora và Ubuntu.

  1. Để thêm Linux vào miền Active Directory, hãy đảm bảo rằng máy chủ Linux của bạn có thể giao tiếp với DC qua mạng. Độ phân giải DNS và tên máy chủ phù hợp là điều cần thiết cho quá trình này.
  2. Tiếp theo, cài đặt vương quốc bằng quyền truy cập root trên tài khoản máy tính của bạn và kiểm tra xem liệu chúng tôi đã là thành viên của miền chưa.
sudo apt install realmd

realm list

Nếu vương quốc chưa được cài đặt trước đó, đầu ra sẽ trống, cho biết rằng:

  • Máy chủ không được tham gia vào AD hoặc các dịch vụ miền khác
  • Chúng tôi không có bất kỳ thành viên tên miền nào.

Nếu đầu ra liệt kê một miền bạn muốn rời khỏi, hãy chạy phần sau với tư cách là tài khoản người dùng quản trị viên miền ban đầu được sử dụng để tham gia miền:

Vương quốc sudo rời khỏi example.com -U user@example.com

3. Tiếp theo, chúng ta sẽ muốn khám phá miền của mình:

realm discover <domain_controller_hostname_or_ip_address>

Đầu ra là danh sách các gói phải được cài đặt để tham gia miền:

example.com

  type: kerberos

  realm-name: EXAMPLE.COM

  domain-name: example.com

  configured: no

  server-software: active-directory

  client-software: sssd

  required-package: sssd-tools

  required-package: sssd

  required-package: libnss-sss

  required-package: libpam-sss

  required-package: adcli

  required-package: samba-common-bin

Đầu ra của khám phá vùng có thể khác nhau tùy thuộc vào thiết lập bộ điều khiển miền và máy chủ cụ thể của bạn.

Lưu ý rằng reald sử dụng SSSD làm phần mềm máy khách Active Directory mặc định. SSSD cho phép các dịch vụ cục bộ kiểm tra bộ đệm thông tin xác thực và người dùng cục bộ trong SSSD, nhưng những bộ đệm đó có thể được lấy từ bất kỳ bộ chứng minh danh tính từ xa nào, bao gồm AD, thư mục LDAP, miền quản lý danh tính hoặc vùng Kerberos.

Nếu bạn không muốn sử dụng SSSD, bạn có thể chỉ định winbind để sử dụng Samba Winbind.

4. Xác nhận rằng máy chủ Windows và Linux nằm trên cùng một mạng. Nếu không, máy chủ Linux của bạn sẽ không thể tham gia Active Directory. Chúng tôi thực sự khuyên bạn nên có địa chỉ IP tĩnh cho bộ điều khiển miền.

5. Sau khi mọi thứ đã được xác nhận, hãy tiếp tục và cài đặt các gói bắt buộc được liệt kê (hiển thị ở trên) rồi sử dụng lệnh realm join. Thao tác này sẽ thực hiện một số việc, bao gồm thiết lập máy cục bộ để sử dụng với một miền cụ thể và tạo tệp keytab máy chủ tại /etc/krb5.keytab. Nó cũng sẽ kết nối Linux với miền Windows bằng thông tin xác thực có quyền Quản trị viên miền AD:

sudo apt install sssd sssd-tools libnss-sss libpam-sss adcli samba-common-bin

sudo realm join --client-software=sssd <domain_controller_hostname_or_ip> -U <domain_admin>

Khi chỉ định Quản trị viên miền, chúng tôi chỉ có thể sử dụng tên người dùng thay vì sử dụng định dạng example.comuser vì chúng tôi đã chỉ định bộ điều khiển miền trong lệnh.

Ngoài ra, chúng ta có thể sử dụng tham số -computer-ou để chỉ định đơn vị tổ chức để máy tính được kết nối với, sử dụng định dạng tên phân biệt (ví dụ: # lĩnh vực tham gia -computer-ou= ”ou=Máy tính Linux,dc=example,dc=com”). Việc chỉ định -computer-ou cũng rất tốt để tạo tài khoản máy tính thư mục ở các vị trí không mặc định.

Lưu ý rằng lỗi tên máy chủ không hợp lệ có thể xảy ra nếu tên máy chủ không được đặt ở định dạng phù hợp. Để giải quyết vấn đề này, chỉ cần đặt tên máy chủ chính xác:

sudo hostnamectl set-hostname '<new_hostname>'

6. Sau khi gia nhập miền, chúng ta có thể chạy lại danh sách vương quốc để xác nhận thành công và xem lại thông tin miền:

example.com

  type: kerberos

  realm-name: EXAMPLE.COM

  domain-name: example.com

  configured: kerberos-member

  server-software: active-directory

  client-software: sssd

  required-package: sssd-tools

  required-package: sssd

  required-package: libnss-sss

  required-package: libpam-sss

  required-package: adcli

  required-package: samba-common-bin

  login-formats: %U@example.com

  login-policy: allow-realm-logins

Trong trường hợp này, thuộc tính login-formats cho biết tài khoản miền sẽ được chỉ định ở định dạng user@example.com trên máy chủ này, thay vì domainuser định dạng.

7. Cuối cùng, khởi động lại dịch vụ SSSD và sử dụng lệnh bên dưới để xác minh thông tin người dùng Active Directory. Đầu ra sẽ hiển thị UID, nhóm của người dùng miền và hơn thế nữa:

sudo service sssd restart

id user@example.com

Thats tất cả để có nó! Đây hoàn toàn không phải là hướng dẫn toàn diện cho tất cả các tùy chọn mà bạn có thể thực hiện và định cấu hình theo cách thủ công trong quá trình thực hiện; tuy nhiên, đây là con đường nhanh nhất để kết nối các máy chủ Linux với Active Directory bằng cách sử dụng phương pháp hiện đại.

Các bước tùy chọn

Sau khi đã tham gia AD bằng reald, bạn có thể thực hiện các bước tùy chọn để tùy chỉnh trải nghiệm của mình, chẳng hạn như điều chỉnh hành vi của reald và quản lý các thuộc tính của đối tượng AD bằng cách sử dụng nhiều tùy chọn và công cụ khác nhau. Bao gồm các:

Phiên bản của hệ điều hành

Cài đặt os-version và os-name cho phép bạn chỉ định tên và phiên bản hệ điều hành của mình. Cụ thể, bạn có thể sử dụng chúng để kiểm soát các giá trị được đặt trong thuộc tính operatingSystemVersion và operatingSystem của tài khoản máy tính.

Trình chỉnh sửa thuộc tính AD

Đây là một công cụ đồ họa tích hợp để quản lý các thuộc tính của đối tượng AD, chẳng hạn như máy tính, người dùng và nhóm. Bạn có thể sử dụng nó bằng cách cài đặt phần đính kèm dsa.msc, một phần của Công cụ quản trị máy chủ từ xa Windows (RSAT).

Từ chối và cho phép

Lệnh từ chối vương quốc từ chối đăng nhập cục bộ bằng tài khoản thực. Bạn có thể sử dụng giấy phép khu vực để hạn chế đăng nhập vào một số tài khoản nhất định.

Thay đổi cấu hình người dùng mặc định

Hệ thống reald cho phép bạn sửa đổi thư mục chính của người dùng mặc định và các thuộc tính shell POSIX. Bạn có thể ghi đè thư mục và thuộc tính mặc định bằng cách chỉ định các tùy chọn sau trong phần [users] trong tệp /etc/realmd.conf:

  • Shell mặc định: Điều này xác định shell người dùng mặc định; nó chấp nhận mọi shell hệ thống được hỗ trợ.
  • Trang chủ mặc định: Điều này đặt mẫu để tạo thư mục chính cho các tài khoản không có thư mục chính được đặt rõ ràng.

Ánh xạ UID/GID Linux thành SID trong Active Directory

Bây giờ bạn đã biết cách tích hợp Linux với Active Directory. Tuy nhiên, chúng tôi vẫn chưa hoàn thành. Chúng ta cũng cần đề cập đến cách ánh xạ UID và GID POSIX tới SID trong Active Directory, vì máy khách Linux không có khái niệm về SID như Windows.

Lợi ích của việc sử dụng SSSD thay vì Winbind

Như đã đề cập trước đó, theo mặc định, reald sử dụng SSSD thay vì winbind. Một lợi ích lớn của phương pháp này là SSSD tự động xử lý việc tạo POSIX UID/GID bằng cách sử dụng SID của từng người dùng hoặc nhóm Active Directory. Nếu bạn giữ cài đặt SSSD mặc định trên mỗi máy chủ Linux mà bạn tham gia vào miền thì các giá trị UID và GID này sẽ được ánh xạ nhất quán trên các máy chủ Linux.

Ví dụ: trong phòng thí nghiệm của tôi, kết quả này nhất quán cho dù tôi chạy nó trên máy Linux nào, miễn là các máy được nối vào cùng một miền:

user@my-linux-host:~$ id user@example.com

uid=778006423(user@example.com) gid=778001234(domain users@example.com) groups=778001234 (domain users@example.com)

Một lợi ích khác của phương pháp này là UID và GID do SSSD tạo ra cũng có thể được áp dụng cho thuộc tính uidNumber và gidNumber trong Active Directory cho người dùng và nhóm. Điều này cho phép các ứng dụng truy vấn các thuộc tính AD này thực hiện ánh xạ UID hoặc GID tới SID, cuối cùng dẫn đến cùng một người dùng hoặc nhóm AD được tham chiếu bất kể người dùng hoặc nhóm đang sử dụng trên hệ thống Windows hay Linux.

Xem và chỉnh sửa thuộc tính uidNumber và gidNumber

Để xem các thuộc tính uidNumber và gidNumber trong Active Directory Users and Computers trên Windows Server, hãy đảm bảo bạn đã bật Tính năng nâng cao trong danh sách Xem thả xuống:

Sau đó, bạn sẽ có thể xem và chỉnh sửa các trường đó trong menu Thuộc tính của người dùng hoặc nhóm trên tab Trình chỉnh sửa thuộc tính:

Liệt kê tất cả người dùng và nhóm AD với UID và GID của họ

Tùy thuộc vào số lượng người dùng và nhóm trong miền của bạn, có thể mất nhiều thời gian để gán giá trị uidNumber và gidNumber theo cách thủ công. Mặc dù các phương pháp điền các trường này theo chương trình sẽ tùy theo môi trường cụ thể, nhưng ít nhất chúng tôi có thể liệt kê tất cả người dùng và nhóm AD, cùng với UID và GID của họ, bằng cách sử dụng lệnh getent từ máy chủ Linux đã kết nối với miền.

Theo mặc định, getent sẽ chỉ liệt kê người dùng và nhóm trên máy cục bộ. May mắn thay, điều này có thể được sửa đổi bằng cách thêm một dòng vào tệp /etc/sssd/sssd.conf của bạn và khởi động lại SSSD. Tuy nhiên, việc bật tùy chọn liệt kê này có thể gây ra căng thẳng đáng kể trên máy chủ Active Directory.

Thông thường, tôi muốn thực hiện quy trình này ngoài giờ sản xuất, lưu kết quả và sau đó tắt tính năng liệt kê đầy đủ. Đây là cách tôi làm điều đó:

  1. Đầu tiên, chúng tôi thêm enumerate=True vào sssd.conf, sau đó khởi động lại dịch vụ SSSD:
echo "enumerate = True" | sudo tee -a /etc/sssd/sssd.conf &> /dev/null

sudo service sssd restart

Tùy thuộc vào kích thước Active Directory của bạn, có thể mất tối đa 10 phút để hoàn thành việc liệt kê ban đầu vào bộ nhớ đệm cục bộ. Trong khoảng thời gian này, bạn sẽ nhận thấy người dùng và nhóm miền lần lượt xuất hiện trong kết quả đầu ra từ nhóm getent passwd và getent.

2. Sau khi hoàn tất việc liệt kê bộ đệm thông tin xác thực cục bộ, chúng tôi có thể sử dụng các lệnh sau để định dạng đầu ra getent ( cần được thay thế bằng tên miền của bạn):

getent passwd | awk -F: '{print $1 "," $3 "," $4}' | grep <domain>

getent group | awk -F: '{print $1 "," $3}' | grep <domain>

Lệnh đầu tiên xuất ra mỗi người dùng miền với UID và GID của họ ở định dạng được phân tách bằng dấu phẩy:

user@example.com,778006423,778001234

Cái thứ hai xuất ra mỗi nhóm miền có GID của nó ở định dạng được phân tách bằng dấu phẩy:

domain users@example.com,778001234

3. Bạn có thể chuyển hướng đầu ra sang tệp văn bản hoặc tệp CSV để phân tích cú pháp thành thuộc tính uidNumber và gidNumber của Active Directory. Với thông tin UID và GID ở định dạng CSV, bạn có thể tạo tập lệnh nhập từng CSV và tự động cập nhật uidNumber và gidNumber cho người dùng và nhóm Active Directory. Ví dụ: lệnh Windows PowerShell sau đây sẽ thêm UID và GID được chỉ định vào các thuộc tính đó trong AD:

Set-ADUser <ad_user> -Replace @{uidNumber="<uid>"; gidNumber="<gid>"}

Với lệnh này (và Set-ADGroup), bạn có thể dễ dàng tạo tập lệnh phù hợp với môi trường của mình và tăng tốc quá trình ánh xạ UID/GID thành uidNumber và gidNumber trong AD, cuối cùng sẽ ánh xạ tới Windows SID.

4. Sau khi lưu kết quả đầu ra từ các lệnh getent, bạn có thể xóa giá trị liệt kê khỏi sssd.conf và khởi động lại dịch vụ SSSD để ngăn việc liệt kê LDAP tốn kém xảy ra trong tương lai:

sudo sed -i '/enumerate = True/d' /etc/sssd/sssd.conf

sudo service sssd restart

Phần kết luận

Máy chủ Linux thường được sử dụng cho các chức năng quan trọng, vì vậy quản trị viên cần giám sát các máy chủ này, hiểu cách chúng được sử dụng, quan sát ai truy cập chúng và xác minh cách chúng được bảo mật.

Quản trị viên cần đặc biệt cẩn thận khi kết nối máy chủ Linux với Active Directory. Hãy nhớ rằng, chỉ cần một máy chủ hoặc người dùng bị xâm nhập là kẻ tấn công có thể xâm nhập vào quyền quản trị viên trong miền của bạn bằng cách khai thác các vấn đề như quyền truy cập của người dùng được cấp quá mức, mật khẩu yếu và chia sẻ SMB/NFS mở.

Một trong những cách tốt nhất để giảm thiểu rủi ro an ninh mạng là sử dụng Giải pháp bảo mật Netwrix Active Directory. Toàn diện và thân thiện với người dùng, phần mềm này giúp việc tích hợp Linux với Active Directory trở nên đơn giản và dễ dàng. Nó bao gồm:

  • Các công việc kiểm tra, ghi nhật ký, phân tích và báo cáo được cấu hình sẵn và có thể tùy chỉnh trên cả Unix/Linux và Active Directory
  • Các công cụ để bảo vệ các phần khác trong cơ sở hạ tầng của bạn, bao gồm Google Cloud, thiết bị mạng, hệ thống ảo hóa và bộ chứa Kubernetes

Bạn muốn trải nghiệm sự khác biệt của Netwrix? Yêu cầu dùng thử miễn phí ngay hôm nay.

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

Bạn có thể kết nối máy Linux với Active Directory không?

Đúng. Bạn có thể kết nối bất kỳ bản phân phối nào với miền AD bằng cách kết nối máy khách SSSD theo cách thủ công hoặc sử dụng lệnh realm join.

Linux kết nối với Active Directory như thế nào?

Daemon dịch vụ bảo mật hệ thống (SSSD) cung cấp một bộ daemon để quản lý quyền truy cập vào các dịch vụ thư mục từ xa và cơ chế xác thực trên máy Linux.

Realmd trong Linux là gì?

Realmd là một dịch vụ hệ thống Linux cho phép người gọi định cấu hình xác thực mạng và tư cách thành viên miền thông qua các dịch vụ SSSD hoặc winbind.

Lệnh sudo systemctl là gì?

Lệnh sudo systemctl là công cụ quản lý chính để kiểm soát hệ thống init. Bạn có thể sử dụng lệnh start sau lệnh đó để khởi động dịch vụ systemd.

Lệnh cập nhật sudo apt-get là gì?

Lệnh sudo apt-get update dùng để tải xuống thông tin gói từ tất cả các nguồn được định cấu hình.

Sudoers là gì?

Quản trị viên Linux và Unix có thể sử dụng tệp sudoers để phân bổ quyền hệ thống cho người dùng hệ thống. Nói cách khác, nó cho phép quản trị viên kiểm soát ai làm gì. Bạn có thể tìm thấy tệp này trong /etc/sudoers.

Bài viết liên quan