Cách sử dụng Active Directory để xác thực người dùng linux


10

Cách thực hành tốt nhất để sử dụng Active Directory để xác thực người dùng trên các hộp linux (Debian) là gì?

Cách tôi muốn nó hoạt động là thêm người dùng AD vào một nhóm - giả sử quản trị viên linux hoặc máy chủ web linux , và dựa trên tư cách thành viên nhóm của họ, họ sẽ / sẽ không được cấp quyền truy cập vào một máy chủ cụ thể. Lý tưởng nhất là tài khoản root sẽ là tài khoản duy nhất được duy trì theo cách tiêu chuẩn.

Mục tiêu của tôi khi làm điều này như sau:

  • Để cho phép thay đổi mật khẩu ở một nơi
  • Để tự động cấp cho một số người nhất định quyền truy cập vào máy chủ linux bằng thông tin đăng nhập AD của họ
  • Để hợp nhất tất cả thông tin người dùng của chúng tôi vào một cơ sở dữ liệu

Điều tôi muốn tránh là:

  • bất cứ điều gì khó / phản trực quan để quản trị viên Active Directory của chúng tôi quản lý
  • khóa người dùng nếu máy chủ AD không thể truy cập được vì một số lý do (nghĩa là - nó cần lưu trữ thông tin đăng nhập bằng cách nào đó)
  • bất cứ điều gì quá phức tạp hoặc không chuẩn sẽ phá vỡ lần sau khi tôi nâng cấp máy chủ.

Câu trả lời:



4

Phần mềm bạn đang tìm kiếm được gọi là Likewise-open.

Từ trang của họ:

  • Tham gia các hệ thống không phải Windows vào các miền Active Directory trong một bước duy nhất từ ​​dòng lệnh hoặc từ GUI
  • Xác thực người dùng bằng một tên người dùng và mật khẩu trên cả Windows và không phải Windows
  • Thực thi các chính sách mật khẩu giống nhau cho người dùng không phải Windows và người dùng Windows
  • Hỗ trợ nhiều khu rừng với các quỹ tín thác rừng một chiều và hai chiều
  • Lưu trữ thông tin đăng nhập trong trường hợp bộ điều khiển miền của bạn bị hỏng
  • Cung cấp đăng nhập một lần cho SSH và Putty
  • Công cụ xác thực thế hệ tiếp theo hỗ trợ Kerberos, NTLM và SPNEGO
  • Không có thay đổi lược đồ nào đối với Active Directory

Chúng tôi đã sử dụng nó trên một số máy ở đây và nó dường như hoạt động tốt.

http://www.likewise.com/products/likewise_open/


Likewise Open có kho lưu trữ debian không? Điều này rất quan trọng đối với chúng tôi để quản lý các bản vá bảo mật.
Brent

1
Nó có gói Ubuntu: Gói: Tương tự mở Trạng thái: chưa cài đặt Phiên bản: 4.1.2982-0ubfox1 Ưu tiên: tùy chọn Phần: net Người bảo trì: Nhà phát triển Ubuntu Core <ub Ubuntu-devel-discuss@lists.ub Ubuntu.com>
jay_dubya

Từ những gì tôi có thể nói đây là một giải pháp độc quyền và bạn có thể thực hiện tất cả những thứ được liệt kê ở trên (sans gui) với LDAP + Kerberos, hầu hết trong số đó sẽ tự động xác định nếu bạn đang sử dụng miền Windows.
TheFiddlerWins

4

Không có lý do gì để bạn sử dụng bất kỳ phần mềm bên ngoài nào trên hầu hết các bản phân phối.

Đối với Debian / Ubuntu, bạn có thể làm điều đó với libnss-ldap và libpam-krb5. Có một vài thủ thuật để có được nó 100%. Điều này giả sử bạn có "unixHomeDirectory" dành cho người dùng Linux, các hộp Linux của bạn đang sử dụng NTP chung với các hệ thống Windows của bạn (do Kerberos yêu cầu) và bạn vẫn ổn với tra cứu NSS văn bản đơn giản (không phải mật khẩu nhưng thông tin thành viên nhóm, v.v. sử dụng TLS nhưng điều đó phức tạp hơn để thiết lập). Bạn KHÔNG nên có pam_ldap làm mật khẩu hoặc nguồn auth trong PAM trừ khi bạn được thiết lập để sử dụng TLS.

/etc/ldap.conf

# LDAP Configuration for libnss-ldap and libpam-ldap.
# Permit host to continue boot process with out contacting LDAP server
bind_policy soft
# Define LDAP servers to use for queries, these must be Global Catalog servers
uri ldap://ldap.site.company.local
# Define root search location for queries
base dc=company,dc=local
#debug 1
# LDAP version, almost always going to be v3, it is quite mature
ldap_version 3
# Username used to proxy authentication. You can have this in a separate file owned by root for security OR use TLS/SSL (see man page)
# Do NOT use LDAP for authentication if you are using plain text binds, use Kerberos instead (and LDAP for authorization only). See libpam-krb5.
binddn cn=ldap-auth-svc,ou=ldap,ou=services,dc=site,dc=company,dc=local
# Password for proxy acct
bindpw SooperSekeretPazzwerd
#  TCP port to perform queries on, 3268 is a Global Catalog port which will reply for all users in *.company.local
port 3268
# Search range scope (sub = all)
scope sub
# Tell the client to close TCP connctions after 30 seconds, Windows will do this on the server side anyways, this will prevent errors from showing up in the logs.
 idle_timelimit 30
# Expect queries for group membership to return DN for group members instead of usernames (lets you use MSAD group membership seamlessly)
nss_schema rfc2307bis
# Filters - User accounts must have a UID >= 2000 to be recognized in this configuration and must have a unixHomeDirectory defined.
nss_base_group dc=company,dc=local?sub?&(objectClass=group)(gidNumber=*)
nss_base_user dc=company,dc=local?sub?&(objectClass=user)(!(objectClass=localputer))(uidNumber>=2000)(unixHomeDirectory=*)
nss_base_shadow dc=company,dc=local?sub?&(objectClass=user)(!(objectClass=localputer))(uidNumber>=2000)(unixHomeDirectory=*)
# Object Class mappings.  You may want to have the posixAccount to map to "mail" and have users login with their email addresses, i.e.  "nss_map_objectclass posixAccount mail".
nss_map_objectclass posixAccount user
nss_map_objectclass shadowAccount user
nss_map_objectclass posixGroup group
# Attribute mappings.
nss_map_attribute uniqueMember member
nss_map_attribute uid sAMAccountName
nss_map_attribute homeDirectory unixHomeDirectory
nss_map_attribute shadowLastChange pwdLastSet
# Attribute in LDAP to query to match the username used by PAM for authentication
pam_login_attribute sAMAccountName
# Filter for objects which are allowed to login via PAM
pam_filter objectclass=User

Bạn không cần phải chỉnh sửa /etc/krb5.conf giả sử các hộp Linux của bạn đang sử dụng các máy chủ DNS biết về AD (các vùng _msdcs có bản ghi SRV phù hợp có thể phân giải được)

/etc/nsswitch.conf nên có "tệp ldap" cho người dùng, nhóm, bóng.

Đối với Red Hat sử dụng SSSD:

/etc/sssd/sssd.conf

[domain/AD]
id_provider = ldap
auth_provider = krb5
chpass_provider = krb5
access_provider = ldap

ldap_uri = ldap://ldap.company.local:3268/
ldap_search_base = dc=company,dc=com
ldap_default_bind_dn = cn=ldap-auth-svc,ou=ldap,ou=services,dc=site,dc=company,dc=local
ldap_default_authtok = SooperSekeretPazzwerd
ldap_schema = rfc2307bis
ldap_user_object_class = user
ldap_group_object_class = group
ldap_user_name = sAMAccountName
ldap_user_home_directory = unixHomeDirectory
enumerate = true
ldap_tls_reqcert = never
ldap_tls_cacertdir = /etc/openldap/cacerts

ldap_id_use_start_tls = False
cache_credentials = True
krb5_realm = SITE.COMPANY.COM
case_sensitive = false
[sssd]
services = nss, pam
config_file_version = 2

domains = AD
[nss]
filter_users = root,named,avahi,nscd

3

Tôi đã sử dụng Likewise-Open và thấy nó có lỗi và không đáng tin cậy lắm. Năm ngoái tôi đã chuyển sang Centrify, cho cả Linux và Mac, và tôi đã không phải lo lắng nhiều về nó. Tôi rất thích cấu hình tệp conf của Centrify so với cấu hình tệp đăng ký của Likewise-Open yêu cầu thao tác với các công cụ bên ngoài.

http://www.centrify.com/express/free-active-directory-tools-for-linux-mac.asp


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.