最近有人向我谈起一个与一账户信息在多个OpenSSH Server上同步的问题。
这两三天我抽时间测试了pam_mysql,pam_radius,以及OpenLDAP这三个东西。其中pam_mysql,pam_radius虽然可以用某个服务器验证登录信息,但是都需要在各个服务器上使用useradd添加该用户。
OpenLDAP最完美,仅需在LDAP上添加一个记录,就可使用已添加的用户的信息登录到各个服务器。
考虑到谈起这个问题的人是想使用WHMCS开通SSH账户的,于是我弄了个WHMCS的LDAP模块。
这模块需要PHP的LDAP扩展,你们可以通过phpinfo()函数查看是否有ldap扩展,如果没有,就到php.net下载你正在使用的版本的PHP源码,用phpize编译吧。
WHMCS LDAP模块下载地址:http://soft.yzs.me/ldapposixaccount.tar.bz2
使用方法:
首先得配置好你的LDAP Server与其他要使用LDAP验证的服务器,这些我就不多说啦,LDAP发展这么久,肯定不少人发过教程,发一个已经可以谷歌到答案的东西,那就没意义啦。
接下来要在WHMCS的服务器设置处添加服务器,模块当然是选择Ldapposixaccount了,你可以把各个服务器的IP填入到Assigned IP Addresses中,那样用户在服务信息处就可以看到各个服务器的IP了。用户名填写你的登陆DN(Login DN),例如cn=admin,dc=domain,dc=com,至于密码,你自己知道。接着创建服务器组。
进入产品设置页面,添加产品,Module Settings中选择Ldapposixaccount。
这里解释一下各项的设置。
Base Distinguished Name:最基础的dn,例如dc=domain,dc=com。
Initial uid&gid Number:填入一个数字,新添加的用户的uid和gid将会从这个数字开始递增,为了不要与/etc/passwd与/etc/group中的重复,建议设置到10000以上。
Users’s Home Directory Base:填入一个文件夹的路径,新建的用户的home目录将会以其用户名命名创建至此目录中,例如我设置为/home/,那么新建的用户的home目录将会是/home/用户名。
Login Shell:新建的用户的shell,例如/bin/bash,更多的shell可以查看/etc/shells。
Group Organisational Unit:在你LDAP Server中储存用户组的Organisational Unit。
User Organisational Unit:在你LDAP Server中储存用户的Organisational Unit。
如果你设置的信息无误的话,那么接下来就可以通过WHMCS创建用户了。
Comments are closed.