据我所知,有 3 种 (常见) 方法可以使用 Active Directory 作为 Linux 主机的身份验证和授权:
- LDAP
- 凯尔伯罗斯
- 桑巴/Winbind
关于哪种方法是最佳实践,目前是否存在共识?
我从来没有完全清楚每种方法的优点/缺点,但每个文档/教程都说了不同的方法,而且其中很多都没有日期或解释为什么他们使用特定的方法。
答案1
我现在使用的方法是固态存储系统。它非常轻松,配置文件也很干净。SSSD 可以在安装时启用,也可以通过命令authconfig
UI 运行。我最近将大约 200 台 Linux 服务器从本地身份验证转换为 SSSD,并使用了以下步骤。
这假设一个类似 Red Hat 的系统 (RHEL、CentOS、Fedora)...
1)下载SSSD。
yum install sssd
2).修改系统的authconfig设置。
authconfig --enablesssd --ldapserver=ldap://dc1.mdmarra.local --ldapbasedn="dc=mdmarra,dc=local" --enablerfc2307bis --enablesssdauth --krb5kdc=dc1.mdmarra.local --krb5realm=MDMARRA.LOCAL --disableforcelegacy --enablelocauthorize --enablemkhomedir --updateall
3). 更新/etc/sssd/sssd.conf配置文件内容如下:
# sssd.conf
[domain/default]
ldap_id_use_start_tls = False
ldap_schema = rfc2307bis
ldap_search_base = dc=mdmarra,dc=local
krb5_realm = MDMARRA.LOCAL
krb5_server = dc1.mdmarra.local
id_provider = ldap
auth_provider = krb5
chpass_provider = krb5
ldap_uri = ldap://dc1.mdmarra.local,ldap://dc2.mdmarra.local
krb5_kpasswd = dc1.mdmarra.local,dc2.mdmarra.local
krb5_kdcip = dc1.mdmarra.local,dc2.mdmarra.local
cache_credentials = True
ldap_tls_cacertdir = /etc/openldap/cacerts
ldap_force_upper_case_realm = True
ldap_user_object_class = person
ldap_group_object_class = group
ldap_user_gecos = displayName
ldap_user_home_directory = unixHomeDirectory
ldap_default_bind_dn = [email protected]
ldap_default_authtok_type = password
ldap_default_authtok = fdfXb52Ghk3F
[sssd]
services = nss, pam
config_file_version = 2
domains = default
[nss]
filter_users = root,ldap,named,avahi,haldaemon,dbus,radiusd,news,nscd
[pam]
[sudo]
[autofs]
[ssh]