Bagaimana cara mengintegrasikan Active Directory dengan FreeBSD 10.0 menggunakan security / sssd?

9

Apa langkah-langkah yang diperlukan untuk mengautentikasi pengguna dari Active Directory yang berjalan pada Windows Server 2012 R2 di FreeBSD 10.0 menggunakan sssddengan backend AD dengan Kerberos TGT berfungsi?

Vinícius Ferrão
sumber

Jawaban:

14

Ada beberapa pertimbangan rumit untuk membuat semuanya berjalan di luar kotak. FreeBSD hanya mendukung sssdversi 1.9.6 saat ini. Jadi tidak ada dukungan untuk Nama Pokok Perusahaan.

Jika Anda memiliki domain dengan UPN yang tidak cocok itu akan gagal masuk, karena otentikasi Kerberos akan gagal selama proses, bahkan dengan FreeBSD yang mendukung Nama Pimpinan Perusahaan dengan Kerberos, mereka sssdtidak dapat menangani kasus ini.

Jadi dalam versi aktual sssdAnda terbatas untuk memiliki Nama Pokok Pengguna dalam Nama Domain yang sama, misalnya:

Domain Name = example.com
NetBIOS Name = EXAMPLE
User Principal Name:
[email protected] sAMAccountName: username

Mengetahui hal ini kami dapat menjelaskan langkah-langkah untuk berhasil mengotentikasi pengguna dari AD di FreeBSD.

1. Konfigurasikan Kerberos

Buat file /etc/krb5.confdengan konten berikut:

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

2. Instal Samba 4.1 dan konfigurasikan untuk bergabung dengan Domain

Instal Samba 4.1:

$ pkg install samba41

Buat file /usr/local/etc/smb4.confdengan konten berikut:

[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

Meminta Tiket Administrator Kerberos:

$ kinit Administrator

Kemudian bergabunglah dengan domain dan buat keytab

$ net ads join createupn=host/[email protected] -k
$ net ads keytab create -k

3. Instal paket sssd dan Cyrus SASL dengan dukungan Kerberos

Instal paket yang diperlukan:

$ pkg install sssd cyrus-sasl-gssapi

Edit file /usr/local/etc/sssd/sssd.confuntuk mencocokkan pengaturan ini:

[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 = [email protected]

4. Tambahkan dukungan sssd ke nsswitch.conf

Edit file /etc/nsswitch.confuntuk mencocokkan pengaturan ini:

group: files sss
passwd: files sss

5. Konfigurasikan PAM untuk mengizinkan otentikasi sssd dan menangani pembuatan direktori home

Instal paket opsional untuk pembuatan direktori home:

$ pkg install pam_mkhomedir

Ubah bidang yang diperlukan PAMagar sesuai dengan pengaturan ini:

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. Beralih ke Klien OpenLDAP yang didukung SASL

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

7. Akhirnya konfirmasikan bahwa semuanya berfungsi

$ getent passwd <username>
Vinícius Ferrão
sumber
Apakah Anda memiliki solusi untuk FreeBSD 10.3, di mana menginstal openldap-sasl-client menyebabkan pkg menghapus sssd, ldb, dan samba44? Saya merasa bahwa saya sangat dekat ketika menggunakan jawaban Anda tetapi saya terjebak pada bagian yang satu ini.
bgStack15
2

Kerberos mana yang Anda gunakan di sini? Yang built-in atau keamanan / KRB5 dari MIT?

Ketika menginstal sssd, diperlukan keamanan / krb5 yang diinstal yang saat ini masih dianggap eksperimental di FreeBSD. Demikian pertanyaan ini.

Saya tidak beruntung mendapatkan pengguna / grup AD saat menjalankan perintah 'getent'. mungkin karena fakta bahwa nama NETBIOS berbeda dari nama domain -yaitu dalam kasus saya, nama domain adalah dawnsign.com dan nama NETBIOS adalah DSP.

Saya hanya mengonfigurasi modul login pam.d. Apa modul pam lain yang perlu diedit agar otentikasi yang berhasil terjadi?

Setiap info tambahan akan sangat dihargai!

Doug Sampson
sumber
Saya menggunakan Heimdal Kerberos dari pangkalan. Tidak menginstal port MIT Kerberos.
Vinícius Ferrão
1

Mengkompilasi ulang samba4 dari port dimungkinkan untuk menggunakan autentikasi winbind seperti linux bahkan tanpa sssd. Cukup mengkompilasi ulang samba4 dari port setelah mengaktifkan 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

Ini akan mengkompilasi ulang samba dengan semua dukungan yang diperlukan (gssapi, ldap, kerberos) kemudian edit nsswitch.conf seperti ini

passwd: files winbind
group: files winbind
elbarna
sumber
Mengapa menggunakan winbind dan samba jika kita bisa menggunakan Kerberos asli?
Vinícius Ferrão
Untuk pengguna direktori aktif, kerberos adalah untuk kata sandi dan sso
elbarna
0

Halo,

Ini adalah pembaruan kecil tentang penggunaan sssd v1.11.7

Jika Anda menggunakan "id_provider = iklan" dan Anda melihat kesalahan berikut di sssd logfile:

/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]

Anda dapat menggunakan prosedur berikut untuk menyelesaikan masalah ini dan membuat integrasi AD berfungsi dengan benar. Sekarang membangun sssd v1.11.7 dengan dukungan Samba, membangun dari src sssd diperlukan agar terhubung dengan 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
Syepes
sumber
Apa tujuan menghapus samba41? Apakah hanya bekerja dengan samba36? Saya mengalami masalah persis ini tetapi tidak ingin kembali ke 3.6 jika tidak perlu.
MikeyB
Anda menghapus samba41 biner, lalu mengkompilasi ulang samba41 dari port (diminta oleh sssd). Dalam kasus saya (instalasi baru 10.1) biner samba41 tidak berfungsi, samba41 dikompilasi oleh port berfungsi dengan baik
elbarna
0

Berikut ini panduan saya tentang integrasi AD via SSSD dengan versi FreeBSD ini, pada saat penulisan ini (6/2017)

  • FreeBSD 10.3 dan 11.0 (10.3-RELEASE-p18 & 11.0-RELEASE-p9)
  • Instalasi (dan masalah pengemasan dan ketergantungan yang menyenangkan)

    • Paket-paket yang diperlukan tampaknya tidak kompatibel dengan Heimdal Kerberos, jadi semuanya harus diinstal dan dikompilasi dengan bendera MIT Kerberos diaktifkan. Ini kemungkinan lebih merupakan masalah ketergantungan kemasan daripada masalah kompatibilitas yang sebenarnya.
    • Heimdal diinstal dengan sistem dasar, jadi ini meninggalkan Anda dengan dua set perintah Kerberos jika Anda menginstal MIT Kerberos, satu set di /usr/bin, dan yang lainnya di /usr/local/bin. Karena tidak ada file sistem dasar yang tampak dalam sebuah paket, Anda tidak bisa begitu saja menghapus barang-barang Heimdal KRB. Sesuatu yang harus diperhatikan.
    • Maju dependensi dari berbagai paket (deps yang menarik dicetak tebal, deps yang bertolak-belakang dicetak miring):

      • 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
    • Membalikkan dependensi dari berbagai paket:

      • net/openldap24-sasl-client: sysutils/msktutil
      • net/openldap24-sasl-client: net/nss-pam-ldapd-sasl
      • net/openldap24-sasl-client: net-mgmt/adcli
        • Seperti yang kita lihat sssdsendiri membutuhkan MIT Kerberos, meskipun kita memiliki Heimdal sebagai paket dasar
        • adcliingin openldap-sasl-client, tetapi paket lain (termasuk sub-dependensi sssd) menarik openldap-client, yang mutex dengan klien sasl (untuk alasan konyol apa pun). Ini membuat instalasi sedikit menyakitkan, bahkan dengan paket biner minimum.
        • Ketergantungan ini hadir untuk kedua paket repo biner, dan jika paket dibangun di pohon port. Ini memerlukan metode instalasi tertentu yang mengganggu untuk mendapatkan semua yang kita butuhkan (dibahas di bawah).
    • Pada tulisan ini, pkg biner untuk SSSD untuk FreeBSD tidak termasuk dukungan AD di SSSD

      • Versi port SSSD harus dibangun dengan opsi (make config) yang sesuai diaktifkan:
        • SMB
      • SSSD juga ingin menarik openldap-client, ketika benar-benar membutuhkan openldap-sasl-client untuk berfungsi dengan benar.
    • Versi biner pkg adcliada, tetapi saat tulisan ini dibuat, tidak berfungsi.
      • Sekali lagi, versi port dikompilasi dengan opsi yang benar diaktifkan:
        • GSSAPI_MIT
    • cyrus-sasl-gssapi diperlukan, tetapi versi biner pkg tidak berfungsi, dan memiliki masalah ketergantungan aneh yang menyebabkannya menghapus SSSD.
      • Bangun dari port dengan opsi MIT-KRB5 diaktifkan:
        • GSSAPI_MIT
    • openldap-sasl-client diperlukan untuk fungsionalitas tetapi SSSD ingin menarik versi openldap non SASL.
      • Untuk membuatnya bekerja
        • konfigurasikan openldap-sasl-clientdengan GSSAPIopsi yang dipilih ( make config) di porta.
        • Lakukan port make in untuk membangunnya
        • Sebelum melakukan instalasi, lakukan a pkg remove –f openldap-client
          • Ini akan menghapus openldap-clienttanpa melakukan autoremoves dari paket lain (seperti SSSD) dan memungkinkan pemasangan versi SASL
        • Lakukan instal untuk openldap-sasl-client
          • Ini akan menginstalnya ke sistem
    • Ini akan memberikan apa yang dibutuhkan untuk SSSD fungsional dengan kemampuan AD.
    • Harap dicatat bahwa jika Anda mengkompilasi SSSD dari port, ia akan menarik BANYAK dependensi, yang akan menyebabkannya dibangun, dan memerlukan opsi konfigurasi untuk dipilih.
      • Disarankan agar Anda menginstal paket biner terlebih dahulu dengan pkg install sssd, kemudian hapus dengan pkg remove –f sssd
        • Ini akan menyebabkan paket biner untuk sebagian besar hal yang perlu ditarik SSSD, dan menghapus kebutuhan untuk membangun semua ini tergantung pada port, yang membutuhkan waktu cukup lama.
      • Setelah dihapus, instal ulang SSSD dari port dengan opsi yang disebutkan di atas diaktifkan dan Anda hanya perlu membangun kembali empat paket yang disebutkan di atas untuk mendapatkan pengaturan yang berfungsi.
    • (Opsional) Setelah semuanya berfungsi dan diverifikasi, Anda dapat menggunakan pkg createuntuk membuat paket biner dari empat paket dengan opsi yang tepat diaktifkan dan menggunakannya daripada membangunnya di port pada setiap sistem. Instalasi biner mengikuti pola yang mirip dengan proses pembuatan port:

      • pkg install sssd-1.11.7_8.txz
        • Versi Anda tentu saja berbeda
        • Ini akan menginstal paket biner untuk SSSD dan menarik semua yang diperlukan dari repo FreeBSD.
      • pkg add paket lainnya (tidak menginstal, menambah), menyimpan paket openldap untuk yang terakhir.
      • Sebelum menambahkan, openldap-sasl-clientlakukan apkg remove –f openldap-client
        • Ini menghilangkan versi non-SASL dan memungkinkan versi kami untuk diinstal
      • pkg add openldap-sasl-client-2.4.44.txz
        • Sekali lagi, versi Anda mungkin berbeda
      • Anda harus berakhir dengan paket yang diperlukan diinstal.
      • Ini mungkin menjadi mungkin untuk mengubah metadata untuk biner SSSD sebelum melakukan pkg createuntuk menggantikan ketergantungan pada openldap-clientdengan openldap-sasl-clientmenghapus kebutuhan untuk melakukan hal ini menghapus / instal ulang. Saya belum punya waktu untuk melakukan ini.
        • Plus, ada sub dependensi SSSD yang juga menarik openldap-client, jadi Anda harus memperbaikinya juga.
      • Harap dicatat bahwa semua catatan ini adalah sebagai versi dari paket-paket ini saat ini di pohon port pada tulisan ini , dan dependensi yang telah dikaitkan dengan mereka. Ini semua dapat berubah ketika FreeBSD memperbarui pohon port dan binari. Mungkin suatu hari kita akan memiliki versi biner dari segala sesuatu yang menarik semua dependensi yang tepat dengan opsi yang tepat yang dikonfigurasi untuk fungsi AD langsung dari kotak.
    • Konfigurasi Kerberos:

      • Contoh file /etc/krb5.conf:
[libdefaults]
   default_realm = MYDOMAIN.NET
   forwardable = benar
# Biasanya semua yang Anda butuhkan dalam lingkungan AD, karena DNS SRV mencatat
# akan mengidentifikasi server / layanan AD / KRB. Beri komentar jika Anda
# ingin secara manual menunjuk ke server AD Anda
dns_lookup_kdc = true
[ranah]
   MYDOMAIN.NET = {
# Jika Anda secara manual menunjuk ke server AD yang berbeda dari yang ada di DNS
# admin_server = adserver.mydomain.net
# kdc = adserver.mydomain.net
   }
[domain_realm]
   mydomain.net = MYDOMAIN.NET
   .mydomain.net = MYDOMAIN.NET
  • (indentasi)
    • Konfigurasi SSSD:
      • Contoh ini mengasumsikan atribut POSIX dalam AD untuk pengguna dan grup, umumnya diperlukan ketika seseorang mengganti lingkungan yang sudah ada yang telah membentuk UID dan GID.
      • Contoh file /usr/local/etc/sssd/sssd.conf:
[sssd]
config_file_version = 2
domains = MYDOMAIN.NET
layanan = nss, pam, pac
fallback_homedir = / home /% u

[domain / MYDOMAIN.NET]
id_provider = iklan
access_provider = iklan
auth_provider = iklan
chpass_provider = iklan
# gunakan atribut AD POSIX, beri komentar jika Anda menggunakan yang dibuat secara otomatis
# UID dan GID.
ldap_id_mapping = Salah
cache_credentials = true
ad_server = adserver.mydomain.net
# jika Anda tidak memiliki bash, atau apa pun yang ada di loginShell akun AD
atribut # diinstal
override_shell = / bin / tcsh
  • (indentasi)
    • Konfigurasi PAM:
      • Konfigurasi PAM pada FreeBSD agak rumit karena cara OpenPAM bekerja. Saya tidak akan masuk ke rincian, tetapi untuk menggunakan pam_sss untuk SSSD dan membuatnya bekerja, dan juga memiliki passwd login berfungsi, Anda harus memasukkan pam_unix dalam file dua kali. Dari apa yang saya mengerti, ini ada hubungannya dengan pemeriksaan sekunder yang dilakukan "di belakang layar" yang mengharuskan modul pam_unix kedua untuk lulus.
        • Ini daftar /etc/pam.dfile yang harus saya modifikasi agar SSSD berfungsi dengan FreeBSD:

/etc/pam.d/sshd:

#
# $ FreeBSD: releng / 11.0 / etc / pam.d / sshd 197769 2009-10-05 09: 28: 54Z des $
#
# Konfigurasi PAM untuk layanan "sshd"
#

# auth
auth cukup pam_opie.so no_warn no_fake_prompts
auth diperlukan pam_opieaccess.so no_warn allow_local
#auth cukup pam_krb5.jadi no_warn coba_first_pass
#auth cukup pam_ssh.so no_warn try_first_pass
auth cukup pam_unix.so no_warn try_first_pass nullok
auth cukup pam_sss.so use_first_pass
auth diperlukan pam_unix.jadi no_warn use_first_pass

# Akun
akun diperlukan pam_nologin.so
#account diperlukan pam_krb5.so
akun diperlukan pam_login_access.so
akun diperlukan pam_unix.so
cukup akun pam_sss.so

# sesi
#session opsional pam_ssh.so want_agent
sesi pam_sss.so opsional
diperlukan sesi mode pam_mkhomedir.so = 0700
sesi diperlukan pam_permit.so

# kata sandi
#password pam_krb5.so no_warn try_first_pass yang memadai
#password, cukup pam_unix.so try_first_pass use_authtok nullok
kata sandi cukup pam_unix.so try_first_pass use_authtok
kata sandi cukup 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 $
#
# Default seluruh sistem
#

# auth
auth cukup pam_opie.so no_warn no_fake_prompts
auth diperlukan pam_opieaccess.so no_warn allow_local
#auth cukup pam_krb5.jadi no_warn coba_first_pass
#auth cukup pam_ssh.so no_warn try_first_pass
#auth diperlukan pam_unix.so no_warn try_first_pass nullok
auth cukup pam_unix.so no_warn try_first_pass
auth cukup pam_sss.so use_first_pass
auth diperlukan pam_deny.so

# Akun
#account diperlukan pam_krb5.so
akun diperlukan pam_login_access.so
akun diperlukan pam_unix.so
cukup akun pam_sss.so

# sesi
#session opsional pam_ssh.so want_agent
sesi diperlukan pam_lastlog.so no_fail
sesi pam_sss.so opsional
diperlukan sesi mode pam_mkhomedir.so = 0700

# kata sandi
#password pam_krb5.so no_warn try_first_pass yang memadai
#password diperlukan pam_unix.so no_warn try_first_pass
kata sandi yang memadai pam_unix.so no_warn try_first_pass nullok use_authtok
kata sandi cukup pam_sss.so use_authtok
#password diperlukan pam_deny.so

/etc/pam.d/su:

#
# $ FreeBSD: releng / 11.0 / etc / pam.d / su 219663 2011-03-15 10: 13: 35Z des $
#
# Konfigurasi PAM untuk layanan "su"
#

# auth
auth cukup pam_rootok.so no_warn
auth cukup pam_self.so no_warn
auth diperlukan pam_group.so no_warn group = wheel root_only fail_safe ruser
auth menyertakan system.dist

# Akun
akun termasuk system.dist

# sesi
sesi diperlukan pam_permit.so
  • (indentasi)

    • Catatan:
      • system.distadalah salinan dari /etc/pam.d/systemfile stok . Itu termasuk dalam /etc/pam.d/sufile di atas untuk mencegah masalah dengan perintah su.
      • Satu masih dapat ke suakun AD sebagai root, karena sekali root, sutidak perlu mengotentikasi dan info akun ditarik melalui saklar layanan nama melalui SSSD.
      • Jika Anda benar-benar ingin beralih dari satu pengguna (bukan root) ke pengguna lain, Anda harus menggunakan sudoalasan keamanan saja
      • Anda juga dapat menggunakan ksudan itu berfungsi untuk beralih dari pengguna A ke pengguna B
        • ksu(Dalam /usr/bin) Heimdal tidak memiliki SUID yang diatur secara default
          • Untuk membuat Heimdal ksubekerja,chmod u+s /usr/bin/ksu
        • MIT Kerberos ( krb5paket terpasang di /usr/local/bin) SUID saat diinstal
      • Karena Heimdal adalah bagian dari paket dasar, Anda akan memiliki kedua set biner Kerberos.
        • Anda mungkin ingin menyesuaikan jalur default seperti /usr/local/binsebelumnya /usr/bin, dll
      • ksu akan meminta pengguna untuk kata sandi AD / Kerberos dari pengguna target
      • passwdtidak akan bekerja untuk mengubah kata sandi AD / Kerberos Anda bahkan jika Anda menambah pam_sss.sofile PAM passwd. The passwdbiner hanya mendukung lokal dan NIS Gunakan kpasswduntuk mengubah password Anda pada AD / Kerberos server (s).
    • Ganti Nama Layanan:

      • The /etc/nsswitch.conffile harus dikonfigurasi untuk menggunakan layanan sss untuk passwd dan kelompok. Contoh:
        • group: files sss
        • passwd: files sss
    • Bergabung dengan Domain:

      • Ada dua alat utama pada * nixs untuk bergabung dengan kotak linux Anda
        • adcli
          • Ini adalah alat pilihan saya. Ini bekerja dengan sangat baik dan semuanya dapat dilakukan pada satu baris perintah. Kredensial dapat diberikan secara non-interaktif (via stdin, dll)
          • Tidak perlu melakukan kinitsebelum menggunakan, itu melakukannya untuk Anda berdasarkan kredit yang diberikan.
            • Contoh:
              • adcli join -D mydomain.net -U Administrator--show-details –v
              • adcli join –H adclient.mydomain.net -D mydomain.net -U Administrator --show-details -v
                • Formulir ini direkomendasikan karena utilitas tidak selalu mengetahui FQDN dengan benar. Ketika Anda memberikan FQDN yang cocok dengan maju dan mundur DNS untuk tuan rumah, prinsip-prinsip dibuat dengan benar. Jika utilitas menggunakan nama host yang salah (tidak termasuk domain DNS, misalnya), beberapa prinsip layanan tidak akan dibuat, dan hal-hal seperti SSH ke host mungkin gagal.
        • netUtilitas Samba
          • The netutilitas merupakan bagian dari Samba suite.
          • Utilitas ini memerlukan perincian domain yang harus diatur dalam smb.conffile konfigurasi, yang membuatnya lebih sulit dan tidak nyaman untuk digunakan, terutama yang non-interaktif.
          • Alat ini juga mengharuskan Anda mendapatkan tiket Kerberos sebelum menggunakannya dengan menggunakan kinit. Sekali lagi, ini lebih tidak nyaman, dan membuatnya sedikit lebih sulit untuk digunakan secara non-interaktif dalam sebuah skrip, karena ada dua langkah daripada satu.
    • Pertimbangan SSHD:

      • Membuat SSHD berfungsi dengan AD dan SSSD biasanya cukup sederhana
      • Opsi-opsi berikut perlu ditambahkan /etc/ssh/sshd_config
        • GSSAPIAuthentication yes
          • Aktifkan GSS API auth untuk SSHD. Ini akan menyebabkan SSHD auth terhadap AD KDC
        • PasswordAuthentication yes
          • Izinkan pengguna untuk masuk dengan kata sandi. Diperlukan jika Anda ingin pengguna mendapatkan tiket KRB5 saat masuk. Tanpa ini diaktifkan, sistem tidak dapat mendekripsi TGT yang dikirim oleh KDC.
        • ChallengeResponseAuthentication yes
          • Untuk FreeBSD, metode ini tampaknya berfungsi paling baik.
            • Pastikan Anda mengonfigurasi PasswordAuthentication nosaat menggunakan opsi ini.
            • Ini adalah satu-satunya metode yang saya temukan untuk FreeBSD yang berfungsi untuk mengubah kata sandi yang kadaluwarsa saat login. Jika Anda menggunakan yang lain, itu panggilan /bin/passwd, yang tidak mendukung apa pun kecuali NIS dan file passwd lokal.
        • GSSAPICleanupCredentials yes
          • (opsional) Akan melakukan kdestroysaat logout
        • GSSAPIStrictAcceptorCheck no
          • (opsional) Opsi ini sering diperlukan jika SSHD bingung tentang nama hostnya sendiri, atau multihomed, dll, atau menggunakan prinsip layanan yang berbeda untuk berkomunikasi dengan KDC. Biasanya SSHD akan menggunakan kepala layanan host/<FQDN>@REALMuntuk berbicara dengan KDC, tetapi kadang-kadang salah (misalnya, jika nama host tidak cocok dengan nama DNS dari server SSH). Opsi ini memungkinkan SSHD untuk menggunakan prinsipal apa pun dalam /etc/krb5.keytabfile, termasuk yang benarhost/<FQDN>@REALM
      • Bergantung pada kombinasi opsi yang Anda gunakan, Anda mungkin atau mungkin tidak perlu menambahkan prinsip-prinsip host ke KDC untuk alamat IPv4 dan IPv6 dari host Anda ssh -K <ip>agar berfungsi tanpa meminta kata sandi (anggap Anda sudah melakukan 'kinit', tentu saja).
jbgeek
sumber
Saya harap ini membantu orang. Ini pada dasarnya dikompilasi dari catatan saya sendiri ketika mencoba untuk membuat FBSD10 dan 11 bekerja dengan SSSD dan server AD. Masalah terbesar yang saya temui adalah konfigurasi PAM, yang benar-benar miring dan tidak berfungsi seperti yang mereka lakukan di linux (bug di openpam?), Dan pengemasan / dependensi. Jangan ragu untuk berkomentar jika Anda memiliki metode alternatif. Terutama jika Anda membuatnya bekerja dengan yang dibangun di Heimdal Kerberos seperti Vinícius Ferrão tampaknya lakukan dalam Jawabannya. Saya tidak mencoba, karena SSSD bersikeras menarik paket MIT krb5.
jbgeek
Barang pam.d yang diperbarui. Saya menemukan alasan untuk winpam openpam dan menemukan perbaikan untuk itu (menggunakan modul pam_unix dua kali sehingga melewati tes "tersembunyi" yang diperlukan untuk login agar berhasil).
jbgeek