运用LDAP实现FTP系统的认证与管理
2008/12/1 来源:硅谷 作者:林国辉 陈宇先


  [摘要]在简要介绍LDAP和FTP相关技术的基础上,提出一套基于LDAP和FTP技术的统一身份认证方案和账号管理系统方案,解决FTP系统的统一认证、访问控制和B/S模式下FTP账号管理等问题。
  [关键词]FTP LDAP 认证 账号管理
  中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)0620043-01
  
  FTP(File Transfer Protocol)是Internet中广泛使用的一种网络服务,主要用于网络主机中的文件传输。FTP是一种基于客户机/服务器模式的服务系统,用户需要在FTP服务器上建立账号并拥有合法的权限方可进行有效的连接和登录。由于FTP是基于C/S的工作模式,有着C/S模式的特点,即传统的FTP账号和权限管理需在服务器端进行操作,而且一次只能对单个用户进行管理操作,在用户数量频繁增减情况下,使得FTP服务器的管理和维护非常繁琐,效率却较低。
  LDAP(Lightweight Directory Access Protocol)是一种基于X.500标准的跨平台的轻量级目录访问协议。它运行在TCP/IP协议上,对Internet有着良好的支持性,采用树状的层次结构来存储数据,具有数据读取速度快,管理方便等特点。LDAP多用于构建统一身份认证系统,集中管理应用信息系统的账号,实现统一用户管理、身份认证、访问控制等功能;可解决多应用系统用户的统一管理、统一认证和统一授权;有助于减少数据冗余,提高数据安全和便于用户操作。
  
  一、OpenLDAP与PureFTP认证原理
  
  (一)OpenLDAP简介
  OpenLDAP是一款开源的LDAP目录服务产品,可以运行于Linux,Uinx等操作系统。其设计目的是提供一种高效、安全的方法来查询和管理数据。通过使用SASL,SSL来支持强度认证和提供完整性与安全保护,通过使用丰富的功能强大的存取控制手段来控制对权限的操作。
  (二)PureFTP简介
  PureFTP是一款开源的FTP服务软件,可以运行于Linux,Uinx等操作系统。具有安全、高效、高适应性、高兼容性等特点。支持带宽限制、虚拟磁盘配额限制、FXP、IPv6等,其设计初衷就是数据传输的安全性,支持LDAP、MySQL、PGSQL等多种认证方式。因此,使用PureFTP基于LDAP统一认证方式及运用LDAP集中管理账号数据,有助于提高FTP系统安全性,高效性与可维护性,具有较高的实用价值。
  (三)认证机制与流程
  PureFTP与LDAP集中认证,主要通过LDAP使用pureftpd.schema定义PureFTP的各项属性,并将FTP账号信息存入LDAP数据库中,当用户向FTP服务器请求认证时,FTP服务器将认证工作交由LDAP服务器处理。具体流程如图1所示:
  1.FTP用户请求连接并发送账号认证信息。
  2.FTP服务器根据pure-ftpd.conf中配置将用户帐号信息转发到LDAP服务器验证。
  3.LDAP服务器验证账号密码。
  4.LDAP服务器返回验证信息和账号信息(FTPStatus等属性)。
  5.FTP服务器根据LDAP返回信息对用户授权(是否允许连接)。
  6.FTP服务器向用户返回授权结果。
  
  图1 FTP与LDAP 认证流程图
  
  图2 帐号管理系统功能模块图
  
  二、认证系统的实现方案
  
  (一)配置PureFTP的pure-ftpd.conf文件
  #vi /usr/local/pureftpd/etc/pure-ftpd.conf
  LDAPConfigFile ./pureftpd-ldap.conf #开启 LDAP认证
  (二)配置PureFTP的pureftpd-ldap.conf文件
  #vi /usr/local/pureftpd/etc/pureftpd-ldap.conf
  LDAPServer localhost #LDAP服务器地址
  LDAPPort 389 #LDAP服务端口号
  LDAPBaseDN dc=test,dc=com,dc=cn #LDAP基准DN
  LDAPBindDN cn=Manager,dc=test,dc=com,dc=cn #LDAP管理员DN
  LDAPBindPW test #LDAP管理员密码
  (三)OpenLDAP导入pureftpd.schema文件
  #vi /usr/local/openldap/etc/openldap/etc/sla......点击查阅全文......↓