热门标签 | 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"。


推荐阅读
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 腾讯安全平台部招聘安全工程师和数据分析工程师
    腾讯安全平台部正在招聘安全工程师和数据分析工程师。安全工程师负责安全问题和安全事件的跟踪和分析,提供安全测试技术支持;数据分析工程师负责安全产品相关系统数据统计和分析挖掘,通过用户行为数据建模为业务决策提供参考。招聘要求包括熟悉渗透测试和常见安全工具原理,精通Web漏洞,熟练使用多门编程语言等。有相关工作经验和在安全站点发表作品的候选人优先考虑。 ... [详细]
  • PHP组合工具以及开发所需的工具
    本文介绍了PHP开发中常用的组合工具和开发所需的工具。对于数据分析软件,包括Excel、hihidata、SPSS、SAS、MARLAB、Eview以及各种BI与报表工具等。同时还介绍了PHP开发所需的PHP MySQL Apache集成环境,包括推荐的AppServ等版本。 ... [详细]
  • 本文比较了eBPF和WebAssembly作为云原生VM的特点和应用领域。eBPF作为运行在Linux内核中的轻量级代码执行沙箱,适用于网络或安全相关的任务;而WebAssembly作为图灵完备的语言,在商业应用中具有优势。同时,介绍了WebAssembly在Linux内核中运行的尝试以及基于LLVM的云原生WebAssembly编译器WasmEdge Runtime的案例,展示了WebAssembly作为原生应用程序的潜力。 ... [详细]
  • 生成对抗式网络GAN及其衍生CGAN、DCGAN、WGAN、LSGAN、BEGAN介绍
    一、GAN原理介绍学习GAN的第一篇论文当然由是IanGoodfellow于2014年发表的GenerativeAdversarialNetworks(论文下载链接arxiv:[h ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • Linux环境变量函数getenv、putenv、setenv和unsetenv详解
    本文详细解释了Linux中的环境变量函数getenv、putenv、setenv和unsetenv的用法和功能。通过使用这些函数,可以获取、设置和删除环境变量的值。同时给出了相应的函数原型、参数说明和返回值。通过示例代码演示了如何使用getenv函数获取环境变量的值,并打印出来。 ... [详细]
  • Introduction(简介)Forbeingapowerfulobject-orientedprogramminglanguage,Cisuseda ... [详细]
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社区 版权所有