ProFTPD:Limit配置

ProFTPD的<Limit>配置部分允许进行强大的细粒度控制,即:允许谁使用哪些FTP命令。 然而,这种能力是以复杂性为代价的。 本文档描述了编写<Limit>部分时要记住的一些事项。

优先权
也许使用<Limit>最难的地方是理解它的优先级规则,它决定了<Limit>限制何时生效。 首先,Limit指令中有三种类型的参数:“RAW”FTP命令、FTP命令组和ALL关键字。
1)http://www.proftpd.org/docs/howto/FTP.html 中列出了“原始”FTP命令,包括RFC强制的X变体FTP命令。
2)FTP命令组:
在这里插入图片描述
使用“RAW”FTP命令的<Limit>具有最高优先级,其次是使用命令组的<Limit>,最后是使用ALL关键字的<Limit>。 如果<Limit>同时具有“原始”命令和命令组,那么使用“RAW”命令的Limit部分限制生效。

SITE命令
若要将<Limit>应用于SITE命令,则将“SITE”和命令通过下划线(“_”)组合,如下所示:

   <Limit SITE_command>

比如:对SITE CHMOD设置限制,可以:

<Limit SITE_CHMOD>
    DenyAll
</Limit>

继承
<Limit>一般在proftpd.conf的<Directory>部分中使用,这样,<Limit>将被出现在<Directory>路径中的所有子目录继承,除非被“更近”的<Limit>部分明确覆盖。因此,可以配置一个<Limit>部分,拒绝所有目录的所有FTP命令,然后在适当的子目录(例如pub /或incoming /目录)中明确允许READ或WRITE命令组。

使用 AllowUser和DenyUser
在使用AllowUser指定某些用户支持某些FTP命令时,最好为每个用户使用一个AllowUser,尽量不要用一个AllowUser列出所有的用户,比如:

   AllowUser bob,dave,wendy

最好使用如下方式替换:

   AllowUser bob
  AllowUser dave
  AllowUser wendy

以上对DenyUser同样有效。

注意事项:<Limit>部分中使用的名称,例如AllowUser,DenyUser,AllowGroup和DenyGroup,不会解析为ID,仅适用于名称。

举例:
1、示例一:目录仅上传权限:

   <Directory /path/to/uploads>
    <Limit ALL>
      DenyAll
    </Limit>

    <Limit CDUP CWD PWD XCWD XCUP>
      AllowAll
    </Limit>

    <Limit STOR STOU>
      AllowAll
    </Limit>
  </Directory>

其中,<Limit ALL>部分阻止/path/to/uploads目录中使用所有的FTP命令,然后开始定义可以使用那些命令:允许CDUP和CWD命令(及其X变体),以便用户可以进入目录,然后允许STOR和STOU,以便用户可以将文件上传到目录中。
2、示例二:“盲目”目录,用户可以从目录下载和上传文件,但是无法看到目录内容

   <Directory /path/to/dir>
    <Limit LIST NLST MLSD MLST STAT>
      DenyAll
    </Limit>
  </Directory>

默认情况下,目录允许所有命令。 通过阻止列出目录内容的FTP命令(即LIST,MLSD,MLST和NLST),可以阻止了客户端看到目录中的任何内容。
3、LOGIN命令

   <Limit LOGIN>
    AllowUser barb
    AllowUser dave
    AllowGroup ftpuser
    DenyAll
  </Limit>

允许选定的系统用户能够连接到他们的proftpd服务器:允许用户barb和dave以及ftpuser组中的任何用户登录。 所有其他用户将被拒绝。
如果某个网站只允许匿名访问,则使用LOGIN命令组进行配置,如上所述:

   <Limit LOGIN>
    DenyAll
  </Limit>

  <Anonymous ~ftp>
    <Limit LOGIN>
      AllowAll
    </Limit>
    ...
  </Anonymous>

猜你喜欢

转载自blog.csdn.net/qq_41688455/article/details/87727910