Đa nền tảng xác thực là một thuật ngữ nghe nĩi thường xuyên nhất trong bộ phận CNTT mà muốn xác thực logons Unix dịch vụ bằng cách sử dụng của Microsoft Active Directory, [1] hoặc xác thực logons cho khách hàng Windows bằng cách sử dụng một máy chủ Unix dựa trên LDAP. Trong trường hợp này, chúng tơi khơng quan tâm đến khả năng tương tác giữa dịch vụ directory, nhưng giữa một dịch vụ thư mục cụ thể và nonnative khách hàng (ví dụ, Active Directory và Unix khách hàng).
(NOS) mạng sử dụng LDAPv3 như giao thức truy nhập chính và, cùng với Kerberos 5, các mảnh lớn của Microsoft lớn hơn tên miền cơ sở hạ tầng mơ hình. Như vậy trong khi nĩ cĩ thể sử dụng thư mục hoạt động như một vani LDAP directory dịch vụ, tơi đã khơng bao giờ gặp một mạng sử dụng Active Directory mà khơng cĩ một nhu cầu cụ thể cho hội nhập với các cơng nghệ khác của Microsoft. Thêm thơng tin về hoạt động thư mục cĩ thể được tìm thấy tại http://www.microsoft.com/ad và Windows 2000 Active Directory Services (O'Reilly).
Đa nền tảng xác thực là Chén Thánh cho nhiều quản trị viên, khơng chỉ những người đối phĩ với hệ điều hành Microsoft. Của Novell eDirectory (chính thức gọi là NDS) cĩ sẵn trên nhiều nền tảng, như Windows, Linux và Solaris. Novell cung cấp cơng cụ như là một mơ-đun PAM cho NDS tích hợp dịch vụ xác thực máy chủ với thư mục của họ. Tuy nhiên, trong khi Microsoft cung cấp một số cơng cụ và mẫu mã nguồn cho việc tích hợp Unix khách hàng vào một tên miền Active Directory (http://msdn.microsoft.com/library/en- us/dnactdir/html/kerberossamp.asp), hiện nay là khơng cĩ cách nào để thực hiện một tên miền Active Directory bằng cách sử dụng các máy chủ khơng phải của Microsoft và các cơng nghệ.
Trong tất cả sự cơng bằng, của Microsoft cung cấp nhỏ của gĩi cho các máy chủ Unix khơng ngăn Unix khách hàng sử dụng các người dùng và nhĩm thơng trương mục tin được lưu trữ trong một tên miền Active Directory. Cĩ ít nhất ba phương pháp cho việc sử dụng Active Directory để xác thực Unix yêu cầu:
Cửa ngõ NIS/Active Directory được bao gồm trong gĩi phần mềm "Dịch vụ cho UNIX" của Microsoft cho phép Unix khách hàng để truy cập thơng tin được lưu trữ trong Active Directory. Chúng tơi thảo luận về sản phẩm này một thời gian ngắn trong phần trước.
PADL của PAM và NSS LDAP thư viện cĩ thể hoạt động như một máy chủ proxy giữa dịch vụ Unix và Active Directory. Các mơ-đun bản đồ thuộc tính và các lớp học đối tượng được lưu trữ trong Active Directory để một cái gì đĩ phù hợp hơn cho tiêu thụ bởi các ứng dụng Unix.
tương tác giữa hiện thực của Kerberos trên Windows và các nền tảng khác là tốt hơn là bạn cĩ thể mong đợi, nhưng cĩ lẽ khơng tốt như bạn sẽ hy vọng.
Phần cịn lại của tiết đoạn này sẽ kiểm tra giải pháp PAM/NSS sâu. Vào cuối phần này, chúng tơi sẽ thảo luận về cách sử dụng Kerberos để tăng cường khả năng tương tác giữa OpenLDAP và Active Directory. Các ví dụ sử dụng một tên miền Active Directory duy nhất với tên ad.plainjoe.org bằng cách sử dụng các tùy chọn mặc định được cung cấp bởi tiến trình cài đặt dcpromo. Tên miền của nĩ là bối cảnh đặt tên miền là dc = quảng cáo, dc = plainjoe, dc = org.
Chương 6 bảo hiểm làm thế nào để cài đặt và cấu hình các thư viện PADL với hệ phục vụ OpenLDAP hỗ trợ giản đồ RFC 2307 (NIS). Bằng cách sử dụng các mơ-đun để truy cập thơng tin tổ chức bởi một máy chủ Active Directory là gần như giống nhau. Thư viện pam_ldap yêu cầu khơng cĩ tùy chọn thêm trình biên dịch để hỗ trợ Active Directory. Những thay đổi này chỉ duy nhất để tập tin cấu hình của mơ-đun.
Các trích đoạn sau đây từ /etc/ldap.conf cung cấp mơ-đun với các thơng tin cần thiết để liên lạc với các máy chủ Active Directory. Đối với những người khơng quen thuộc với khơng gian tên Active Directory, theo mặc định tất cả người dùng và nhĩm được lưu trữ trong cn = thùng chứa dùng ngay bên dưới mục nhập cấp cao nhất trong các tên miền. Vì vậy, nếu các thùng chứa mặc định được sử dụng, mức một tìm kiếm, bắt đầu từ cn = người dùng, dc = quảng cáo, dc = plainjoe, dc = org nên là đủ để xác định vị trí bất kỳ người dùng hoặc nhĩm trong một tên miền Active Directory:
## /etc/ldap.conf for PADL pam_ldap and nss_ldap libraries ##
## Define the hostname of the Windows Domain Controller to contact. host windc.ad.plainjoe.org
## Users and groups are stored one level below this entry in the directory. base cn=users,dc=ad,dc=plainjoe,dc=org
scope one
Với một cài đặt mặc định, thư viện PAM tìm kiếm thư mục bằng cách sử dụng các bộ lọc (& (objectclass=posixAccount)(uid=%s)), trong đĩ %s được mở rộng để đăng nhập tên nhập bởi người sử dụng. Theo mặc định, thư mục hoạt động khơng hỗ trợ posixAccount đối tượng lớp hoặc các thuộc tính uid. Để làm việc xung quanh này, bạn cần phải phát triển một bộ lọc tìm kiếm khác nhau mà thành cơng cĩ thể xác định người sử dụng trong một tên miền Active Directory.
Tài khoản người dùng Active Directory được đại diện bởi người sử dụng đối tượng lớp; tên đăng nhập được lưu trữ với các thuộc tính sAMAccountName. Vì vậy, một bộ lọc thích hợp cho ứng dụng này là (& (objectclass=user)(sAMAccountName=%s)), và bạn cĩ thể áp dụng bộ lọc này bằng cách thiết lập các thơng số pam_filter và pam_login_attribute như sau:
pam_filter (objectclass=user) pam_login_attribute sAMAccountName
Cuối cùng, bạn phải nĩi cho pam_ldap làm thế nào để thay đổi mật khẩu của người dùng trong Active Directory. Thư viện pam_ldap cung cấp hỗ trợ cho việc thay đổi mật khẩu trong một loạt các máy chủ thư mục, bao gồm cả máy chủ SunOne, mật khẩu sửa đổi mở rộng hoạt động (RFC 3062), của Novell NDS và của Microsoft Active Directory. Các tham số pam_password quyết định cơ chế nào được chọn. Bằng cách xác định thay đổi mật khẩu quảng cáo cơ chế, bạn cho phép người dùng để cập nhật mật khẩu Windows của họ bằng cách sử dụng một ứng dụng PAM, nhận thức như của Linux /usr/bin/passwd:
Lưu ý rằng cài đặt này khơng ảnh hưởng đến cách thực tế xác thực được thực hiện; Chương 6 mơ tả quá trình xác thực. Để tĩm tắt, thư viện PAM thực hiện các bước sau:
+ Nĩ yêu cầu một mục phù hợp với các bộ lọc tìm kiếm từ các máy chủ thư mục.
+ Nĩ cố gắng liên kết với các máy chủ thư mục bằng cách sử dụng DN nhập cảnh quay trở lại và các văn bản rõ ràng của mật khẩu.
Bước 1 là một vấn đề vì mặc định thư mục hoạt động khơng cho phép LDAP khách hàng để thực hiện tìm kiếm vơ danh cho người sử dụng hoặc thơng tin tài khoản nhĩm. Cĩ một số cách xung quanh vấn đề này. Một giải pháp là để xác định giá trị cho các tham số binddn và bindpw trong /etc/ldap.conf. Bởi vì tranh phải là cĩ thể đọc mọi người sử dụng trên hệ thống, thơng tin đăng nhập tài khoản lưu trữ trong tập tin cấu hình sẽ được tiếp xúc với bất cứ ai cĩ thể đăng nhập vào máy chủ. Bạn sẽ phải là thẩm phán của như thế nào mối quan tâm bảo mật này sẽ tác động đến mạng lưới của bạn. Một giải pháp thứ hai là cho phép tìm kiếm vơ danh của thuộc tính cụ thể trong Active Directory. Điều này cĩ tác dụng tương tự vào pam_ldap như xác định một tài khoản để sử dụng khi tìm kiếm các tên miền Active Directory, nhưng bây giờ mọi người cĩ thể tìm kiếm các tên người dùng bằng cách sử dụng cơ bản LDAP yêu cầu. Tơi sẽ bao gồm cả hai phương pháp vì lợi ích của sự hồn chỉnh, mặc dù cho phép khách truy cập vào thư mục hoạt động thường tránh bằng cách người quản trị.
Để tiện cho các danh sách kiểm sốt truy cập người dùng và nhĩm trong Active Directory, khởi chạy cơng cụ quản trị người dùng thư mục hoạt động và máy tính. Xem thuộc tính của tập chứa người dùng, nhấp chuột phải vào biểu tượng người dùng và chọn Properties... từ trình đơn xuất hiện (xem hình 9-1).
Hình 9-1. Sửa đổi ACL vào các thùng chứa dùng để cho phép chưa xác định người tìm kiếm của người dùng và nhĩm tên
Tiếp theo, di chuyển đến tab bảo mật của hộp thoại kết quả và chọn nút chuyên sâu. Bạn cần phải thêm ba mục vào danh sách điều khiển truy cập, như được hiển thị trong hình 9-2:
Tất cả nhĩm địi hỏi sự cho phép nội dung danh sách trên người dùng thùng chứa chính nĩ.
Tất cả nhĩm địi hỏi khả năng đọc thuộc tính nhất định của người sử dụng các đối tượng. Quyền này nên áp dụng cho người sử dụng container và tất cả trẻ em của nĩ.
Tất cả mọi người trong nhĩm địi hỏi khả năng đọc thuộc tính nhất định các nhĩm đối tượng. Quyền này nên áp dụng cho người sử dụng container và tất cả trẻ em của nĩ.
Để đơn giản hĩa tập thể dục này, tất cả nhĩm đã được trao quyền đọc tất cả các tài sản cho một người sử dụng. Danh sách này cĩ thể được rút ngắn để các thuộc tính mà soạn một mục trong tập tin passwd(5) (mật khẩu thực tế là khơng cần thiết). Một lần nữa, bạn sẽ phải thẩm phán cho dù điều này phù hợp trong ranh giới của các chính sách bảo mật mạng của bạn. Lưu ý rằng đọc tất cả các thuộc tính khơng bao gồm quyền đọc mật khẩu của người dùng vơ danh.
Cho phép khách truy cập thường xuyên lá một hương vị xấu trong miệng của các quản trị viên Active Directory. Do bạn nên chọn để sử dụng trương mục tên là padl để tìm kiếm thư mục. Trương mục người dùng này đã được tạo ra bằng cách sử dụng bình thường cĩ nghĩa là với mặc định của chính sách an ninh. Bây giờ, bạn phải thêm các chỉ thị trong ldap.conf cho liên kết đến máy chủ Active Directory:
## Bind as the user padl in the ad.plainjoe.org domain binddn cn=padl,cn=Users,dc=ad,dc=plainjoe,dc=org bindpw padl-secret
Bây giờ mà pam_ldap cĩ thể xác định vị trí DN tài khoản bằng cách sử dụng tìm kiếm dựa trên các thuộc tính sAMAccountName, đĩ là thời gian để chuyển sang vấn đề thứ hai: thư viện PAM hiện đang gửi các chứng chỉ người dùng (và binddn) trong văn bản rõ ràng. Các giải pháp hiển nhiên cho vấn đề này là sử dụng SSL để bảo đảm thơng tin trong quá cảnh.
Thư mục hoạt động trên một máy chủ Windows 2000 khơng thực hiện StartTLS mở rộng hoạt động cho đàm phán một lớp an tồn giao thơng vận tải, [2] nhưng nĩ hỗ trợ giao thức LDAPS trên cổng 636. Cĩ hai điều kiện tiên quyết cho việc thực hiện giải pháp này:
[2] Việc phát hành Windows 2003 Server do trong tháng 4 năm 2003 báo cáo hỗ trợ phần mở rộng StartTLS.
Hệ phục vụ Windows Active Directory phải hỗ trợ mã hĩa 128-bit. Nếu bạn đang sử dụng Windows 2000, bạn cĩ thể được mã hĩa 128-bit bằng cách cài đặt các phiên bản cao mật mã
của service pack mới nhất. Xem
http://www.microsoft.com/windows2000/downloads/servicepacks/ để biết chi tiết về việc lấy và cài đặt bản cập nhật Windows 2000.
Các máy chủ Active Directory phải đã được cấp một giấy chứng nhận kỹ thuật số. Mạng của chúng tơi sẽ sử dụng các giấy chứng nhận Authority (CA) đi kèm với Windows 2000 Advanced Server OS. Để biết thêm chi tiết về cài đặt Windows 2000 giấy chứng nhận quyền,
xem 2000 tài nguyên bộ Windows trực tuyến tại
http://www.microsoft.com/windows2000/techinfo/reskit/en-us/default.asp.
Sau khi hệ phục vụ thư mục đã được cấu hình để hỗ trợ LDAPS, hãy thêm những dịng để /etc/ldap.conf:
## Instruct pam_ldap and nss_ldap to use LDAPS when connecting to the directory. ssl on
port 636
Theo mặc định, pam_ldap khơng xác minh chứng chỉ máy chủ LDAP (xem các tham số tls_checkpeer từ chương 6). Cho các mục đích của chúng tơi, đĩ là chấp nhận được
Tại thời điểm này, khách hàng Unix cĩ khả năng cĩ thể xác nhận yêu cầu kết nối cho một PAM kích hoạt dịch vụ bằng cách sử dụng Active Directory. Tuy nhiên, như chúng ta đã thấy trong chương 6, PAM và NSS giải pháp được thực thường hiện cùng nhau. Tiếp theo, bạn phải cấu hình mơ-đun nss_ldap truy xuất thơng tin tài khoản Unix từ Active Directory, kết hợp với việc sử dụng pam_ldap cho xác thực. Vấn đề bạn phải đối phĩ với thời gian này là rằng Active Directory khơng duy thường trì bất kỳ thuộc tính liên quan đến tài khoản Unix.
khách hàng NIS, SFU cài đặt sửa đổi lược đồ Active Directory để bao gồm các thuộc tính và đối tượng lớp để lưu trữ các thơng tin như người dùng Unix và nhĩm định danh (số UIDs và GIDs), đường dẫn thư mục kiểu Unix và Unix đăng nhập vỏ. Vì vậy, bạn cĩ thể mở rộng lược đồ Active Directory bằng cách cài đặt gĩi SFU, và nĩ sử dụng giản đồ cung cấp-ngay cả khi bạn khơng cĩ ý định sử dụng máy chủ NIS của Microsoft chính nĩ.
Cách tiếp cận khác là mở rộng lược đồ Active Directory cho mình. Sau khi tất cả, đĩ là thực sự chỉ là một LDAPv3 máy chủ. Các plugin AD4Unix phát triển bởi CSS giải pháp (http://www.css-solutions.ca/ad4unix/) cho phép bạn quản lý liên quan đến Unix thuộc tính bằng cách sử dụng tiêu chuẩn giao diện "Hoạt động thư mục người sử dụng và máy tính" Microsoft Management Console (MMC). Phần mở rộng MKSADExtPlugin được tự do phân phối ở dạng nhị phân như một gĩi Windows Installer (MSI). Trình cài đặt sẽ cho bạn cơ hội để nhập khẩu giản đồ SFU mà khơng cài đặt SFU chính nĩ.
Hoạt động thư mục chỉ định một bộ điều khiển vùng như thầy lược đồ; thay đổi lược đồ tất cả phải diễn ra trên máy chủ này. Để cho trình cài đặt MKSADExtPlugin nhập khẩu thay đổi lược đồ, hai điều kiện phải được đáp ứng:
Người dùng cố gắng cập nhật lược đồ phải là thành viên của nhĩm quản trị viên Schema.
Điều khiển vùng phục vụ như Thạc sĩ Schema phải được cấu hình để cho phép thay đổi lược đồ.
Theo mặc định, một cài đặt Windows 2000 Active Directory khơng cho phép giản đồ được đổi; giới hạn này đã bị loại bỏ trong Windows 2003. Để thay đổi cài đặt này, bạn phải đăng ký và mở "Lược đồ Active Directory" MMC snap-in. Để đăng ký-theo với hệ điều hành, thực thi lệnh trên bộ điều khiển tên miền:
C:\WINNT\System32\> regsvr32.exe schmmgmt.dll
Lược đồ Active Directory snap-nên bây giờ nằm trong danh sách các mơ-đun cĩ sẵn cho MMC. Sau khi mở ứng dụng MMC và thêm cơng cụ quản lý giản đồ, như được hiển thị trong hình 9-3, cĩ thể truy cập các cửa sổ hộp thoại thay đổi lược đồ Master bằng cách chọn các
lược đồ Active Directory. Đánh dấu vào ơ đĩ sẽ xác định cho dù giản đồ cĩ thể được sửa đổi. Hình 9-3. Bằng cách sử dụng "Lược đồ Active Directory" MMC snap-in
Bây giờ mà máy chủ thư mục được cấu hình để truy cập vào giản đồ nhập khẩu, tiến trình cài đặt MKSADExtPlugin cĩ thể bắt đầu. Bạn cĩ thể xem bài viết về các thành phần được đăng ký thành cơng. Đây là những bình thường và cĩ thể được bỏ qua một cách an tồn.
Khi trình cài đặt Windows đã hồn tất, bạn sẽ thấy cơng cụ cấu hình để cài đặt chung của MKSADExtPlugin trong menu bắt đầu. Ứng dụng này, được hiển thị trong hình 9-4, cho phép bạn chỉ định một loạt các số UIDs và GIDs sẽ tự động được cấp phát cho người dùng Active Directory và nhĩm khi cần thiết. Các ID được cấp phát bởi-theo nhưng cĩ thể được đặt bằng tay. Lĩnh vực "Cho phép NIS" định nghĩa các thuộc tính syncNisDomain cho người dùng. Thuộc tính này được cung cấp cho các máy chủ SFU NIS và là khơng cần thiết bởi hoặc pam_ldap hoặc nss_ldap. Tuy nhiên, trừ khi một người dùng được đặt trong một trong các lĩnh vực NIS được liệt kê, các thuộc tính Unix cịn lại sẽ khơng cĩ sẵn, như được hiển thị