经过几天的尝试,终于将 PureFtpd 与 OpenLDAP 集成好了。
集成所需要的版本 如题:
PureFTPd 1.0.21
OpenLDAP 2.3.20
先说一下这种集成的需求根据,我在公司里部署了LDAP服务器,作为公司各个应用的认证服务器,以实现单点登录。FTP服务器的用户和认证也需要与LDAP服务器集成。
OpenLDAP的安装网上已经有很多例子和文档了,这里就不多说了。重点需要注意的是 PureFTPd的编译安装,PureFTPd的安装网上和该软件包里的README文档也说得很仔细了,但与OpenLDAP2.3.10集成有问题。
主要有2个问题,都与FTPState有关:
(1)pureftp.schema里的Issue,FTPState 的属性改为了boolean型,schema的语法有个错误。
(2)log_ldap.c里没有按schema的boolean型比较,而且用"enabled" 和 "disabled" 来作为FTPState的值来比较。
修正这两个问题,集成就没问题了。
编译PureFTPd 如下:
# ./configure --with-ldap=/usr/local/openldap --with-quotas --with-throttling --with-ratios
# make; make check; make install;
然后没配置好 pureftpd-ldap.conf 启动PureFtpd就可以了。
相关文件如下:
pureftpd.schema
attributetype ( 1.3.6.1.4.1.6981.11.3.7 NAME 'FTPStatus'
DESC 'Account status: enabled or disabled'
EQUALITY booleanMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE )
DESC 'Account status: enabled or disabled'
EQUALITY booleanMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE )
pure-ftpd.conf
# LDAP configuration file (see README.LDAP)
LDAPConfigFile /usr/local/etc/pureftpd-ldap.conf
LDAPConfigFile /usr/local/etc/pureftpd-ldap.conf
pureftpd-ldap.conf
# Optional : name of the LDAP server. Default : localhost
LDAPServer your_ldap_hostname
# Optional : server port. Default : 389
LDAPPort 389
# Mandatory : the base DN to search accounts from. No default.
LDAPBaseDN ou=ftp,dc=your_company
# Optional : who we should bind the server as.
# Default : binds anonymously
LDAPBindDN cn=admin,dc=your_company
# Password if we don't bind anonymously
# This configuration file should be only readable by root
LDAPBindPW password
LDAPServer your_ldap_hostname
# Optional : server port. Default : 389
LDAPPort 389
# Mandatory : the base DN to search accounts from. No default.
LDAPBaseDN ou=ftp,dc=your_company
# Optional : who we should bind the server as.
# Default : binds anonymously
LDAPBindDN cn=admin,dc=your_company
# Password if we don't bind anonymously
# This configuration file should be only readable by root
LDAPBindPW password
可以配置为关闭匿名访问。
启动PureFTPd
# pure-config.pl pure-ftpd.conf
登录即可