linux之SSSD


來自ubuntu官網,比網上雜七雜八互抄的來的好。鏈接https://ubuntu.com/server/docs/service-sssd或者前往SSSD開發者的官網https://sssd.io/docs/introduction.html查看

SSSD

SSSD代表SystemSecurityServicesDaemon,它實際上是一組守護進程,用於處理來自各種網絡源的身份驗證、授權以及用戶和組信息。它的核心是支持:

 

SSSD提供PAM和NSS模塊來將這些遠程源集成到您的系統中,並允許遠程用戶登錄並被識別為有效用戶,包括組成員。為了允許斷開連接的操作,SSSD還可以緩存這些信息,以便用戶可以在發生網絡故障或其他同類問題時繼續登錄。

本指南將重點介紹部署SSSD的最常見場景。

SSSD和ActiveDirectory

本節描述使用sssd通過使用sssd的“ad”提供程序來驗證針對ActiveDirectory的用戶登錄。最后,Active Directory用戶將能夠使用他們的AD憑據登錄到主機上。還將保持小組成員資格。

先決條件、假設和要求

  • 本指南不解釋Active Directory、它是如何工作的、如何設置ActiveDirectory或如何維護它。

  • 本指南假設已經配置了工作ActiveDirectory域,並且您可以訪問憑據將計算機連接到該域。

  • 域控制器充當域的權威DNS服務器。

  • 域控制器是主要的dns解析器(請使用systemd-resolve --status)

  • 系統時間是正確的,並且是同步的,通過這樣的服務來維護編年史NTP

  • 本例中使用的域是ad1.example.com .

軟件安裝

安裝下列軟件包:

sudo apt install sssd-ad sssd-tools realmd adcli

加入域

我們將使用realm命令,從realmd包,以加入域並創建sssd配置。

讓我們驗證通過DNS可以發現域:

$ sudo realm -v discover ad1.example.com
 * Resolving: _ldap._tcp.ad1.example.com
 * Performing LDAP DSE lookup on: 10.51.0.5
 * Successfully discovered: ad1.example.com
ad1.example.com
  type: kerberos
  realm-name: AD1.EXAMPLE.COM
  domain-name: ad1.example.com
  configured: no
  server-software: active-directory
  client-software: sssd
  required-package: sssd-tools
  required-package: sssd
  required-package: libnss-sss
  required-package: libpam-sss
  required-package: adcli
  required-package: samba-common-bin

這將執行幾個檢查,並確定與sssd一起使用的最佳軟件堆棧。Sssd可以通過包裝袋,但我們以前已經安裝過了。

現在讓我們加入域:

$ sudo realm join ad1.example.com
Password for Administrator: 

那是相當平淡無奇的。如果您想看看它在做什么,請通過-v備選方案:

$ sudo realm join -v ad1.example.com
 * Resolving: _ldap._tcp.ad1.example.com
 * Performing LDAP DSE lookup on: 10.51.0.5
 * Successfully discovered: ad1.example.com
Password for Administrator: 
 * Unconditionally checking packages
 * Resolving required packages
 * LANG=C /usr/sbin/adcli join --verbose --domain ad1.example.com --domain-realm AD1.EXAMPLE.COM --domain-controller 10.51.0.5 --login-type user --login-user Administrator --stdin-password
 * Using domain name: ad1.example.com
 * Calculated computer account name from fqdn: AD-CLIENT
 * Using domain realm: ad1.example.com
 * Sending NetLogon ping to domain controller: 10.51.0.5
 * Received NetLogon info from: SERVER1.ad1.example.com
 * Wrote out krb5.conf snippet to /var/cache/realmd/adcli-krb5-hUfTUg/krb5.d/adcli-krb5-conf-hv2kzi
 * Authenticated as user: Administrator@AD1.EXAMPLE.COM
 * Looked up short domain name: AD1
 * Looked up domain SID: S-1-5-21-2660147319-831819607-3409034899
 * Using fully qualified name: ad-client.ad1.example.com
 * Using domain name: ad1.example.com
 * Using computer account name: AD-CLIENT
 * Using domain realm: ad1.example.com
 * Calculated computer account name from fqdn: AD-CLIENT
 * Generated 120 character computer password
 * Using keytab: FILE:/etc/krb5.keytab
 * Found computer account for AD-CLIENT$ at: CN=AD-CLIENT,CN=Computers,DC=ad1,DC=example,DC=com
 * Sending NetLogon ping to domain controller: 10.51.0.5
 * Received NetLogon info from: SERVER1.ad1.example.com
 * Set computer password
 * Retrieved kvno '3' for computer account in directory: CN=AD-CLIENT,CN=Computers,DC=ad1,DC=example,DC=com
 * Checking RestrictedKrbHost/ad-client.ad1.example.com
 *    Added RestrictedKrbHost/ad-client.ad1.example.com
 * Checking RestrictedKrbHost/AD-CLIENT
 *    Added RestrictedKrbHost/AD-CLIENT
 * Checking host/ad-client.ad1.example.com
 *    Added host/ad-client.ad1.example.com
 * Checking host/AD-CLIENT
 *    Added host/AD-CLIENT
 * Discovered which keytab salt to use
 * Added the entries to the keytab: AD-CLIENT$@AD1.EXAMPLE.COM: FILE:/etc/krb5.keytab
 * Added the entries to the keytab: host/AD-CLIENT@AD1.EXAMPLE.COM: FILE:/etc/krb5.keytab
 * Added the entries to the keytab: host/ad-client.ad1.example.com@AD1.EXAMPLE.COM: FILE:/etc/krb5.keytab
 * Added the entries to the keytab: RestrictedKrbHost/AD-CLIENT@AD1.EXAMPLE.COM: FILE:/etc/krb5.keytab
 * Added the entries to the keytab: RestrictedKrbHost/ad-client.ad1.example.com@AD1.EXAMPLE.COM: FILE:/etc/krb5.keytab
 * /usr/sbin/update-rc.d sssd enable
 * /usr/sbin/service sssd restart
 * Successfully enrolled machine in realm

默認情況下,境界將使用管理員請求連接的域帳戶。如果您需要使用另一個帳戶,請將其傳遞給工具。-U選擇。

另一種常用的加入域的方法是使用OTP,或一次密碼、令牌。為此,請使用--one-time-password選擇。

SSSD配置

這個境界工具已經負責創建sssd配置,添加PAM和NSS模塊,並啟動必要的服務。

讓我們看看/etc/sssd/sssd.conf:

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

[domain/ad1.example.com]
default_shell = /bin/bash
krb5_store_password_if_offline = True
cache_credentials = True
krb5_realm = AD1.EXAMPLE.COM
realmd_tags = manages-system joined-with-adcli 
id_provider = ad
fallback_homedir = /home/%u@%d
ad_domain = ad1.example.com
use_fully_qualified_names = True
ldap_id_mapping = True
access_provider = ad

需要記住的是,該文件必須具有權限。0600和所有權根:根否則SSD就不會啟動了!

讓我們強調一下這個配置中的一些內容:

  • 緩存憑證:這允許在無法訪問AD服務器時登錄。
  • 主目錄:默認情況下/home/<user>@<domain>。例如,AD用戶約翰的主目錄/home/john@ad1.example.com
  • 使用完全限定的名稱*用戶將采用表格用戶@域,而不僅僅是用戶。只有當您確定沒有其他域將通過幾種可能的信任關系中的一種加入AD林時,才應更改此值。

自動主目錄創建

這是什么realm工具沒有為我們做的是設置pam_mkhomedir,以便網絡用戶在登錄時可以獲得主目錄。其余的步驟可以通過運行以下命令來完成:

sudo pam-auth-update --enable mkhomedir

更多內容訪問https://ubuntu.com/server/docs/service-sssd


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM