proftpd权限设置 proftpd安全配置详解

发布时间:2020-12-11编辑:脚本学堂
本文介绍下,有关proftpd软件的权限设置的内容,这也是保证proftpd安全的必要步骤,有需要的朋友参考下吧。

proftpd中,默认用户可以使用系统非root组的用户登录,登陆后限定在/home目录中。
同时匿名用户不能登陆。

除了以上的默认安全规则以后,有时还要对权限进行进一步的设置,在proftpd.conf中配置相关安全选项即可。

在默认的conf中,内容如下:
 

复制代码 代码示例:
# <Anonymous ~ftp>
#   User    ftp
#   Group    nogroup
#   # We want clients to be able to login with "anonymous" as well as "ftp"
#   Useralias   anonymous ftp
#   # Cosmetic changes, all files belongs to ftp user
#   DirFakeUser on ftp
#   DirFakeGroup on ftp
#
#   requireValidshell  off
#
#   # Limit the maximum number of anonymous logins
#   MaxClients   10
#
#   # We want 'welcome.msg' displayed at login, and '.message' displayed
#   # in each newly chdired directory.
#   DisplayLogin   welcome.msg
#   DisplayFirstChdir  .message
#
#   # Limit WRITE everywhere in the anonymous chroot
#   <Directory *>
#     <Limit WRITE>
#       DenyAll
#     </Limit>
#   </Directory>
#
#   # Uncomment this if you're brave.
#   # <Directory incoming>
#   #   # Umask 022 is a good standard umask to prevent new files and dirs
#   #   # (second parm) from being group and world writable.
#   #   Umask    022  022
#   #            <Limit READ WRITE>
#   #            DenyAll
#   #            </Limit>
#   #            <Limit STOR>
#   #            AllowAll
#   #            </Limit>
#   # </Directory>
#
# </Anonymous>

proftpd的配置文件格式:
 

#全局设置
设置项目1 参数1
设置项目2 参数2
#某个目录的设置
<Directory "路径名">
...
</Directory>
#关于匿名用户的设置
<Anonymous "匿名登陆的目录">
...
<Limit 限制动作>
..
</Limit>
</Anonymous>

其中,重要的就是limit之中的部分,它负责具体的权限控制,有如下的安全选项:
 

CMD:Change Working Directory 改变目录
MKD:MaKe Directory 建立目录的权限
RNFR: ReName FRom 更改目录名的权限
DELE:DELEte 删除文件的权限
RMD:ReMove Directory 删除目录的权限
RETR:RETRieve 从服务端下载到客户端的权限
STOR:STORe 从客户端上传到服务端的权限
READ:可读的权限,不包括列目录的权限,相当于RETR,STAT等
WRITE:写文件或者目录的权限,包括MKD和RMD
DIRS:是否允许列目录,相当于LIST,NLST等权限,还是比较实用的
ALL:所有权限
LOGIN:是否允许登陆的权限

针对这些设置,有如下的具体配置:
 

AllowUser 针对某个用户允许的Limit
DenyUser 针对某个用户禁止的Limit
AllowGroup 针对某个用户组允许的Limit
DenyGroup 针对某个用户组禁止的Limit
AllowAll 针对所有用户组允许的Limit
DenyAll 针对所有用户禁止的Limit

同时,可以针对单独的用户来限制速度:
TransferRate STOR|RETR 速度(Kbytes/s) user 使用者
而对于虚拟用户,无法登陆的。所以,必须修改<Anonymous ~ftp>为<Anonymous 要指定的主目录>

下面帖上我的proftpd配置信息:
 

复制代码 代码示例:
<Anonymous /ftp/ftphome>
User    ftp            #指定用户的组和名称
Group    nogroup
UserAlias   anonymous ftp  #使得ftp和匿名用户都能登陆
DirFakeUser on ftp
DirFakeGroup on ftp
RequireValidShell  off          
MaxClients   50 # 该用户的最大连接数
DisplayLogin   welcome.msg  #显示欢迎信息,需要注意把msg文件放到登陆后的主目录
DisplayFirstChdir  .message
MaxClientsPerHost   3       #限制每个主机最大连接数
<Directory *>  #这里是对目录进行设置,即不允许写
 <Limit WRITE>
  DenyAll
 </Limit>
</Directory>
<Directory incoming> #对上传目录的设置,我们有一个incoming文件夹需要允许别人上传
Umask    022  022
 <Limit READ>     #不允许下载
  DenyAll
 </Limit>
 <Limit STOR MKD> #允许上传和新建目录
  AllowAll
 </Limit>
</Directory>
</Anonymous>

同时,还需要对ftp进行管理。
操作方法:
在系统中建立一个用户,名称为ftpadmin,属于nogroup组,不允许登陆。
并赋予它对ftp的所有权限:
 

复制代码 代码示例:
<Anonymous /ftp/ftphome>
User    ftpadmin
Group    nogroup
 <Directory *>
  <Limit ALL>
   AllowAll
  </Limit>
 </Directory>
</Anonymous>

注意:在proftpd中作了限制之后,对ftp的权限,还受到主机文件系统权限的限制。
所以,给ftp的目录赋予nogroup组读写的权限