Debian 10 安装LDAP 并使用LDAP Account Manager (LAM) 管理
一、OpenLDAP安装
安装OpenLDAP如下:
apt-get update
apt-get install slapd ldap-utils
安装过程中,会要求输入Administrator的密码,这个就是OpenLDAP的 admin 账号密码,记下备用,后面会用到。
二、配置OpenLDAP
这是最麻烦的部分,网上大部分教程都过时了。OpenLDAP在V2.4版本以后,默认已经不通过/etc/ldap/slapd.conf 文件来配置。/etc/ldap/slapd.d 是2.4.x版本新采用的配置文件目录,配置OpenLDAP最正确的姿势是通过ldapmodify命令执行一系列自己写好的ldif文件,而不要修改任何OpenLDAP装好的配置文件。
因为我们后面会使用LAM进行WEB管理,所以,在这时只要修改RootDN和Suffix就可以了。其它的配置交给后面的LAM就可以了。
要想修改RootDN,那么你就自己写这么一个ldif文件,假设给它起名叫RootDN.ldif,然后执行它就可以了:
dn: olcDatabase={1}mdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=admin,dc=lostend,dc=com
-
replace: olcSuffix
olcSuffix: dc=lostend,dc=com
怎么执行呢?
ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f RootDN.ldif
这么长的命令是什么意思?-Q表示安静执行,-Y和后面的EXTERNAL表示,好吧,我也不知道什么意思,总之需要这样配合,然后-H表示地址,-f表示文件名。几乎所有的ldapmodify命令都这么执行就好了。
再来讲解一下上面的ldif文件的内容。dn表示你要修改什么东西,在这里我们用的是{1}mdb,你的系统不一定是{1}mdb,不管是几,总之你去查一下目录里的内容就好了:
ls /etc/openldap/slapd.d/cn=config/
得到的结果大概如下,不一样也不要害怕:
'cn=module{0}.ldif' 'cn=schema' 'cn=schema.ldif' 'olcBackend={0}mdb.ldif' 'olcDatabase={0}config.ldif' 'olcDatabase={-1}frontend.ldif' 'olcDatabase={1}mdb.ldif'
这里面有一大堆奇奇怪怪的数字,不要担心,其中有一个带什么db.ldif的就是你最终需要修改的数据库文件,我这里是mdb.ldif,你的可能是bdb.ldif,还有人是hdb.ldif,不管什么db,总之你要改的是一个叫db的文件就对了,你可以cat打开看一看,但是不要用vi去修改它。
changetype就是modify,表示我们要修改这个文件。第3行是replace,表示我们要替换里面的某个值,你可以把这个操作理解为mysql数据库的update操作,如果你把第3行改成add,那就是mysql的insert操作了。不过这里我们操作的只是配置文件本身,还牵涉不到添加用户或者更改用户,如果你以为事情就这么简单,那就是你太天真了。
RootDN在这里就表示你整个OpenLDAP系统的管理员用户名是什么,不要奇怪,后面这一砣都是用户名cn=admin,dc=lostend,dc=com,总之cn就是那个用户名字,后面带dc的都是域名。
这里的域名dc=lostend,dc=com ,可以填成你自己的。但是要记住。我们在配置LAM的时候会用到。好了,这里OpenLDAP自己的配置算完成了。
三、安装LDAP Account Manager (LAM)
进入下面网址,下载对应的安装包。这里用的是Debian,下载Debian package。
https://www.ldap-account-manager.org/lamcms/releases
下载完成以后,安装:
sudo dpkg -i ldap-account-manager_6.x-x_all.deb
安装的时候,可能会提示缺少依赖,把相关依赖装上就好了。
四、配置LDAP Account Manager (LAM)
因为LAM是基于WEB管理的,所以配置一个http服务端,LAM提供了apache和nginx的配置。我这里使用的是nginx。
以下是nginx的相关配置。
server {
listen 80;
listen [::]:80;
server_name lostend.com;
root /opt/lostend.com;
index index.html index.htm index.php;
include /etc/ldap-account-manager/nginx.conf;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
}
/etc/ldap-account-manager/nginx.conf
这个文件是LAM提供的配置文件,在Debian 10里面,这个配置文件默认有所错误,需要打开此文件,把里面的
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
改成
fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
重启nginx后就可以生效了。
然后打开 http://lostend.com/lam/ 就可以进行配置了。
具体LAM配置可以参照 https://blog.csdn.net/qq_21383435/article/details/83506675
只需要注意使用 dc=lostend,dc=com 替换相应的内容就可以了。在设置管理员的时候,填写 cn=admin,dc=lostend,dc=com 。
LAM 使用建议
1,登陆以后,建议进入一下初始化操作:
点击右上角的”Tools”-“Profile editor”。选中”Users”右边的编辑图标,将”RDN identifier”修改为uid。因为Users通常以uid作为识别码,而Groups通常以cn作为识别码。在这里也可以修改默认的用户目录等参数。
2,添加用户时,由于使用了 Unix (posixAccount)的类型(objectClass),所以”Common name”也必须填写,否则会报错。”Common name”和”User name”一样即可;
3,为用户修改密码时,”Set password”的小窗口关掉以后,还需要点一下页面上的”Save”,密码才会生效。