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?
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?
Câu trả lời:
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:
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.
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.
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.
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)
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.
Sao chép an toàn c: \ temp \ myhost.keytab vào myhost và xóa tệp khỏi pdc.EXAMPLE.COM
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
Đị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
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
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ộ.
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ị (*)
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:
login_krb5-or-pwd
vào /usr/libexec/auth
- cũng cấu hình tập tin và keytab đang ở /etc/heimdal
và không có trong /etc/kerberosV
như trong phiên bản OpenBSD trước.
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 heimdal
và login_krb5
cá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/bin
và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.conf
và krb5.keytab
đi vào /etc/heimdal
bây giờ.