LDAP服务器部署(openldap、nginx、LAM)

📅 发布时间:2026/7/13 4:59:26 👁️ 浏览次数:
LDAP服务器部署(openldap、nginx、LAM)
1 部署环境OpenEuler-24.03-LTS-SP1离线环境部署了本地软件源系统光盘。已搭建DNS服务器并添加A记录:lam.dong.net2 安装软件并启动服务dnf install openldap openldap-clients systemctl start slapd systemctl status slapd systemctl enable slapd3 初始配置3.1 设置管理员密码slappasswd -s 123456生成{SSHA}……需要复制。3.2 修改配置openldap默认有{0}config、{1}monitor、{2}mdb、{-1}frontend等4个数据库其中0号数据库为动态运行配置1号数据库为系统核心配置2号数据库存储组织价格和用户信息-1号数据库用于前端命令交互和管理。其中主要配置集中在-1号数据库的权限配置、2号数据库的域名配置、1号数据库的域名配置等。其中{0} 代表第一个被加载{1} 代表 第二个被加载{2} 代表 第三个被加载……{-1} 代表最后一个被加载新版本openldap不提倡直接编辑配置文件方式进行初始化建议统一使用ldap命令开局。3.2.1 查看数据库ldapsearch -Y EXTERNAL -H ldapi:/// -b cnconfig olcDatabase{2}mdb显示如下查询其他数据库配置只需修改最后的数据库名称dn: olcDatabase{2}mdb,cnconfigobjectClass: olcDatabaseConfigobjectClass: olcMdbConfigolcDatabase: {2}MdbolcDbDirectory: /var/lib/ldapolcSuffix: dcmy-domain,dccomolcRootDN: cnManager,dcmy-domain,dccom……3.2.2 新建初始化ldif文件依次修改以下内容{2}mdb修改olcSuffix、olcRootDN项添加olcRootPW项。{1}monitor修改olcAccess项。{-1}frontend添加olcAccess新建ldif配置文件#新建目录 mkdir /etc/openldap/modify #新建3个ldif文件 touch /etc/openldap/modify/start{0..2}.ldif #依次写入初始化配置 vi /etc/openldap/modify/start0.ldif依次在start0.ldif、start1.ldif、start2.ldif写入以下内容注意必须严格检查格式不要混入中文字符行尾不要有空格全文不要有空行否则会报错#start0.ldifdn: olcDatabase{2}mdb,cnconfigchangetype: modifyreplace: olcSuffixolcSuffix: dcdong,dcnet-replace: olcRootDNolcRootDN: cnManager,dcdong,dcnet-add: olcRootPWolcRootPW: {SSHA}……-replace: olcAccessolcAccess: {0}to attrsuserPassword by anonymous autholcAccess: {1}to dn.subtreedcdong,dcnet by dn.exactuidqueryuser,ouPeople,dcdong,dcnet readolcAccess: {2}to * by self writeolcAccess: {3}to * by dn.exactcnroot,cnpeercred,cnexternal,cnauth manageolcAccess: {4}to * by * none#start1.ldifdn: olcDatabase{1}monitor,cnconfigchangetype: modifyreplace: olcAccessolcAccess: to *by dn.exactcnroot,cnpeercred,cnexternal,cnauth readby dn.basecnManager,dcdong,dcnet readby * none#start2.ldifdn: olcDatabase{-1}frontend,cnconfigchangetype: modifyreplace: olcAccessolcAccess: {0}to dn.base by * readolcAccess: {1}to dn.basecnSubschema by * readolcAccess: {2}to attrsuserPassword by anonymous autholcAccess: {3}to * by self writeolcAccess: {4}to * by dn.exactcnroot,cnpeercred,cnexternal,cnauth manageolcAccess: {5}to * by * nonechangetype有4种类型modify为编辑属性、add为新增条目、delete为删除条目、modrdn为重命名或移动条目。modify又分3种类型replace为替换、add为新增、delete为删除。olcAccess对数据库访问权限进行限制to attrsuserPassword 针对userPassword属性by self write 允许用户自己修改密码by anonymous auth 允许匿名用户进行认证by users none 拒绝普通用户查看密码to * 针对所有属性by * read 允许所有用户读取3.2.3 依次导入ldif文件ldapmodify -Y EXTERNAL -H ldapi:/// -f /etc/openldap/modify/start0.ldif ldapmodify -Y EXTERNAL -H ldapi:/// -f /etc/openldap/modify/start1.ldif ldapmodify -Y EXTERNAL -H ldapi:/// -f /etc/openldap/modify/start2.ldif特别注意从网站复制过去直接粘贴大概率会有格式错误必须详细检查。导入成功后执行以下命令测试数据库返回“config file testing succeeded表示通过。slaptest -u3.2.4 导入schema可以查看现有schema。ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cnschema,cnconfig dn ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif结合实际导入所需schema以cosine.ldif为例。所有schema文件都在/etc/openldap/schema文件夹下可自行了解其用途。ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/pmi.ldif ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/misc.ldif ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/dyngroup.ldif ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/openldap.ldif ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/namedobject.ldif ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/msuser.ldif导入后需要重启slapd。4 安装LAM安装LAMldapaccountmanager通过图形界面管理openldap。4.1 安装nginxphpdnf install nginx php php-fpm cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf~ systemctl start php-fpm systemctl start nginx修改php-fpm默认用户与nginx默认用户相同可以避免诸多文件夹管理权限问题也可以不修改这里但后面要根据提示信息逐个修改文件夹权限并指定lam站点目录位置#查看php-fpm默认用户 ps aux | grep php-fpm #修改php-fpm配置文件 vi /etc/php-fpm.d/www.conf #新建nginx配置文件 vi /etc/nginx/conf.d/lam.conf #编辑完成后测试配置文件 nginx -t查找用户名和用户组并修改如下user nginxgroup nginx新建lam.conf配置文件内容如下server {listen 80;listen [::]:80;server_name lam.dong.net;root /var/www/lam;# Load configuration files for the default server block.include /etc/nginx/default.d/*.conf;error_page 404 /404.html;location /404.html {}error_page 500 502 503 504 /50x.html;location /50x.html {}location ~ \.php$ {fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}}重启服务并设置开机自启systemctl restart php-fpm systemctl enable php-fpm systemctl restart nginx systemctl enable nginx4.2 安装LAM离线环境先下载安装包将所有文件复制到安装目录并设置相关权限。tar xjf ldap-account-manager-version.tar.bz2 cd ldap-account-manager-version cp -r ./* /var/www/lam/ #修改安装目录属主为nginxnginx于nginx用户保持一致 chown -R nginx:nginx /var/www/lam #添加配置文件并修改权限 cp /var/www/lam/config/config.cfg.sample /var/www/lam/config/config.cfg chown nginx:nginx /var/www/lam/config/config.cfg此时已经可以访问lam界面(lam.dong.net)提示文件夹权限和扩展插件问题设置SELinux值并按要求按照软件即可。#设置sebool值解决文件夹权限问题 setsebool -P httpd_anon_write on #如果上述设置无法解决权限问题可以临时关闭selinux然后排查问题 setenforce 0 #解决软件依赖问题 dnf install php-ldap php-gd php-gmp仍然报Your PHP has not ZIP support.错误。如果可以联网dnf install libzip php-pecl-zip如果不能联网下载ZIP扩展PECL :: Package :: ziphttps://pecl.php.net/package/zipdnf install libzip libzip-devel tar zxvf zip-version.tgz cd zip-version phpize ./configure --with-php-config$(which php-config) --enable-zip make make install编辑以下配置文件vi /etc/php.ini添加以下内容extensionzip.so重启服务验证LAM是否正常工作。systemctl restart php-fpm systemctl restart nginx至此LAM页面已正常显示。4.3 LAM初始化根据LAM页面提示输入LAM管理员密码并提交此处的管理员密码于ldap管理员密码并不是一个概念这里的密码仅用于访问lam服务器使用然后输入刚才设置的LAM管理员密码进入配置页面。可以不做配置点击”保存“点击右上角”LAM配置选择第二项编辑服务器配置文件新建配置文件在“Add profile”部分输入名称、密码此处的密码是指配置文件的密码、类型点击“Add”后输入上一步配置的lam服务器密码保存后进入服务器配置界面选择语言为”简体中文中国“时区为“Asia/Beijing”保存。登录后实现中文图形界面操作自行探索不做赘述。5 LAM的基本操作5.1 LAM的连接设置延续上述步骤的登录界面在“通用设置”下修改“合法用户列表”内容为cnManager,dcdong,dcnet修改“树状结构后缀”内容为dcdong,dcnet在“账号类型”下修改用户“的”LDAP后缀“为ouPeople,dcdong,dcnet修改组“的”LDAP后缀“为ougroup,dcdong,dcnet其他选项结合自身需要配置点击左下角保存。5.2 对LDAP的操作延续上述步骤现在进入LDAP服务器登录页面用户名为Manager密码为LDAP管理员密码。初次进入管理界面会提示创建LDAP后缀点击“建立”。现在就可以自行创建用户和组可以新建组Admin然后新建用户queryuser并设置密码。可以使用以下命令验证新建用户和组的结果#本机测试使用如下命令 ldapsearch -x -D uidqueryuser,ouPeople,dcdong,dcnet -W -b dcdong,dcnet #其他终端测试使用以下命令 ldapsearch -H ldap://lam.dong.net:389 -x -b dcdong,dcnet -D uidqueryuser,ouPeople,dcdong,dcnet -W如果命令执行不成功则将其中的用户名替换成为“cnManager,dcdong,dcnet测试并排查故障。6 安全加固ldaps生成ssl密钥和证书并修改证书属主openssl genrsa -out /etc/ssl/private/ldap.key 2048 chown ldap:ldap /etc/ssl/private/ldap.key openssl req -new -x509 -days 365 -subj /CNldap.dong.net \ -key /etc/ssl/private/ldap.key \ -out /etc/openldap/certs/ldap.crt chown ldap:ldap /etc/openldap/certs/ldap.crt新建tsl.ldif配置文件内容如下dn: cnconfigchangetype: modifyadd: olcTLSCACertificateFileolcTLSCACertificateFile: /etc/openldap/certs/ldap.crt-add: olcTLSCertificateFileolcTLSCertificateFile: /etc/openldap/certs/ldap.crt-add: olcTLSCertificateKeyFileolcTLSCertificateKeyFile: /etc/ssl/private/ldap.key动态导入tls.ldif文件ldapmodify -Y EXTERNAL -H ldapi:/// -f /etc/openldap/modify/tls.ldif将自签名证书添加到系统信任库cp /etc/openldap/certs/ldap.crt /etc/pki/ca-trust/source/anchors/ update-ca-trust查看证书内容并进行ldaps连接测试openssl s_client -connect ldap.dong.net:636 -showcerts ldapsearch -H ldaps://ldap.dong.net:636 -x -b dcdong,dcnet -D cnManager,dcdong,dcnet -W输入密码后即可返回查询结果。水平有限敬请批评指正。安全加固部分内容有待完善。