热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ProFTPd服务器设置相关问题

Proftpd是我目前用的ftp服务器软件,支持匿名登陆、设置目录权限、带宽限制等功能。在使用的过程中也遇到了一些问题,随着问题的解决自己的知识也在丰富,或许这就是自由软件的一个特点,它提供了丰富的功能但并不假定用户不具有相应的专业知识,实际上为了

Proftpd是我目前用的ftp服务器软件,支持匿名登陆、设置目录权限、带宽限制等功能。在使用的过程中也遇到了一些问题,随着问题的解决自己的知识也在丰富,或许这就是自由软件的一个特点,它提供了丰富的功能但并不假定用户不具有相应的专业知识,实际上为了用好它用户必须具备相应的专业知识。

在使用proftpd作为ftp服务器的过程中发现一个奇怪的现象,用户登陆这个 ftp特别的慢,而一旦登陆完成则速度很快.而且,在本机登陆很快,但在实验室其他的机器上则很慢.

查阅了一下proftpd的官方网站的FAQ发现原来是proftpd 在默认配置下会对登陆的用户进行DNS反查和ident查找, 由于网络中大部分主机都是没有DNS名字的,还有许多只有局域网地址,所以这种查询是失败的.失败的查询会花费很多时间,所以登陆也就变得十分缓慢.

解决方案很简单,只要取消DNS反查和ident查找既可. 在proftpd的配置文件中加入下面几行:

UseReverseDNS    off
IdentLookups     off

默认情况下匿名的ftp访问被限制在~ftp目录之下,如果你想让你的系统的某些目录,如/usr/portage/distfiles目录,能让匿名登陆的用户访问,那怎么做呢?

你可能想使用符号连接来解决这个问题,例如在~ftp目录下建立一个指向 /usr/portage/distfiles目录的软连接distfiles。但出于安全的考虑 proftpd 不支持符号连接,所以这种方法就不可行。那是否就没折了,至少有两种方法来解决这个问题,这两种方法都是通过将文件系统的某个目录重复mount到一个新的位置来解决。

如果你的linux系统的内核版本大于2.4.0,那么你就可以直接把文件系统的部分mount到一个新的位置,命令如下:

mount --bind olddir newdir

在执行了上面的命令之后olddir和newdir就具有了完全相同的内容了。

如果你的系统不支持上面的将文件系统的部分内容重新mount到一个新位置,那么你可以使用NFS(Network File System)来提供相同的功能。基本思想就是把要那个要匿名访问的目录用NFS导出,然后把它mount到匿名ftp目录下的一个目录上。

这个文件列出了不允许ftp访问的用户名,例如root、nobody等。这主要是出于安全考虑,当然如果你故意不想让某个用户进行ftp访问,你就可以把那个用户的名字列在这个文件中。

注意:这个文件基本上对所有ftp服务器都具有相同的意义。

关于FTP over TLS/SSL的功能既证书的产生参见vsftpd的SSL配置部分,下面是我的系统中的proftpd中的与SSL相关的配置:

# I use SSL/TLS to protect my authentication information from sniffing
#

  TLSEngine on
  TLSLog /var/log/proftpd-tls.log
  #lftp can't work properly without this
  TLSOptions NoCertRequest
  #Use TLS to protect authentication information
  #TLSRequired auth
  #Server's certificate file
  TLSRSACertificateFile /etc/proftpd/server.crt
  TLSRSACertificateKeyFile /etc/proftpd/server.key
  #Don't enforce TLS Renegotiate
  #TLSRenegotiate required off

我在使用proftpd中遇到了一些问题,并解决了它们。这些问题可能只出现于特定的环境和版本中,不是所有的Linux发行版和proftpd的软件版本都有这些问题。

ACL(Access Control List)

ACL自Proftpd的1.3.0rc1版中引入,目前尚处于测试阶段。如果在Gentoo编译 proftpd时加入了USE=acl,而你的/home目录所在的分区在mount时又没有启用acl支持,在anonymous访问时就可能出现问题。

问题--在编译安装了proftpd后,使用lftp进行anonymous登陆时系统显示如下信息:

Unable to set anonymous privilege

检查系统日志tail -f /var/log/message发现下面信息:

Directory ~ftp is unaccessible

出现上面的问题的原因是在用户匿名登陆时不知出于什么原因proftpd要使用 ACL检查目录~ftp的访问权限,而且如果文件系统不支持ACL时就认为此目录无法访问。所以解决的方法有两个,一是在mount文件系统是指定ACL支持,二是编译是指定USE="-acl"。


推荐阅读
author-avatar
悲剧制造商_469
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有