FTP服务器之pure-ftpd源码编译及参数配置

  1. Pure-ftpd介绍 node

    PureFTPd是一款免费、安全、符合国际标准的FTP 服务器软件,具有高效性和易用性。虚拟帐户、系统帐户及匿名帐户登录支持,多种认证方式支持,磁盘配额支持,上传下载速率限制支持,访问IP限制支持,Mysql数据结合使用存储ftp虚拟帐户支持等等,独特的实用功能为我的用户和托管服务提供商提供优质的定制化ftp配置选择。 mysql

  2. 源码下载及安装 ios

    a. libiconv库安装---用户编码转换(为后面的with-rfc2640参数准备) sql

              cd /usr/local/src             数据库

             wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz 安全

             tar -jxvf libiconv-1.14.tar.gz 服务器

             cd libiconv-1.14 cookie

             ./configure --prefix=/usr 并发

            make&&make check 测试

            make install

        b. pure-ftpd源码安装

            cd /usr/local/src

            wget ftp://ftp.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.36.tar.gz

            cd /usr/local/src/pure-ftpd-1.0.36

            ./configure --prefix=/usr/local/pure-ftpd/ --with-everything --with-altlog --with-puredb  --with-ftpwho --with-mysql –with-throttling –with-ratios –with-quotas –with-virtualhosts  –with-virtualchroot –with-sysquotas –with-cookie --with-rfc2640  --with-language=simplified-chinese

            其中config参数表以下,供参考:

             –prefix=PREFIX         指定安装目录
             –with-sysquotas        使用系统磁盘配额 (非虚拟)
             –with-altlog               支持选择日志格式(相似Apache)
             –with-puredb             支持虚拟用户 (FTP登录用户而非系统用户)
             –with-extauth              支持扩展验证模块
             –with-pam                  启用PAM验证支持 (默认=禁用)
             –with-cookie               启用Cookie支持 (-F 选项)
             –with-throttling           支持带宽控制 (默认=禁用)
             –with-ratios                   支持 上传/下载 速度控制
             –with-quotas               支持 .ftpquota 文件(指定磁盘配额使用)
             –with-ftpwho               支持pure-ftpwho(查看在线用户的程序)
             –with-largefile              支持大于2G的文件
             –with-welcomemsg      支持 welcome.msg 向后兼容(已通过时)
             –with-uploadscript       上传后容许执行外部脚本 (测试阶段)
             –with-virtualhosts         在不一样的IP地址提供虚拟服务器功能
             –with-virtualchroot        容许在chroot的环境下经过符合链接跳转到外部
             –with-diraliases               启用目录别名
             –with-nonroot                  普通模式或者说是限制模式. 若是你在该服务器上没有root权限那只有启用该项
             –with-peruserlimits            支持每一个用户的并发限制
             –with-language=            语言支持< english | traditional-chinese | simplified-chinese>
             –with-ldap                     在LDAP目录中提供用户数据库
             –with-mysql                    在MySQL数据库中存放用户数据
             –with-pgsql                    在PostgreSQL数据库中存放用户数据
             –with-privsep                 启用权限分离
             –with-tls                      启用 SSL/TLS 支持 (测试阶段, 须要安装 OpenSSL)
             –with-certfile=            证书文件 (默认目录: /etc/ssl/private/pure-ftpd.pem)
             –with-rfc2640              启用兼容 RFC 2640 支持(UTF-8 编码的文件名,须要安装iconv)
             –with-everything       启用大多数选项,编译完功能版本的服务器端。

             make&&make check
             make install

            注意:这里在编译的时候,若是你在这操做以前还没有安装mysql,那么会报错,错误及解决办法以下:

             错误: configure: error: libmysqlclient is needed for MySQL support
             解决方法:  yum install mysql-devel

              拷贝pure-ftpd配置文件
              mkdir /usr/local/pure-ftpd/etc
             cp /usr/local/src/pure-ftpd-1.0.36/configuration-file/pure-ftpd.conf /usr/local/pure-ftpd/etc/        # 配置文件拷贝到/etc目录下

             cp /usr/local/src/pure-ftpd-1.0.36/purepureftpd-mysql.conf /usr/local/pure-ftpd/etc
             cp /usr/local/src/pure-ftpd-1.0.36/configuration-file/pure-config.pl /usr/local/pure-ftpd/sbin/
             彷佛make install忘记了将这个文件复制到相应的目录了,咱们只有手动本身作了
             chmod 755 /usr/local/pure-ftpd/sbin/pure-config.pl # 设置相应的权限

             系统集成

              cd /usr/local/bin/
              ln -s /usr/local/pure-ftpd/bin/* .
              ln -s /usr/local/pure-ftpd/sbin/* /usr/local/sbin/
              ln -s /usr/local/pure-ftpd/man/man8/* /usr/local/share/man/man8/

          c. Mysql YUM安装(我这偷懒,惧怕解决依赖问题,直接YUM)

             rpm -aq |grep mysql

             rpm -e --nodeps mysql 或者 yum remove 上面列出来的系统老的mysql安装文件,好比 yum remove mysql mysql-server mysql-libs mysql-devel

            rpm qa|grep mysql 查看老的mysql是否已经卸载彻底,若无,则采用find / -name "mysql"  找到关联文件用 rm强制删除

            yum install mysql mysql-server mysql-devel mysql-libs;

    3.    创建用于pureftpd认证用户的系统信息
           虚拟用户则可以更好的控制访问权限,虚拟用户是和Linux系统用户关联的独立的帐户系统。因此在建立虚拟用户以前最好先建立一个系统的帐户和组。
           [root@localhost  /]# groupadd -g 2000 pureftp
           [root@localhost  /]# useradd -u 2000 -g pureftp -d /var/pureftp -s/sbin/nologin pureftp

    4.    修改pure-ftp.conf

             ChrootEveryone              yes         # 启用chroot
             BrokenClientsCompatibility  yes         # 兼容不一样客户端
             Daemonize                   yes            # 后台运行

             MaxClientsNumber            50      #服务器并发链接数
             MaxClientsPerIP               5          # 每一个ip最大链接数
             VerboseLog                  yes          # 记录日志
             DisplayDotFiles             no          # 显示隐藏文件
             AnonymousOnly               no          # 只容许匿名用户访问
             NoAnonymous                 yes         # 不容许匿名用户链接
             SyslogFacility              ftp            # 将日志在syslog日志中显示
             DontResolve                 yes         # 不进行客户端DNS解析
             MaxIdleTime                 15          # 最大空闲时间

             #MySQLConfigFile              /usr/local/pure-ftpd/etc/pureftpd-mysql.conf      #Mysql虚拟用户配置档,在还没有弄好Mysql虚拟帐户时先注销,稍后开启
             PureDB                     /usr/local/pure-ftpd/etc/pureftpd.pdb        # 用户数据库文件

             LimitRecursion              10000 8      # 浏览限制,文件10000,目录8层
             AnonymousCanCreateDirs      no          # 匿名用户能够建立目录
             MaxLoad                     4           # 超出负载后禁止下载
             PassivePortRange          50000 51000   # 被动模式端口范围
             #AnonymousRatio                1 10     # 匿名用户上传/下载比率
             UserRatio                 1 10          # 全部用户上传/下载比率
             AntiWarez                   yes         # 禁止下载匿名用户上传但未经验证的文件
             #AnonymousBandwidth            200      # 匿名用户带宽限制(KB)
             UserBandwidth               8           # 全部用户最大带宽(KB)
             Umask                       133:022     # 建立文件/目录默认掩码
             MinUID                      100         # 最大UID限制
             AllowUserFXP               yes        # 用户进行FXP传输
             AllowAnonymousFXP           no          # 对匿名用户和非匿名用户容许进行匿名 FXP 传输
             ProhibitDotFilesWrite       no          # 不能删除/写入隐藏文件
             ProhibitDotFilesRead        no          # 禁止读取隐藏文件
             AutoRename                  yes         # 有同名文件时自动从新命名
             AnonymousCantUpload         yes         # 不容许匿名用户上传文件
             AltLog                     clf:/var/log/pureftpd.log                # clf格式日志文件位置
             MaxDiskUsage               99           # 当磁盘使用量打到99%时禁止上传

             PIDFile                     /var/run/pure-ftpd.pid     #pureftp的PID
             CreateHomeDir              yes          # 若是虚拟用户的目录不存在则自动建立
             CustomerProof              yes          # 防止命令误操做

             FileSystemCharset      UTF-8         #服务器以UTF-8格式
             ClientCharset          gb2312          #客户端gb2312

未完待续.....

相关文章
相关标签/搜索