Làm cách nào để tích hợp Active Directory với FreeBSD 10.0 bằng bảo mật / sssd?


Câu trả lời:


14

Có một số cân nhắc khó khăn để làm cho mọi thứ hoạt động vượt trội. FreeBSD chỉ hỗ trợ sssdphiên bản 1.9.6 tại thời điểm này. Vì vậy, không có hỗ trợ cho Tên hiệu trưởng doanh nghiệp.

Nếu bạn có một tên miền không có UPN phù hợp thì nó sẽ không đăng nhập được, vì xác thực Kerberos sẽ thất bại trong quá trình, ngay cả với FreeBSD hỗ trợ Tên hiệu trưởng doanh nghiệp với Kerberos, sssdkhông thể xử lý trường hợp này.

Vì vậy, trong phiên bản thực tế của sssdbạn bị giới hạn có Tên người dùng gốc trong cùng một tên miền, ví dụ:

Domain Name = example.com
NetBIOS Name = EXAMPLE
User Principal Name:
username@example.com sAMAccountName: username

Biết được điều này, chúng tôi có thể mô tả các bước để xác thực thành công người dùng từ AD trong FreeBSD.

1. Cấu hình Kerberos

Tạo tập tin /etc/krb5.confvới nội dung sau:

[libdefaults]
    default_realm = EXAMPLE.COM
    dns_lookup_realm = true
    dns_lookup_kdc = true
    ticket_lifetime = 24h
    renew_lifetime = 7d
    forwardable = yes

2. Cài đặt Samba 4.1 và định cấu hình để tham gia Miền

Cài đặt Samba 4.1:

$ pkg install samba41

Tạo tập tin /usr/local/etc/smb4.confvới nội dung sau:

[global]
    security = ads
    realm = EXAMPLE.COM
    workgroup = EXAMPLE

    kerberos method = secrets and keytab

    client signing = yes
    client use spnego = yes
    log file = /var/log/samba/%m.log

Yêu cầu một vé Kerberos của quản trị viên:

$ kinit Administrator

Sau đó tham gia tên miền và tạo một keytab

$ net ads join createupn=host/server-hostname.example.com@EXAMPLE.COM -k
$ net ads keytab create -k

3. Cài đặt gói sssd và Cyrus SASL với sự hỗ trợ của Kerberos

Cài đặt các gói yêu cầu:

$ pkg install sssd cyrus-sasl-gssapi

Chỉnh sửa tập tin /usr/local/etc/sssd/sssd.confđể phù hợp với cài đặt này:

[sssd]
    config_file_version = 2
    services = nss, pam
    domains = example.com

[nss]

[pam]

[domain/example.com]
    # Uncomment if you need offline logins
    #cache_credentials = true

    id_provider = ad
    auth_provider = ad
    access_provider = ad
    chpass_provider = ad

    # Comment out if the users have the shell and home dir set on the AD side
    default_shell = /bin/tcsh
    fallback_homedir = /home/%u

    # Uncomment and adjust if the default principal SHORTNAME$@REALM is not available
    #ldap_sasl_mech = GSSAPI
    #ldap_sasl_authid = SERVER-HOSTNAME$@EXAMPLE.COM

4. Thêm hỗ trợ sssd vào nsswitch.conf

Chỉnh sửa tập tin /etc/nsswitch.confđể phù hợp với cài đặt này:

group: files sss
passwd: files sss

5. Cấu hình PAM để cho phép xác thực sssd và xử lý việc tạo thư mục chính

Cài đặt các gói tùy chọn để tạo thư mục nhà:

$ pkg install pam_mkhomedir

Sửa đổi các PAMcảnh giới cần thiết để phù hợp với cài đặt này:

auth            sufficient      /usr/local/lib/pam_sss.so
account         required        /usr/local/lib/pam_sss.so        ignore_unknown_user
session         required        /usr/local/lib/pam_mkhomedir.so  mode=0700
session         optional        /usr/local/lib/pam_sss.so
password        sufficient      /usr/local/lib/pam_sss.so        use_authtok

6. Chuyển sang Máy khách OpenLDAP được bật SASL

$ pkg remove -f openldap-client
$ pkg install openldap-sasl-client

7. Cuối cùng xác nhận rằng mọi thứ đang hoạt động

$ getent passwd <username>

Bạn có giải pháp nào cho FreeBSD 10.3 không, khi cài đặt openldap-sasl-client khiến pkg loại bỏ sssd, ldb và samba44? Tôi cảm thấy rằng tôi rất gần khi sử dụng câu trả lời của bạn nhưng tôi bị mắc kẹt ở phần này.
bgStack15

2

Mà Kerberos bạn đang sử dụng ở đây? Tích hợp một hoặc bảo mật / krb5 từ MIT?

Khi cài đặt sssd, yêu cầu bảo mật / krb5 phải được cài đặt mà tại thời điểm này vẫn được coi là thử nghiệm trong FreeBSD. Do đó, câu hỏi này.

Tôi không gặp may mắn khi nhận được các nhóm / người dùng AD khi thực hiện các lệnh 'getent'. có thể là do tên NETBIOS khác với tên miền -ie trong trường hợp của tôi, tên miền là dawnsign.com và tên NETBIOS là DSP.

Tôi chỉ cấu hình mô-đun đăng nhập pam.d. Những mô-đun pam nào khác cần được chỉnh sửa để xác thực thành công?

Bất kỳ thông tin bổ sung sẽ được đánh giá rất cao!


Tôi đang sử dụng Heimdal Kerberos từ căn cứ. Không cài đặt cổng MIT Kerberos.
Vinícius Ferrão

1

Biên dịch lại samba4 từ các cổng có thể sử dụng tính năng tự động winbind như linux ngay cả khi không có sssd. Đơn giản chỉ cần biên dịch lại samba4 từ các cổng sau khi kích hoạt sasl ldap

    pkg remove samba41 
    pkg install cyrus-sasl-gssapi samba36-libsmbclient pam_mkhomedir ldb 
    pkg remove -f openldap-client 
    pkg install openldap-sasl-client 
    cd /usr/ports/security/sssd && make install

Điều này sẽ biên dịch lại samba với tất cả các hỗ trợ cần thiết (gssapi, ldap, kerberos) sau đó chỉnh sửa nsswitch.conf như thế này

passwd: files winbind
group: files winbind

Tại sao nên sử dụng winbind và samba nếu chúng ta có thể sử dụng Kerberos bản địa?
Vinícius Ferrão

Đối với người dùng thư mục hoạt động, kerberos là mật khẩu và sso
elbarna

0

Xin chào,

Đây là một bản cập nhật nhỏ về việc sử dụng sssd v1.11.7

Nếu bạn đang sử dụng "id_provider = ad" và bạn thấy lỗi sau trong logssile sssd:

/var/log/sssd/sssd_example.com.log
(Sun Oct  5 18:41:37 2014) [sssd[be[alidaho.com]]] [sasl_bind_send] (0x0020): ldap_sasl_bind failed (-12)[Not Supported]
(Sun Oct  5 18:41:37 2014) [sssd[be[alidaho.com]]] [sasl_bind_send] (0x0080): Extended failure message: [unknown error]

Bạn có thể sử dụng quy trình sau để giải quyết vấn đề này và làm cho tích hợp AD hoạt động chính xác. Bây giờ hãy xây dựng sssd v1.11.7 với sự hỗ trợ của Samba, việc xây dựng từ src sssd là cần thiết để liên kết với libsasl2

​pkg remove samba41
pkg install cyrus-sasl-gssapi samba36-libsmbclient pam_mkhomedir ldb
pkg remove -f openldap-client
pkg install openldap-sasl-client
cd /usr/ports/security/sssd && make install

Mục đích của việc loại bỏ samba41 là gì? Nó chỉ hoạt động với samba36? Tôi đang gặp vấn đề chính xác này nhưng không muốn quay lại 3.6 nếu tôi không phải làm vậy.
MikeyB

Bạn xóa samba41 nhị phân, sau đó biên dịch lại samba41 khỏi các cổng (được yêu cầu bởi sssd). Trong trường hợp của tôi (cài đặt 10.1 mới) nhị phân samba41 không hoạt động, samba41 được biên dịch bởi các cổng hoạt động hoàn hảo
elbarna

0

Dưới đây là hướng dẫn của tôi về tích hợp AD qua SSSD với các phiên bản FreeBSD này, tại thời điểm viết bài này (6/2017)

  • FreeBSD 10.3 và 11.0 (10.3-RELEASE-p18 & 11.0-RELEASE-p9)
  • Cài đặt (và các vấn đề phụ thuộc và đóng gói thú vị)

    • Các gói được yêu cầu dường như không tương thích với Heimdal Kerberos, vì vậy mọi thứ phải được cài đặt và biên dịch với cờ MIT Kerberos được bật. Đây có thể là vấn đề phụ thuộc bao bì nhiều hơn là vấn đề tương thích thực tế.
    • Heimdal được cài đặt với hệ thống cơ sở, do đó, điều này sẽ cho bạn hai bộ lệnh Kerberos nếu bạn cài đặt MIT Kerberos, một bộ /usr/binvà một bộ khác /usr/local/bin. Vì không có tệp hệ thống cơ sở nào có vẻ nằm trong một gói, bạn không thể xóa nội dung KRB của Heimdal. Một cái gì đó để nhận thức được.
    • Chuyển tiếp phụ thuộc của các gói khác nhau (deps thú vị in đậm, deps xung đột in nghiêng in đậm):

      • net-mgmt/adcli:net/openldap24-sasl-client
      • security/cyrus-sasl2-gssapi: security/cyrus-sasl2
      • net/openldap24-sasl-client: security/cyrus-sasl2
      • security/sssd: security/nss
      • security/sssd:security/krb5
      • security/sssd: security/cyrus-sasl2
      • security/sssd:net/openldap24-client
      • security/sssd: lang/python27
      • security/sssd: lang/python2
      • security/sssd: dns/c-ares
      • security/sssd: devel/tevent
      • security/sssd: devel/talloc
      • security/sssd: devel/popt
      • security/sssd: devel/pcre
      • security/sssd: devel/libunistring
      • security/sssd: devel/libinotify
      • security/sssd: devel/gettext-runtime
      • security/sssd: devel/ding-libs
      • security/sssd: devel/dbus
      • security/sssd: databases/tdb
      • security/sssd: databases/ldb
    • Phụ thuộc ngược của các gói khác nhau:

      • net/openldap24-sasl-client: sysutils/msktutil
      • net/openldap24-sasl-client: net/nss-pam-ldapd-sasl
      • net/openldap24-sasl-client: net-mgmt/adcli
        • Như chúng ta thấy sssdchính nó đòi hỏi MIT Kerberos, mặc dù chúng ta có Heimdal là gói cơ sở
        • adclimuốn openldap-sasl-client, nhưng các gói khác (bao gồm cả phụ thuộc của sssd) kéo vào openldap-client, đó là mutex với máy khách sasl (vì bất kỳ lý do ngớ ngẩn nào). Điều này làm cho việc cài đặt hơi khó khăn, ngay cả với một gói nhị phân tối thiểu.
        • Các phụ thuộc này có mặt cho cả các gói repo nhị phân và nếu các gói được xây dựng trong cây cổng. Điều này đòi hỏi một phương pháp cài đặt đặc biệt khó chịu để có được mọi thứ chúng ta cần (được đề cập dưới đây).
    • Theo văn bản này, pkg nhị phân cho SSSD cho FreeBSD không bao gồm hỗ trợ AD trong SSSD

      • Phiên bản cổng của SSSD phải được xây dựng với các tùy chọn (make config) thích hợp được bật:
        • SMB
      • SSSD cũng muốn sử dụng openldap-client, khi nó thực sự cần openldap-sasl-client để hoạt động chính xác.
    • Phiên bản nhị phân pkg adclitồn tại, nhưng khi viết bài này, không hoạt động.
      • Một lần nữa, phiên bản cổng đã được biên dịch với các tùy chọn phù hợp được bật:
        • GSSAPI_MIT
    • cyrus-sasl-gssapi là bắt buộc, nhưng phiên bản nhị phân pkg không hoạt động và có các vấn đề phụ thuộc kỳ lạ khiến nó loại bỏ SSSD.
      • Xây dựng nó từ các cổng với tùy chọn MIT-KRB5 được bật:
        • GSSAPI_MIT
    • openldap-sasl-client là cần thiết cho chức năng nhưng SSSD muốn sử dụng phiên bản openldap không phải của SASL.
      • Để làm việc này
        • cấu hình openldap-sasl-clientvới GSSAPItùy chọn được chọn ( make config) trong các cổng.
        • Thực hiện các cổng trong để xây dựng nó
        • Trước khi thực hiện cài đặt, hãy làm một pkg remove –f openldap-client
          • Điều này sẽ loại bỏ openldap-clientmà không thực hiện bất kỳ chế độ tự động nào của bất kỳ gói nào khác (như SSSD) và cho phép cài đặt phiên bản SASL
        • Thực hiện cài đặt cho openldap-sasl-client
          • Điều này sẽ cài đặt nó vào hệ thống
    • Điều này sẽ cung cấp những gì cần thiết cho một SSSD chức năng với khả năng AD.
    • Xin lưu ý rằng nếu bạn biên dịch SSSD từ các cổng, nó sẽ kéo theo RẤT NHIỀU phụ thuộc, điều này sẽ khiến chúng được xây dựng và yêu cầu các tùy chọn cấu hình được chọn.
      • Bạn nên cài đặt gói nhị phân trước với pkg cài đặt sssd sau đó xóa nó bằng pkg remove –f sssd
        • Điều này sẽ gây ra các gói nhị phân cho hầu hết mọi thứ mà SSSD cần phải được kéo vào và loại bỏ nhu cầu xây dựng tất cả các gói này phụ thuộc vào các cổng, mất khá nhiều thời gian.
      • Sau khi xóa, hãy cài đặt lại SSSD từ các cổng với các tùy chọn được đề cập ở trên được bật và bạn sẽ chỉ cần xây dựng lại bốn gói được đề cập ở trên để có được thiết lập hoạt động.
    • (Tùy chọn) Khi mọi thứ đang hoạt động và được xác minh, bạn có thể sử dụng pkg createđể tạo các gói nhị phân của bốn gói với các tùy chọn phù hợp được bật và sử dụng các gói thay vì xây dựng chúng trong các cổng trên mọi hệ thống. Cài đặt nhị phân theo một mô hình tương tự như quá trình xây dựng cổng:

      • pkg install sssd-1.11.7_8.txz
        • Phiên bản của bạn có thể khác nhau tất nhiên
        • Điều này sẽ cài đặt gói nhị phân cho SSSD và lấy mọi thứ nó cần từ repo FreeBSD.
      • pkg add các gói khác (không cài đặt, thêm), lưu gói openldap lần cuối.
      • Trước khi thêm openldap-sasl-clientlàm mộtpkg remove –f openldap-client
        • Điều này được loại bỏ phiên bản không phải là SASL và cho phép phiên bản của chúng tôi được cài đặt
      • pkg add openldap-sasl-client-2.4.44.txz
        • Một lần nữa, phiên bản của bạn có thể khác
      • Bạn nên kết thúc với các gói yêu cầu được cài đặt.
      • có thể thể thay đổi siêu dữ liệu cho các nhị phân SSSD trước khi thực hiện pkg createđể thay thế cho sự phụ thuộc vào openldap-clientvới openldap-sasl-clientđể loại bỏ sự cần thiết phải làm remove này / cài đặt lại. Tôi đã không có thời gian để xem xét việc này.
        • Thêm vào đó, có những phụ thuộc phụ của SSSD cũng kéo theo openldap-client, vì vậy bạn cũng sẽ phải sửa chúng.
      • Xin lưu ý rằng tất cả các ghi chú này là các phiên bản của các gói này hiện tại trong cây cổng kể từ khi viết bài này và các phụ thuộc mà chúng có liên quan đến chúng. Tất cả điều này có thể thay đổi khi FreeBSD cập nhật cây cổng và nhị phân. Có thể một ngày nào đó chúng ta sẽ có một phiên bản nhị phân của tất cả mọi thứ kéo theo tất cả các phụ thuộc đúng với các tùy chọn phù hợp được cấu hình cho chức năng AD ngay lập tức.
    • Cấu hình Kerberos:

      • Tệp /etc/krb5.conf mẫu:
[libdefaults]
   default_realm = MYDOMAIN.NET
   chuyển tiếp = đúng
# Thông thường tất cả những gì bạn cần trong môi trường AD, vì DNS SRV ghi lại
# sẽ xác định các máy chủ / dịch vụ AD / KRB. Bình luận nếu bạn
# muốn tự trỏ đến máy chủ AD của bạn
dns_lookup_kdc = đúng
[cõi]
   MYDOMAIN.NET = {
# Nếu bạn đang tự trỏ đến một máy chủ AD khác với DNS trong DNS
# admin_server = adserver.mydomain.net
# kdc = adserver.mydomain.net
   }
[domain_realm]
   mydomain.net = MYDOMAIN.NET
   .mydomain.net = MYDOMAIN.NET
  • (thụt lề)
    • Cấu hình SSSD:
      • Ví dụ này giả định các thuộc tính POSIX trong AD cho người dùng và nhóm, thường được yêu cầu khi một thay thế một môi trường hiện có đã thiết lập UID và GID.
      • Tệp /usr/local/etc/sssd/sssd.conf:
[sssd]
config_file_version = 2
tên miền = MYDOMAIN.NET
dịch vụ = nss, pam, pac
fallback_homedir = / home /% u

[tên miền / MYDOMAIN.NET]
id_provider = quảng cáo
access_provider = quảng cáo
auth_provider = quảng cáo
chpass_provider = quảng cáo
# sử dụng các thuộc tính AD POSIX, nhận xét nếu bạn đang sử dụng được tạo tự động
# UID và GID.
ldap_id_mapping = Sai
cache_credentials = true
ad_server = adserver.mydomain.net
# nếu bạn không có bash, hoặc bất cứ điều gì có trong loginShell của tài khoản AD
# thuộc tính được cài đặt
ghi đè_shell = / bin / tcsh
  • (thụt lề)
    • Cấu hình PAM:
      • Cấu hình PAM trên FreeBSD hơi phức tạp vì cách thức hoạt động của OpenPAM. Tôi sẽ không đi vào chi tiết, nhưng để sử dụng pam_sss cho SSSD và để nó hoạt động, và cũng có thông tin đăng nhập passwd, bạn cần đặt pam_unix vào tệp hai lần. Theo những gì tôi hiểu, điều này phải thực hiện với một kiểm tra thứ cấp được thực hiện "đằng sau hậu trường" đòi hỏi mô-đun pam_unix thứ hai phải vượt qua.
        • Dưới đây là danh sách các /etc/pam.dtệp tôi phải sửa đổi để làm cho SSSD hoạt động với FreeBSD:

/etc/pam.d/sshd:

#
# $ FreeBSD: releng / 11.0 / etc / pam.d / sshd 197769 2009-10-05 09: 28: 54Z des $
#
Cấu hình # PAM cho dịch vụ "sshd"
#

# xác thực
auth đủ pam_opie.so no_warn no_fake_prompts
authite pam_opieaccess.so no_warn allow_local
#auth đủ pam_krb5.so no_warn try_first_pass
#auth đủ pam_ssh.so no_warn try_first_pass
auth đủ pam_unix.so no_warn try_first_pass nullok
auth đủ pam_sss.so use_first_pass
auth yêu cầu pam_unix.so no_warn use_first_pass

# tài khoản
tài khoản yêu cầu pam_nologin.so
#account yêu cầu pam_krb5.so
yêu cầu tài khoản pam_login_access.so
yêu cầu tài khoản pam_unix.so
tài khoản đủ pam_sss.so

# phiên
#session tùy chọn pam_ssh.so Want_agent
phiên tùy chọn pam_sss.so
phiên yêu cầu pam_mkhomedir.so mode = 0700
phiên yêu cầu pam_permit.so

# mật khẩu
#password đủ pam_krb5.so no_warn try_first_pass
#password đủ pam_unix.so try_first_pass use_authtok nullok
mật khẩu đủ pam_unix.so try_first_pass use_authtok
mật khẩu đủ pam_sss.so use_authtok

/etc/pam.d/system:

#
# $ FreeBSD: releng / 11.0 / etc / pam.d / system 197769 2009-10-05 09: 28: 54Z des $
#
# Mặc định toàn hệ thống
#

# xác thực
auth đủ pam_opie.so no_warn no_fake_prompts
authite pam_opieaccess.so no_warn allow_local
#auth đủ pam_krb5.so no_warn try_first_pass
#auth đủ pam_ssh.so no_warn try_first_pass
#auth bắt buộc pam_unix.so no_warn try_first_pass nullok
auth đủ pam_unix.so no_warn try_first_pass
auth đủ pam_sss.so use_first_pass
auth yêu cầu pam_deny.so

# tài khoản
#account yêu cầu pam_krb5.so
yêu cầu tài khoản pam_login_access.so
yêu cầu tài khoản pam_unix.so
tài khoản đủ pam_sss.so

# phiên
#session tùy chọn pam_ssh.so Want_agent
phiên yêu cầu pam_lastlog.so no_fail
phiên tùy chọn pam_sss.so
phiên yêu cầu pam_mkhomedir.so mode = 0700

# mật khẩu
#password đủ pam_krb5.so no_warn try_first_pass
#password bắt buộc pam_unix.so no_warn try_first_pass
mật khẩu đủ pam_unix.so no_warn try_first_pass nullok use_authtok
mật khẩu đủ pam_sss.so use_authtok
#password yêu cầu pam_deny.so

/etc/pam.d/su:

#
# $ FreeBSD: releng / 11.0 / etc / pam.d / su 219663 2011-03-15 10: 13: 35Z des $
#
Cấu hình # PAM cho dịch vụ "su"
#

# xác thực
auth đủ pam_rootok.so no_warn
auth đủ pam_elf.so no_warn
auth constisite pam_group.so no_warn group = wheel root_only fail_safe ruser
xác thực bao gồm system.dist

# tài khoản
tài khoản bao gồm system.dist

# phiên
phiên yêu cầu pam_permit.so
  • (thụt lề)

    • Ghi chú:
      • system.distlà một bản sao của /etc/pam.d/systemtập tin chứng khoán . Nó được bao gồm trong /etc/pam.d/sutệp ở trên để ngăn chặn các vấn đề với lệnh su.
      • Người ta vẫn có thể truy sucập tài khoản AD dưới dạng root, vì một khi đã root, sukhông cần xác thực và thông tin tài khoản được kéo qua chuyển đổi dịch vụ tên qua SSSD.
      • Nếu bạn thực sự muốn chuyển từ một người dùng (không phải root) sang một người dùng khác, một người nên sử dụng sudovì lý do bảo mật
      • Bạn cũng có thể sử dụng ksuvà hoạt động để chuyển từ người dùng A sang người dùng B
        • Heimdal's ksu(in /usr/bin) không có SUID được đặt theo mặc định
          • Để làm cho Heimdal ksuhoạt động,chmod u+s /usr/bin/ksu
        • MIT Kerberos ( krb5gói được cài đặt trong /usr/local/bin) là SUID khi cài đặt
      • Vì Heimdal là một phần của gói cơ sở, bạn sẽ có cả hai bộ nhị phân Kerberos.
        • Bạn có thể muốn điều chỉnh các đường dẫn mặc định như /usr/local/bintrước đây /usr/bin, v.v.
      • ksu sẽ nhắc người dùng nhập mật khẩu AD / Kerberos của người dùng đích
      • passwdsẽ không hoạt động để thay đổi mật khẩu AD / Kerberos của bạn ngay cả khi bạn thêm pam_sss.sovào tệp PAM passwd. Các passwdnhị phân chỉ hỗ trợ địa phương và NIS sử dụng kpasswdđể thay đổi mật khẩu của bạn trên AD / máy chủ Kerberos (s).
    • Tên dịch vụ chuyển đổi:

      • Tập /etc/nsswitch.conftin nên được cấu hình để sử dụng dịch vụ sss cho passwd và các nhóm. Thí dụ:
        • group: files sss
        • passwd: files sss
    • Tham gia một tên miền:

      • Có hai công cụ chính trên * nix để tham gia hộp linux của bạn
        • adcli
          • Đây là công cụ ưa thích của tôi. Nó hoạt động rất tốt và mọi thứ có thể được thực hiện trên một dòng lệnh. Thông tin có thể được cung cấp không tương tác (thông qua stdin, v.v.)
          • Không yêu cầu thực hiện kinittrước khi sử dụng, nó thực hiện cho bạn dựa trên các khoản tín dụng được cung cấp.
            • Thí dụ:
              • adcli join -D mydomain.net -U Administrator--show-details –v
              • adcli join –H adclient.mydomain.net -D mydomain.net -U Administrator --show-details -v
                • Biểu mẫu này được khuyến nghị vì tiện ích không phải lúc nào cũng tìm ra FQDN chính xác. Khi bạn cung cấp FQDN khớp với cả DNS thuận và ngược cho máy chủ, các nguyên tắc được tạo chính xác. Nếu tiện ích sử dụng tên máy chủ không chính xác (chẳng hạn như tên miền DNS), một số nguyên tắc dịch vụ sẽ không được tạo và những thứ như SSH vào máy chủ có thể thất bại.
        • netTiện ích Samba
          • Các nettiện ích này là một phần của bộ ứng dụng Samba.
          • Tiện ích này yêu cầu các chi tiết tên miền phải được thiết lập trong smb.conftệp cấu hình, điều này gây khó khăn và bất tiện hơn khi sử dụng, đặc biệt là không tương tác.
          • Công cụ này cũng yêu cầu bạn có được vé Kerberos trước khi sử dụng kinit. Một lần nữa, điều này lại bất tiện hơn và khiến việc sử dụng không tương tác trong tập lệnh trở nên khó khăn hơn một chút, vì có hai bước thay vì một.
    • Cân nhắc SSHD:

      • Để SSHD hoạt động với AD và SSSD thường khá đơn giản
      • Các tùy chọn sau đây cần được thêm vào /etc/ssh/sshd_config
        • GSSAPIAuthentication yes
          • Bật xác thực API GSS cho SSHD. Điều này sẽ khiến SSHD tự động chống lại AD KDC
        • PasswordAuthentication yes
          • Cho phép người dùng đăng nhập bằng mật khẩu. Cần thiết nếu bạn muốn người dùng nhận được vé KRB5 khi đăng nhập. Nếu không bật tính năng này, hệ thống không thể giải mã TGT được gửi bởi KDC.
        • ChallengeResponseAuthentication yes
          • Đối với FreeBSD, phương pháp này dường như hoạt động tốt nhất.
            • Hãy chắc chắn rằng bạn cấu hình PasswordAuthentication nokhi sử dụng tùy chọn này.
            • Đây là phương pháp duy nhất tôi tìm thấy cho FreeBSD hoạt động để thay đổi mật khẩu đã hết hạn khi đăng nhập. Nếu bạn sử dụng cái khác, nó sẽ gọi /bin/passwd, không hỗ trợ bất cứ thứ gì ngoài NIS và tệp mật khẩu cục bộ.
        • GSSAPICleanupCredentials yes
          • (tùy chọn) Sẽ thực hiện kdestroykhi đăng xuất
        • GSSAPIStrictAcceptorCheck no
          • (tùy chọn) Tùy chọn này thường được yêu cầu nếu SSHD bị nhầm lẫn về tên máy chủ của chính nó, hoặc đa dạng, v.v., hoặc sử dụng một hiệu trưởng dịch vụ khác để liên lạc với KDC. Thông thường SSHD sẽ sử dụng hiệu trưởng dịch vụ host/<FQDN>@REALMđể nói chuyện với KDC, nhưng đôi khi lại hiểu sai (ví dụ: nếu tên máy chủ không khớp với tên DNS của máy chủ SSH). Tùy chọn này cho phép SSHD sử dụng bất kỳ hiệu trưởng nào trong /etc/krb5.keytabtệp, bao gồm quyềnhost/<FQDN>@REALM
      • Tùy thuộc vào sự kết hợp của các tùy chọn bạn sử dụng, bạn có thể hoặc không cần thêm hiệu trưởng máy chủ vào KDC cho địa chỉ IPv4 và IPv6 của máy chủ ssh -K <ip>để hoạt động mà không cần nhắc mật khẩu (giả sử bạn đã thực hiện 'kinit', tất nhiên).

Tôi hy vọng điều này sẽ giúp mọi người. Điều này về cơ bản được tổng hợp từ các ghi chú của riêng tôi trong khi cố gắng để FBSD10 và 11 hoạt động với SSSD và máy chủ AD. Vấn đề lớn nhất mà tôi gặp phải là các cấu hình PAM, chúng thực sự rất rắc rối và không hoạt động như chúng làm trong linux (lỗi trong openpam?), Và bao bì / phụ thuộc. Hãy bình luận nếu bạn có phương pháp thay thế. Đặc biệt là nếu bạn đã làm cho nó hoạt động với Heimdal Kerberos được xây dựng như Vinícius Ferrão dường như làm trong Câu trả lời của mình. Tôi đã không thử, vì SSSD vẫn khăng khăng kéo gói MIT krb5.
jbgeek

Cập nhật công cụ pam.d. Tôi đã phát hiện ra lý do cho openpam wonkyness và tìm thấy bản sửa lỗi cho nó (sử dụng mô-đun pam_unix hai lần để nó vượt qua bài kiểm tra "ẩn" cần thiết để đăng nhập để thành công).
jbgeek
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.