在理解了OpenLDAP代理的配置之后,现在该解释OpenLDAP代理的安装以及如何运行它了。在这篇文章中,我们将介绍如何在本地和使用docker安装OpenLDAP代理。
本地安装
安装非常简单,需要安装一些软件包,包括ldap服务器、ldap客户端和一些实用程序。以下步骤适用于CentOS,其他平台的说明应该类似,只是软件包名称和软件包位置略有不同。
- 安装openldap openldap-clients openldap-servers
yum install openldap openldap-clients openldap-servers - 如果不存在,则创建/etc/openldap/slapd.conf。
- 更新/etc/openldap/slapd.conf并添加LDAP条目(查看之前的文章了解配置)
- 删除当前的/etc/openldap/slapd.d/内容
rm -rf /etc/openldap/slapd.d/* - 重新生成配置
slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/ - 将配置目录的所有者更改为ldap。对于Ubuntu,它是openldap。
chown -R ldap:ldap /etc/openldap/slapd.d - 重启slapd服务
/etc/init.d/slapd restart
这应该会启动具有所需配置的OpenLDAP代理。如果您不想使用LDIF样式的配置,可以在更新/etc/ldap/slapd.conf文件后删除/etc/ldap/slapd.d文件夹。
Docker设置
Docker已成为托管特定用途的单个服务的流行方法。OpenLDAP代理非常适合此模型。因此,我们还将介绍使用Docker和docker-compose设置OpenLDAP代理的方法。如果您不了解这些实用程序,请先阅读一些在线资源。
设置OpenLDAP代理的步骤如下:
- 创建一个名为openldap_proxy的目录,您可以选择任何名称。然后进入openldap_proxy目录。
- 创建一个Dockerfile并放入以下内容(这只是一个示例)
# 从授权来源拉取基础镜像 FROM centos:7 # 安装LDAP代理服务器所需的软件包 RUN yum install openldap openldap-clients openldap-servers -y # 创建必要的目录 RUN mkdir -p /root/openldap_proxy && \ mkdir -p /root/openldap_proxy/tmp && \ mkdir -p /root/openldap_proxy/data && \ mkdir -p /root/openldap_proxy/data/certs # 删除不需要的目录 RUN rm -rf /etc/openldap/slapd.d # 将文件复制到容器 COPY ./start.sh /root/openldap_proxy/start.sh COPY ./slapd.conf /etc/openldap/slapd.conf # 添加执行权限 RUN chmod 755 /root RUN chmod +x /root/openldap_proxy/start.sh # 入口点 ENTRYPOINT ["/root/openldap_proxy/start.sh"]
- 保存Dockerfile
- 将slapd.conf文件放入openldap_proxy目录,并在openldap_proxy中创建一个名为start.sh的文件
- 在start.sh中,放入以下内容
#!/bin/bash TOPDIR=$(dirname $0) cd $TOPDIR && TOPDIR=$PWD # 如果不存在,则生成证书 DESTDIR="$TOPDIR/data/certs" APP_FQDN=$(hostname -f) [[ -d $DESTDIR ]] || mkdir -p $DESTDIR APP_GEN_CERT='openssl req -x509 -nodes -days 365 -newkey rsa:2048' APP_GEN_CERT="$APP_GEN_CERT -keyout $DESTDIR/ldap.key -out $DESTDIR/ldap.crt" APP_GEN_CERT="$APP_GEN_CERT -subj '/CN=$APP_FQDN/OU=TestOU/O=Organization/L=Location/ST=State/C=Country'" APP_GEN_CERT="[[ -f $DESTDIR/ldap.crt ]] || $APP_GEN_CERT" eval $APP_GEN_CERT # 运行docker-compose命令 exec "$@"
- start.sh是Docker容器的入口点,它将被复制到容器并在docker容器启动时运行。该脚本将首先生成一个证书,如果代理服务SSL请求,则将使用该证书,然后它将处理传递给start.sh的命令的执行,该命令将是稍后创建的docker-compose.yml中的command选项
- 创建一个名为my_openldap_proxy的docker镜像。
docker build -t my_openldap_proxy . - 接下来,移出openpldap_proxy目录一级 (cd ../)
- 创建一个包含以下内容的docker-compose.yml文件
my_openldap_proxy: image: my_openldap_proxy:latest container_name: my_openldap_proxy ports: - '389:389' - "636:636" volumes: - shared_data:/root/openldap_proxy/data command: bash -l -c "cd /root/openldap_proxy && /usr/sbin/slapd -h 'ldap:/// ldapi:/// ldaps:///' -g ldap -u ldap -d 2"
- 保存它,然后运行docker-compose up -d命令。如果容器不存在,此命令将构建容器并以分离模式启动它。
非常简单的安装步骤。如果您想在配置中添加启用SSL的远程LDAP服务器,还有一些其他设置,我们将在以后的文章中介绍。敬请关注。