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

ProFTPd服务器的安装及使用

一.proftpd简介proftpd是一款开放源码的ftp服务器软件,它是原来世界范围使用最广泛的wu-ftpd的改进版,它修正了wu-ftpd的许多缺陷,在许多方面进行了重大的改进,其中一个重要变化就是它学习了Apache的配置方式,使proftpd的配置和管理更加简单易懂。本

一. proftpd 简介


  proftpd是一款开放源码的ftp服务器软件,它是原来世界范围使用最广泛的wu-ftpd的改进版,它修正了wu-ftpd的许多缺陷,在许多方面进行了重大的改进,其中一个重要变化就是它学习了Apache 的配置方式,使proftpd的配置和管理更加简单易懂。本文将介绍它在Red hat Linux 9中最基本的安装和配置。


  二.软件的相关资源


  官方网站:http://www.proftpd.org/


  源码软件包:proftpd是开源的软件,可以去其官方网站下载。目前最新稳定版本为1.2.10。


  帮助文档: 该软件包中包含。


  FAQ:该软件包中包含。


  配置文件样例:该软件包中包含。


  三.软件的安装


  1.安装


  由其官方网站中下载其源码软件包proftpd-1.2.10. tar.gz。接下来我将对安装过程的一些重要步骤,给出其解释:


  [root@localhost root]

  #tar xzvf proftpd-1.2.10. tar.gz

  [root@localhost root]

  #cd bind-9.3.1

  [root@localhost bind-9.3.1]

  #./configure

  [root@localhost bind-9.3.1]

  #make

  [root@localhost bind-9.3.1]

  #make install



  tar xzvf bind-9.3.1.tar.gz 解压缩软件包。


  ./configure 针对机器作安装的检查和设置,大部分的工作是由机器自动完成的,但是用户可以通过一些参数来完成一定的设置,其常用选项有:


  ./configure --help 察看参数设置帮助。


  --enable-ipv6 支持ipv6。


  可以设置的参数很多,可以通过 -help察看需要的,一般情况下,默认设置就可以了。


  默认情况下,安装过程应该建立了:


  proftpd的deamon为/usr/local/sbin/proftpd


  proftpd的配置文件,/usr/local/etc/proftpd.conf。


  2.启动:


  [root@localhost root]

  # /usr/local/sbin/proftpd -c

  /usr/local/etc/proftpd.conf



  -c选项用来指定配置文件的位置,不指定的话默认位置是 /usr/local/etc/proftpd.conf 。


  正常情况下proftpd应该启动了,ps aux 应该可以查到proftpd的进程,或netstat -an 也可以看到21端口的服务已经起来了。(ftp默认端口)


  如果要设置开机自启动ftp server,只需在/etc/rc.d/rc.local中加入一行


  /usr/local/sbin/proftpd


  #!/bin/sh

  #

  # This script will be executed

  *after* all the other init scripts.

  # You can put your own

  initialization stuff in here if you don't

  # want to do the full Sys V style init stuff.

  touch /var/lock/subsys/local

  /usr/local/sbin/proftpd



  四.软件的配置


  1.初始配置文件


  默认配置文件的位置为:


  /usr/local/etc/proftpd.conf (如果文件不存在可以从压缩包中把配置文件样例拷贝过来即可)下面逐项分析其中一些常选项:(#后面的部分是注释)


  # This is a basic ProFTPD

  configuration file

  (rename it to

  # 'proftpd.conf' for actual use.

  It establishes a single server

  # and a single anonymous login.

  It assumes that you have a user/group

  # "nobody" and "ftp" for normal

  operation and anon.


  ServerName       "

  ServerType

  standalone

  DefaultServer

  on

  # Port 21 is the standard FTP port.

  Port 21


  ServerType 指定FTP Server 的启动类型,一般使用standalone方式比较简单,如果访问量不大,为节省资源考虑用xinetd侦听启动,必须在这里指定。Port 指定FTP的侦听端口,一般使用21端口



  # Umask 022 is a good standard

  umask to prevent new dirs and files

  # from being group and world writable.

  Umask       022


  # To prevent DoS attacks, set the

  maximum number of child processes

  # to 30. If you need to allow

  more than 30 concurrent connections

  # at once, simply increase this value.

  Note that this ONLY works

  # in standalone mode, in inetd mode

  you should use an inetd server

  # that allows you to limit maximum

  number of processes per service

  # (such as xinetd).

  MaxInstances    30



  Umask 指定FTP server 进程的Umask 值,022与Linux系统得默认值一致。


  MaxInstances 指定 FTP server 的最大连接数。


  # Set the user and group under

  which the server will run.

  User     nobody

  Group     nogroup

  # To cause every FTP user to be

  "jailed" (chrooted) into their home

  # directory, uncomment this line.

  #DefaultRoot ~

  DefaultRoot



  User 和Group 指定proftpd 进程启动时的有效用户ID,处于安全考虑默认的身份是nobody,有一点要指出的是,一般Red Linux 9.0 中默认是没有nogroup 这个组的,把Group指定为nobody 即可。


  DefaultRoot 选项限制Linux 系统用户通过FTP方式登录时将被限制在其home 目录下。



  # Set the maximum number of seconds

  a data connection is allowed

  # to "stall" before being aborted.

  #TimeoutStalled         300


  AllowRetrieveRestart       on

  AllowStoreRestart        on


  # Normally, we want files to be overwriteable.


  AllowOverwrite        on



  TimeoutStalled 指定一个连接的超时时间。


  AllowRetriveRestart 和AllowStroeRestart 指定允许断点续传。



  User       ftp

  Group      ftp


  # We want clients to be able to

  login with "anonymous"

  as well as "ftp"

  UserAlias    anonymous ftp

  # 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


  DenyAll




  这一部分,将在后面详细介绍。


  2.配置文件结构分析


  #全局设置

  设置项目1 参数1

  设置项目2 参数2


  #某个目录的设置


  ...

  ...



  #关于匿名登陆的设置


  ...

  ...


  ...

  ...




  常用全局设置


  DefaultRoot ~ # 限制每个FTP用户在自己的目录下,不可查看上一级目录


  AllowRetrieveRestart on #下载时,允许断点续传


  AllowStoreRestart on #上传时,允许断点续传


  ServerIdent off #屏蔽服务器版本信息


  TransferRate STOR|RETR 速度(Kbytes/s) user 使用者 #设定用户传输速率


  MaxHostsPerUser 1 #每个帐户最多允许来源ip为1个, 对防止ftp帐号还是比较有用的。


  MaxClientsPerUser 1 #每个帐户在每个客户端最多可以同时登陆1次,可以防止多线程软件下载对服务器的破坏


  MaxClientsPerHost 1 #同一个客户端只能最多1个帐号可以登陆


  WtmpLog on #是否要把ftp记录在日志中,如果不想可以设置成off屏蔽掉log日志。


  TimeoutIdle 600 #客户端idle时间设置,默认就是600秒


  DisplayLogin welcome.msg #设置ftp登陆欢迎信息文件


  RootLogin on #允许root用户登录,默认是不允许的,安全起见不推荐此选项。


  欢迎词设置


  关于欢迎文件的设置包含如下参数:


  %T 目前的时间


  %F 所在硬盘剩下的容量


  %C 目前所在的目录


  %R Client 端的主机名称


  %L Server 端的主机名称


  %U 使用者帐户名称


  %M 最大允许连接人数


  %N 目前的服务器连接人数


  %E FTP服务器管理员的 email


  %i 本次上传的文件数量


  %o 本次下载的文件数量


  %t 本次上传+下载的文件数量


  知道这些参数,可以写出一个友好的欢迎语文件,例如:


  欢迎您%

  1.隐藏ProFTPD服务器版本信息

    通常软件的BUG信息是和特定版本相关的,因此版本号是黑客寻求最有价值的信息。隐藏ProFTPD版本号比较简单,修改配置文件:/etc/Proftpd.conf:

ServerIdent off

    2.伪装ProFTPD服务器

    Windows下的FTP服务多是Serv-U,可以把ProFTPD伪装为Serv-U,方法是修改配置文件proftpd.conf,添加如下内容:

ServerIdent on \"Serv-U FTP Server v5.0 for WinSock ready...\"

存盘退出后,重新启动proftpd服务,登录到修改了提示信息的FTP服务器进行测试:

C:\\>ftp 192.168.0.1

Connected to 192.168.0.1.

220 Serv-U FTP Server v5.0 for WinSock ready...

User (192.168.0.1:(none)):

331 Password required for (none).

Password:

530 Login incorrect.

Login failed.

ftp > quit

221 Goodbye.

    这样从表面上看,服务器就是一个运行着Serv-U的Windows了。

    3. 使用非root权限运行ProFTPD

    以非root权限运行ProFTPD 。修改配置文件:/etc/Proftpd.conf:

User nobody      #设置FTP服务以nobody运行

Group nogroup        #注意:原来是“Group nobody”,一定要改为“Group nogroup ”

上面的配置表示以nobody用户身份运行ProFTPD服务器 。使用nobody身份运行能够降低缓冲区溢出攻击所带来的危险。

    4.监控ProFTPD服务器运行情况

    通常新部署一个ProFTPD服务器之后需要进行一段时间的监控:记录FTP连接记录、谁连接到我的FTP服务器。Proftpd本身附带了几个命令可以使用。

    (1) 记录FTP连接数

    使用usr/local/bin/ftpcout命令,可以显示FTP服务器连接用户数量信息。 我们还可以使用watch命令配合使用,运行下面命令:

watch -n 360 /usr/local/bin/ftpcount

    这个命令每三百六十秒显示一次连接用户数量的信息。

    (2) 查找谁与FTP服务器连接

    使用usr/local/bin/ftpwho命令可以显示谁连接到FTP服务器。一个简单的输出如下:

Master proftpd process 8322:

8387 0m1s proftpd: sheila - reboot.intevo.com: IDLE

8341 3m59s proftpd: kabir - k2.intevo.com: IDLE

- - 2 users

    以上输出显示有两个用户(sheila和kabir)从不同的计算机连接到FTP服务器,输出内容还包括:为这些用户服务的ProFTPD的进程和主ProFTPD的进程ID。


推荐阅读
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • 本文介绍了在Win10上安装WinPythonHadoop的详细步骤,包括安装Python环境、安装JDK8、安装pyspark、安装Hadoop和Spark、设置环境变量、下载winutils.exe等。同时提醒注意Hadoop版本与pyspark版本的一致性,并建议重启电脑以确保安装成功。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • Ubuntu 9.04中安装谷歌Chromium浏览器及使用体验[图文]
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
author-avatar
思路
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有