Xác thực OpenBSD với Active Directory


24

Chỉnh sửa: Định dạng lại này là Q & A. Nếu bất cứ ai cũng có thể thay đổi điều này từ Community Wiki thành một câu hỏi điển hình, điều đó có lẽ cũng phù hợp hơn.

Làm cách nào để xác thực OpenBSD với Active Directory?


Rất đẹp! Điều đó có vẻ rất kỹ lưỡng và được viết tốt. Tôi không sử dụng OpenBSD, nhưng các phần AD trông có vẻ nổi bật.
Evan Anderson

+1 cho một hướng dẫn tốt đẹp, mặc dù nó không thực sự là một câu hỏi.
David Schmitt

Bạn nên thay đổi điều này thành một định dạng Câu hỏi & Trả lời.
Doug Luxem

Thay đổi, mặc dù nó vẫn là một Wiki cộng đồng. Nếu người khác có thể thay đổi điều đó, hãy tiếp tục.
sh-beta

Câu trả lời:


17

Lời nói đầu

Xác thực chống lại Active Directory bằng Kerberos khá đơn giản trên các hệ thống sử dụng PAM, nhưng OpenBSD thì không và làm cho nó khó khăn hơn. Từ một tcpdump, có vẻ như các hệ thống PAM chỉ đang thực hiện xác thực trước trong khi hệ thống bsd_auth của OpenBSD đang sử dụng toàn bộ quy trình xác thực Kerberos.

Dù sao, điều này khiến tôi mất một thời gian để tìm ra vì vậy hy vọng một số hướng dẫn súc tích sẽ giúp bạn tiết kiệm thời gian.

Một vài lưu ý nhanh trước khi chúng tôi bắt đầu:

  • Người dùng phải tồn tại trên hệ thống OpenBSD trước khi thử đăng nhập. Họ không được tự động điều trị.
  • Nếu bạn muốn người dùng tự động điều trị, hãy xem Samba / Winbind. Tôi không có gì ngoài rắc rối (sự cố không thể giải thích, spam nhật ký nghiêm trọng, xác thực không đáng tin cậy) từ đó, vì vậy tôi chỉ sử dụng nó khi tôi phải.
  • Điều này đã được thử nghiệm trên OpenBSD 4.5 và Windows Server 2003. Tôi khá chắc chắn rằng nó sẽ hoạt động với Win2k, nhưng YMMV.
  • Phiên bản OpenBSD này sử dụng Heimdal 0.7.2. Tất cả mọi thứ ở đây ngoài các đường dẫn và công cụ login.conf có thể sẽ hoạt động trên các * nix khác chạy cùng Heimdal, nhưng một lần nữa, YMMV.

Hướng dẫn

Các bước này giả sử bạn đang cố gắng xác thực myuser@myhost.fqdn dựa trên tên miền EXAMPLE.COM. Bộ điều khiển miền là pdc.EXAMPLE.COM.

  1. Tạo tài khoản người dùng Active Directory có tên myhost (đó không phải là lỗi chính tả, các hướng dẫn này sẽ không hoạt động với tài khoản Máy tính). Vô hiệu hóa hết hạn mật khẩu và không để người dùng thay đổi mật khẩu của chính mình. Đặt mật khẩu thành bất cứ thứ gì bạn thích - nó sẽ sớm được thay đổi.

  2. Có lẽ là một ý tưởng tốt để tạo tài khoản Người dùng trong OU mới, xóa tài khoản đó khỏi nhóm Người dùng Miền và thêm nó vào một nhóm chuyên dụng. Đây là tất cả một vấn đề của hương vị và bố trí bảo mật của bạn.

  3. Trên pdc.EXAMPLE.COM, tải xuống và cài đặt Công cụ hỗ trợ Windows Server (cụ thể, bạn sẽ cần ktpass.exe)

  4. Trên pdc.EXAMPLE.COM, hãy chạy:

    ktpass -out c: \ temp \ myhost.keytab -princ host/myhost.fqdn@EXAMPLE.COM -mapuser myhost -pType KRB5 _NT_PRINCIPAL + rndpass

    Điều này cập nhật mật khẩu của người dùng myhost thành một cái gì đó ngẫu nhiên (+ rndpass), ánh xạ hiệu trưởng Kerberos "host/myhost.fqdn@EXAMPLE.COM" cho người dùng "myhost" trong Active Directory, sau đó đưa thông tin khóa chính và khóa riêng vào -out tập tin keytab.

  5. Sao chép an toàn c: \ temp \ myhost.keytab vào myhost và xóa tệp khỏi pdc.EXAMPLE.COM

  6. Trên myhost, thêm keytab AD vào keytab chính của bạn:

    ktutil sao chép /path/to/myhost.keytab /etc/kerberosV/krb5.keytab

  7. Định cấu hình /etc/krb5.conf. Dưới đây là mức tối thiểu mà bạn cần. Có rất nhiều tùy chọn có sẵn, hãy xem trang chủ để biết thêm chi tiết. Điều này chỉ đặt đồng hồ tối đa có thể chấp nhận được là 5 phút, biến EXAMPLE.COM thành vương quốc mặc định và cho Kerberos biết cách dịch giữa các cõi DNS và Kerberos.

    [libdefaults]
    clockkew = 300
    default_realm = EXAMPLE.COM

    [cõi]
    EXAMPLE.COM = {
    default_domain = EXAMPLE.COM
    }

    [domain_realm]
    .EXAMPLE.COM = EXAMPLE.COM

  8. Xác minh rằng bạn có thể nhận được một vé:

    # kinit Administrator@EXAMPLE.COM
    Administrator@EXAMPLE.COM's Password:
    # klist
    Credentials cache: FILE:/tmp/krb5cc_0
    Principal: Administrator@EXAMPLE.COM

    Issued Expires Principal
    Jun 4 21:41:05 Jun 5 07:40:28 krbtgt/EXAMPLE.COM@EXAMPLE.COM

  9. Sửa đổi /etc/login.conf để sử dụng xác thực Kerberos. Cấu hình login.conf chính xác của bạn sẽ thay đổi tùy thuộc vào cách bạn sử dụng hệ thống của mình, nhưng để chuyển từ cài đặt vanilla sang sử dụng Kerberos, chỉ cần chỉnh sửa và nhận xét dòng này trong lớp đăng nhập mặc định:

    :tc=auth-defaults:\

    Và thêm vào trên nó:

    :auth=krb5-or-pwd:\

    Điều này kiểm tra Kerberos trước trừ khi người dùng root. Nếu Kerberos thất bại, nó sẽ sử dụng mật khẩu cục bộ.

  10. Thêm người dùng bạn muốn xác thực trên máy chủ này. Để trống mật khẩu trừ khi bạn muốn chúng có thể sử dụng cả Active Directory và mật khẩu cục bộ (không được khuyến nghị).

    Bạn có thể bỏ trống "mật khẩu" của người dùng hiện tại <user>và thay thế giá trị "Mật khẩu được mã hóa:" bằng dấu hoa thị (*)

  11. Kiểm tra SSH và Sudo. Cả hai sẽ hoạt động hoàn hảo với thông tin đăng nhập Active Directory của bạn.

Thats tất cả để có nó.

Liên kết

Một vài trang web hữu ích:


Có vẻ như 2008 R2 có ktpass.exe được nướng. Có lẽ 2008 cũng vậy, không thể nói chắc chắn ở giai đoạn này. Nếu bất cứ ai có thể làm rõ, đó sẽ là tuyệt vời.
Aaron Mason

Hơn nữa, để thực hiện điều này với 5.7 trở đi, bạn sẽ cần cài đặt gói Heimdal - nó đã bị xóa khỏi cơ sở trong 5.6.
Aaron Mason

Phụ lục về nhận xét trước - bạn cũng sẽ phải cài đặt gói login_krb5 và sao chép login_krb5-or-pwdvào /usr/libexec/auth- cũng cấu hình tập tin và keytab đang ở /etc/heimdalvà không có trong /etc/kerberosVnhư trong phiên bản OpenBSD trước.
Aaron Mason

5

Một bản cập nhật cho các hướng dẫn ở trên như một vài điều đã thay đổi kể từ đó.

Trong OpenBSD 5.6, một quyết định đã được đưa ra để loại bỏ Heimdal khỏi phân phối cơ sở do lo ngại về chất lượng mã và không ai sẵn sàng dành thời gian để kiểm toán nó. Trong 5.7, nó được cung cấp dưới dạng gói (Đối với 5.6 bạn sẽ cần xây dựng từ nguồn hoặc tìm cách bật lại nó trong nguồn). Vì vậy, trước khi làm theo các hướng dẫn ở trên, các bước bổ sung sau sẽ cần được hoàn thành:

-3. Cài đặt heimdallogin_krb5các gói từ gương yêu thích của bạn.

-2. Sao chép /usr/local/libexec/auth/login_krb5*vào /usr/libexec/auth.

-1. Nếu bạn có ý định sử dụng các công cụ heimdal rất nhiều, hãy thêm /usr/local/heimdal/binvào đường dẫn hệ thống của bạn. Nếu không, hãy chắc chắn tham chiếu các công cụ với đường dẫn đầy đủ của chúng khi sử dụng chúng.

Ngoài ra, các tập tin krb5.confkrb5.keytabđi vào /etc/heimdalbây giờ.

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.