zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    数学基础详解 1——微积分
    logistic回归梯度上升优化算法
    决策树
    西瓜书学习笔记(1)——模型评估与选择
    关于map与set的一点理解;
    STL中的set容器的一点总结(转)
    HDOJ 题目分类
    Train Problem I(栈)
    猜数字(规律)
    Change the ball(找规律)
  • 原文地址:https://www.cnblogs.com/zcyy/p/15695474.html
Copyright © 2011-2022 走看看