IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    Pureftpd操作指南——80%系列

    Hegel_Gu发表于 2016-08-10 19:08:48
    love 0

    前言

    Pure-ftpd提供了一个轻量级、快速、多语言、具备基本功能特性的FTPServer配置方案。本文展示了如何在CentOS7.x上安装和配置Pure-ftpd,并在此过程中阐述PUre-Ftpd的设计特性。

    安装

    首先需要开启epel,才有pure-ftpd的源,一条命令安装好:

    yum  -y install epel-release && yum -y install pure-ftpd
    

    配置

    不同于其他的多数守护进程(daemon),Pure-FTPd 的配置比较特别:它不读取任何的配置文件,配置选项都是通过命令行参数来实现的。例如:参数 '-H' 被设计为通过避免 DNS 查询来加快服务器的速度。要启用该特性,我们只需要将其加到命令行中: pure-ftpd -H 。备选的长参数也被支持的,下面是一个等价的命令 pure-ftpd --dontresolve

    针对喜欢配置文件的用户,Pure-FTPd 官方给出了一种方案:通过一个封装(wrapper)工具,将配置文件解析并将其转换成命令行参数。首先根据自己的需要编辑配置文件 pure-ftpd.conf,而后通过下面的命令启动 pure-config.pl /etc/pure-ftpd.conf。pure-config.pl 是一个 perl 脚本,它根据配置文件采用合适的命令行选项来调用 pure-ftpd

    以上段落是抄的。原文在此

    所以我们需要先配置一下pure-ftpd.conf 来预定义一下命令行参数,个人推荐以下配置:

    ChrootEveryone              yes           //锁定所有用户到家目录中
    # TrustedGID                100         //信任组ID100,可以不锁定
    MaxClientsNumber            50           //最大的客户端数量
    MaxClientsPerIP             8        //同一个IP允许8个链接
    DisplayDotFiles             no //不显示隐藏文件
    AnonymousOnly               no   //只允许匿名用户
    NoAnonymous                 yes//不允许匿名用户
    DontResolve                 yes    //禁止反向解析
    MaxIdleTime                 10    //最大空闲10分钟
    # LDAPConfigFile                /etc/pureftpd-ldap.conf    //LDAP配置文件目录
    # MySQLConfigFile               /etc/pureftpd-mysql.conf//MySQL配置文件目录
    # PGSQLConfigFile               /etc/pureftpd-pgsql.conf //PGSQL配置文件目录
    PureDB                        etc/pure-ftpd/pureftpd.pdb //虚拟用户数据库,CentOS下默认位置
    # UnixAuthentication            yes //主机认证
    LimitRecursion              2000 10       //别表最大显示2000个文件,最深8个目录
    AnonymousCanCreateDirs      no     //是否允许匿名用户创建目录
    #MaxLoad                     4   //最多可下载的数量
    # PassivePortRange          30000 50000      //主动连接的端口范围
    ForcePassiveIP                192.168.0.1   //这个地址总是直到匿名目录
    # AnonymousRatio                1 10         //匿名用户上传下载速度比率
    # UserRatio                 1 10                  //用户上传下载速度比率
    # Bind                      127.0.0.1,21     //绑定IP和端口
    # AnonymousBandwidth            8             //匿名用户带宽8KB
    # UserBandwidth             8                     //用户带宽8KB
    Umask                       133:022         //文件和目录的umask
    MinUID                      1000             //用户ID至少要大于1000才能登陆
    AllowUserFXP                no           //是否允许用户使用FXP协议登陆
    AllowAnonymousFXP           no         //是否允许匿名用户使用FXP协议
    ProhibitDotFilesWrite       no                 //是否允许写入点文件
    ProhibitDotFilesRead        no                //是否允许读取点文件
    AnonymousCantUpload         yes         //不允许匿名用户上传
    #NoChmod                     yes     //不允许用户改变权限
    #KeepAllFiles                yes           //允许用户断点续传
    #Quota                       1000:10//磁盘配额
    MaxDiskUsage               80   //磁盘的最大利用率
    #NoRename                  yes //不允许自动重命名
    IPV4Only                 yes    //只允许使用IPV4协议
    ClientCharset            utf-8   //客户端默认编码
    

    其实在CentOS下,/etc/pure-ftpd/下存在一个默认的pure-ftpd.conf,每一行都有详尽的注释,有时间可以阅读一下。

    权限与用户

    首先我们需要新建一个用户,此用户作为pure-ftpd虚拟用户的依托用户,此用户的home directory也将作为FTP root,当然你新建目录的时候也可以不指定home directory,并在建立完毕以后将FTP root chown给此用户。

    groupadd ftpgroup        //新建系统组
    useradd -g ftpgroup -M -s /sbin/nologin ftpadmin //新建一个FTP用户,不创建用户目录,假定已经存在一个FTP root作为FTP的根目录。
    chmod –R ftpuser:ftpgroup ftproot/ //把FTP目录的所属用户和组改为虚拟用户所依托的系统用户和组
    pure-pw useradd puser –u ftpuser –d /ftproot –m //命令格式很好懂,pure-pw 命令使用useradd 需要添加的用户名, -u标明虚拟用户并且与系统用户权限关联,-d指定了系统用户Home目录中的子目录,且被限制在这个子目录里面(此处是否被限制与上文的conf文件设定相关)如果需要访问系统用户的HOME Directory,则直接使用参数 -D,-m则写入用户数据库,用户设置即时生效,无需重启进程。
    pure-config.pl etc/pure-ftpd/pure-ftpd.conf &//后台启动进程。
    

    此处,我们新建了一个FTPadmin用户,此用户对FTP ROOT拥有所有权限,如果需要一个只读用户,需要新建一个在ftpgroup内的用户,然后再使用pure-pw创建一个依托此用户的虚拟用户即可。即pure-pw虚拟用户对FTP目录的操作权限与其依托的系统用户对FTP目录的权限保持一致。



沪ICP备19023445号-2号
友情链接