ad2openldap 是一个轻量级的 Active Directory 到 Openldap 复制器,有助于替换 IAM 解决方案,例如 Centrify
项目描述
为什么选择 ad2openldap ?
ad2openldap 是一个轻量级的复制器,用于将 Microsoft Active Directory 中的用户、组和网络组信息复制到 OpenLDAP 服务器中,用作 Unix IDMAP 解决方案。最初的版本是 Fred Hutch 于 2010 年开发的,目的是克服与 Active Directory 的缓慢且不可靠的 Linux LDAP 连接所带来的挫败感,并将表现不佳的 HPC 脚本(“叉子炸弹”)与关键的 AD 基础设施隔离开来。
2018 年及以后的 ad2openldap
2017 年,我们观察到较新的解决方案在复杂性(SSSD、Centrify)方面有所增加,但在性能和可靠性(SSSD)方面无法与 ad2openldap 匹敌。随着我们将更多服务迁移到云,我们将继续受益于提供低延迟 ldap 服务的 LDAP 缓存/副本,并且 ad2openldap 仍然是本地以及 AWS 和 Google 云中超过 2000 个服务器/计算节点上的关键基础设施。我们决定将该工具移植到 Python3,通过 pip3 添加一个简单的安装程序并在较新的操作系统上对其进行测试。我们希望它对其他人和我们一样有用。
安装
Ubuntu
在 Ubuntu 上,系统将提示您输入新的 LDAP 管理员密码。请记住这个密码。
sudo apt install -y python3-pip slapd sudo pip3 install ad2openldap
RHEL/CentOS 6(2018 年未经测试)
sudo yum -y install epel-release sudo yum -y install python34 python34-setuptools python34-devel gcc slapd sudo easy_install-3.4 pip sudo pip3 install ad2openldap
RHEL/CentOS 7(2018 年未经测试)
sudo yum -y install python?? sudo pip3 install ad2openldap
配置
/etc/ad2openldap/ad2openldap.conf 需要以下最低设置:
# openldap adimistrator password (you set this during installation) bind_dn_password: ChangeThisLocalAdminPassword12345 # AD service account (userPrincipalName aka UPN) ad_account: ldap@example.com # password for AD service account ad_account_password: ChangeThisPassword # AD LDAP URL of one of your domain controllers ad_url: ldap://dc.example.com # The base DN to use from Active Directory, under which objects are retrieved. ad_base_dn: dc=example,dc=com
执行设置脚本并在提示时输入项目
ad2openlap3 setup
然后在运行 ca 的文件 /etc/cron.d/ad2openldap 中创建一个 cronjob。每 15 分钟
SHELL=/bin/bash MAILTO=alertemail@institute.org */15 * * * * root /usr/local/bin/ad2openldap3 deltasync --dont-blame-ad2openldap -v >>/var/log/ad2openldap/ad2openldap.log 2>&1 ; /usr/local/bin/ad2openldap3 healthcheck -N username
强烈建议将 slapd 的默认打开文件限制至少提高到 8192
echo “ulimit -n 8192” >> /etc/default/slapd (or /etc/defaults/slapd depending on distribution)
故障排除
使用 –verbose 标志记录到 STDOUT/STDERR。
AD 转储和差异默认位于 /tmp 中:
ad_export.ldif - current dump ad_export.ldif.0 - last dump ad_export_delta.diff - computed differences between these files
可能的故障模式有:
LDAP 服务器故障 - 需要重新启动,如果损坏或不完整,可能会强制完全更新
防火墙块仍然未正确激活 - 查看更新脚本以了解删除语法(鉴于当前进程,此故障不太可能发生)
不良或冲突的 AD 实体 - 强制完整更新应该可以解决此问题
如果无法使用命令行参数“–fullsync”进行增量更新或绕过增量更新,则会发生完整更新。
完整更新:
从 AD 转储组、用户和 NIS 组实体
通过防火墙锁定对 LDAP 服务器的远程访问
关闭 LDAP 服务器
使用 LDIF 模板写入一个新的空白数据库
直接将 AD 转储导入数据库
重新启动 LDAP 服务器
删除 LDAP 服务器上的防火墙块
项目详情
ad2openldap -1.0.2.tar.gz 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | a202e236d1504649f3017f5d9a3adb68e509a79c733fba12080e0b1ea1dab3db |
|
| MD5 | 9ce5db4633b6a8514c21ab1d92ab835e |
|
| 布莱克2-256 | 325c5a095d11c401d86b8a0b2f6caae60c125cd97d4c3c6c6b6d94f64356deb2 |