将系统的 ftp 服务换成 ProFTP

Redhat Linux 7.3 默认的 ftp 服务是采用 wu-ftpd,虽然 wu-ftpd 在效能上,一直有不错的表现,程式版本更新的速度也不慢,不过,它却不是一个够安全的系统。ProFtpd 的发展,一开始便是定位在成为一个安全且容易设定的 ftp 服务器程式,它的风格及表现,深得许多网管人员的喜爱。如果您想找一个不错的 ftp 伺服程式来取代 wu-ftpd,试试 ProFtpd 吧…

安装 ProFTP 套件程式

  • 移除 wu-ftpd 及 anonftp:
  • apt-get remove anonftp
    apt-get remove wu-ftpd
  • 使用 Apt 安装 ProFtp:
  • apt-get install proftpd

    相关程式与设定档

  • /etc/proftpd.conf: ProFTP 的设定档。
  • /etc/ftpuser: 设定不可用 FTP 登入的使用者 id,加入在该档内的 id 将会被拒绝登入。
  • /usr/sbin/ftpshut: 关闭 FTP 服务。关闭后,在 /etc 下会产生一个名称为 “shutmsg” 的档案,把它删除即可恢复启动状态。
  • /usr/bin/ftpcount: 查看目前连线数量。
  • /usr/bin/ftpwho: 查看目前的连线者。
  • ProFTP 的设定档参数

  • ServerName: 设定登入 FTP 主机要显示的名称。
  • ServerName "Welcome to My FTP Server"
  • ServerType: 设定启动型态。standalone | inetd
  • ServerType standalone
  • DefaultServer: 设定未知的连线是否由默认的主机来处理。
  • DefaultServer on
  • Port: 设定启动时要监听哪个 port。
  • Port 21
  • umask: 设定建立档案目录时,使用的权限遮罩(”022″ 代表 755)。
  • Umask 022
  • MaxInstances: 指定当启动型态为 “standalone” 时,最多允许多少程序启动。
  • MaxInstances 20
  • User/Group: 设定启动时的身份与群组。
  • User nobody
    Group nobody
  • AllowOverwrite: 设定是否可以覆写档案(默认是 off,可以适用于整体设定与目录区段设定)。
  • AllowOverwrte on
  • ServerIdent: 是否于使用者登入时显示服务器的类型。
  • ServerIdent off
  • DefaultRoot: 指定特定使用者登入后的根目录。
  • DefaultRoot /var/www webmaster
    设定每个使用者登入后的根目录(”!” 后为排除的使用者)。
    DefaultRoot /var/ftp !admin
    限制每个使用者都登入在自己的家目录(”!” 后为排除的使用者)
    DefaultRoot ~ !admin
  • AllowStoreRestart: 允许上传续传。
  • AllowStoreRestart on
  • DisplayLogin: 设定登入服务器时,要显示的内容(仅适用于 anonymous 与 VirtualHost)。
  • DisPlayLogin welcome.msg
  • DisplayFirstChdir: 设定切换目录时要显示的内容(仅适用于 anonymous 与 VirtualHost)。
  • DisplayFirstChdir .message
  • DisplayQuit: 设定结束连线时要显示的内容(仅适用于 anonymous 与 VirtualHost)。
  • DisplayQuit goodbye.msg
  • MaxClients: 设定服务器最多允许多少个使用者(不同IP)登入,后面为超过数量时显示的讯息。
  • MaxClients 5 "Sorry, max %m users -- try again later"
  • MaxClientsPerHost: 设定同一个 IP 的使用者最多能登入几个程序。
  • MaxClientsPerHost 2
    ~
  • MaxLoginAttempts: 设定使用者尝试登入失败后几次断线。
  • MaxLoginAttempts 3
  • RateReadBPS: 限制每秒下载的速度(bytes)。
  • RateReadBPS 10240
  • RateWriteBPS: 限制每秒上传的速度(bytes)。
  • RateWriteBPS 10240
  • RequireValidShell: 检查使用者的 shell 程式是否合法。
  • RequireValidShell on
  • RootLogin: 设定是否可以使用 root 帐号登入。
  • RootLogin off
  • TimeoutLogin: 指定连线后多久没有登入就断线(秒)。
  • TimeoutLogin 100
  • TimeoutIdle: 设定登入主机后闲置多久就断线(秒)。
  • TimeoutIdle 600
  • TimeoutNoTransfer: 设定多久没传输资料就断线(秒)
  • TimeoutNoTransfer  600
  • UseHostsAllowFile: 指定允许连线的主机,指定档案,其语法与 /etc/hosts.allow 一样。
  • UseHostsDenyFile: 指定拒绝服务的连线主机,指定档案,其语法与 /etc/hosts.deny 一样。
  • 存取权限设定

    ProFTP 的权限控管可针对一般使用者及匿名登入的使用者…

  • 匿名使用者的部分,是宣告在 ~ 区段内。
  • 目录存取权限设定,是宣告在 ~ 。
  • ~ : 设定该目录的存取动作,priv 的方式如下…

  • ALL (identical to READ WRITE DIRS)
  • CWD (Change Working Directory)
  • DELE (DELEte)
  • DIRS
  • LOGIN
  • MKD (MaKe Directory)
  • READ (RETR, STAT)
  • RETR (RETRieve)
  • RMD (ReMove Directory)
  • RNFR (ReName FRom)
  • RNTO (ReName TO)
  • STOR (STORe)
  • WRITE (also include MKD and RMD)
  • 指定存取的权限…

  • Allow [from] all | none | host1[,host2,...]
  • Deny [from] all | none | host[,host,...]
  • AllowAll
  • DenyAll
  • AllowUser UserName
  • AllowGroup GroupName
  • DenyUser UserName
  • DenyGroup GroupName
  • Order allow,deny | deny,allow
  • 使用范例

    <Directory /path>
      <Limit CWD>
        Order Allow,Deny
        Allow from 128.44.26.,128.44.26.
        Allow From host.example.com
        Deny from all
      </Limit>
    </Directory>

    匿名区域开放上传的设定范例

    <Anonymous ~ftp>
      User ftp
      Group ftp
      UserAlias anonymous ftp
      MaxClients 5
      AnonRequirePassword off
      RequireValidShell off
      <Directory upload/>
        <Limit STOR CWD MKD>
          AllowAll
        </Limit>
        <Limit READ RMD DELE>
          DenyAll
        </Limit>
      </Directory>
    </Anonymous>
    1. Using Google Chrome Google Chrome 22.0.1229.79 on Windows Windows 7

      谢谢博主~ 非常详细的文章...收益匪浅!

    1. No trackbacks yet.

    return top

    %d 位部落客按了赞: