`
izuoyan
  • 浏览: 9221673 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Linux下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 本次上传+下载的文件数量


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



  欢迎您%U, 这是T-force的测试FTP服务器;

  目前时间是:%T;

  本服务器最多允许%M个用户连接数;

  目前服务器上已有%N个用户连接数;

  目前你所在的目录是%C;

  目录所在的硬盘还剩下%F字节。


  anonymous 配置块


  在配置文件中anonymous配置块是非常重要的一部分,全局帐户的权限配置一般都由它来控制,下面分析一个比较常见的例子



  # A basic anonymous configuration,

  no upload directories.

  If you do not

  # want anonymous users,

  simply delete this entire

   section.

  

  #指定匿名用户登录目录

  User ftp

  #指定本块设置的用户

  Group ftp

  #指定本块设置的用户属组

  # We want clients to be able to login

  with "anonymous" as well as "ftp"

  UserAlias anonymous ftp

  #设定用户的别名

  AnonRequirePassword on

  #登陆需要密码

  # 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

  

  

  AllowAll

  

  

  



  anonymous配置块中的重点是通过Limit对指定目录进行比较详尽的权限管理,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等权限,还是比较实用的



  注:在测试是否可以下载时,不能用长度为0的空文件去测试,要用一个有内容的文件(文件大小不能为0k)。


  针对上面这个Limit所应用的对象,又包括以下范围



  AllowUser 针对某个用户允许的Limit

  DenyUser 针对某个用户禁止的Limit

  AllowGroup 针对某个用户组允许的Limit

  DenyGroup 针对某个用户组禁止的Limit

  AllowAll 针对所有用户组允许的Limit

  DenyAll 针对所有用户禁止的Limit



  五.一种简单实用的配置管理方式:


  proftpd和mysql组合可以完成比较庞大而且完备的权限控制,但是也同样增加了管理和维护的复杂性,在这里我介绍一种简单易行的配置方法,适用于100个用户以下的应用。这种方法的核心在于巧妙的运用了设置gid位,读者最好找资料了解一下相关的知识。这种方法的配置管理工作相当少,也相当的简单,同时还可以保持一个清晰的权限系统结构。


  1.思路


  首先需要明确的概念是proftpd的用户与linux系统的用户的关系:linux系统的用户即为proftpd的用户。proftpd的权限控制是基于Linux系统得权限控制之上的,即用户对于某个文件或目录,必须先有Linux系统的权限,在此基础上proftpd才能设置其特有的一些权限。其实一般来说Linux自有的权限系统就是一个比较完善的权限系统了,我们完全可以只利用这个权限系统,就足可以满足我们的要求了。


  我们设置一个ftp管理员ftpadmin属于ftpadmin组,ftp的根目录/ftp是ftpadmin的个人根目录,这样ftpadmin可以完成日常的管理。通过设置/ftp的gid可以保证新上传的文件是属于ftpadmin用户,加上再设置umask值002保证上传文件的组读写权限,这样管理员就可以对其管理下的文件进行管理,而同时保证了不改变该文件的属主。


  ftp的用户,我们只需新建一个Linux用户,而把他的用户目录制定在/ftp之下就可以。操作起来很简单。


  2.建立ftp管理员:ftpadmin



  [root@localhost root]groupadd ftpadmin #ftpadmin为新添加的组的名字

  [root@localhost root]useradd -d

  /ftp -g ftpadmin -s /sbin/nologin admin

  [root@localhost root]chmod 2775 /ftp



  同时保证ftpadmin 是 /ftp的属主,ftpadmin 是/ftp的组属主。这样就保证了ftpadmin对要管理的/ftp目录有全部的权限。


  -s /sbin/nologin 指定用户不能从shell登录,就是说只能从ftp方式登录,这样是出于安全的考虑。


  修改/usr/local/etc/proftpd.conf



  nobody ftpadmin

  nogroup ftpadmin

  Umask 002

  #允许所有者,组用户对ftp进行管理。



  掩码Umask改为 002 。即组成员和所有者都可对文件夹进行增删,改等操作。其他用户可读可执行,但不可写。这样,ftpadmin用户可以通过同组的身份对所有的文件进行读写,同时也不改变其内容的原有权限。也就说,不改变这个文件夹下的文件的所有者身份,但同时又可以管理这些文件。


  chmod 2775 /ftp,通过设置了文件夹的gid,以后在这个文件夹下写的所有文件,不管其所有者是谁,文件的组必定是ftpadmin(因为/ftp的组属于ftpadmin),都合理的被纳于ftpadmin的管理之下。


  3.添加用户:user1



  useradd -d /ftp/user1 -g ftpadmin -s

  /sbin/nologin user1



  这样user1就对/ftp/user1的目录有完整的权限,而作为管理员也可以通过组权限对目录进行管理。


  每当需要添加用户的时候,只需方便的简单的添加一个Linux的用户就可以了。


  4.对应的配置文件:proftpd.conf中的重要条目



  Umask 002

  DefaultRoot



  Umask 002 保证了新建的文件有组读写权限。


  DefaultRoot ~ 保证 每个用户登录后被锁定在自己的目录里,看不到其他用户的目录。


  参考资料:


  [1]:http://www.proftpd.org/


  [2]:http://ipv6.bupt.edu.cn/

分享到:
评论

相关推荐

    Linux下proftpd的安装配置与管理方法

    Linux 下 ProFTPD 的安装配置与管理方法 ProFTPD 是一款开放源码的 FTP 服务器软件,它是原来世界范围使用最广泛的 wu-ftpd 的改进版,修正了 wu-ftpd 的许多缺陷,在许多方面进行了重大的改进,其中一个重要变化...

    linux下简易Ftp服务器搭建:proftpd的安装与最简配置

    本篇文章将详细介绍如何在Linux系统上安装和配置开源FTP服务器软件ProFTPD,以实现一个简易的FTP服务。 ProFTPD是一款强大的、可高度自定义的FTP服务器,支持多种操作系统,包括Unix/Linux、FreeBSD、OpenVMS等。它...

    AIX_5L下proftpd安装配置

    #### 文件集准备与安装流程 首先,需准备两个关键的文件集:`coreutils-5.2.1-2.aix5.1.ppc.rpm` 和 `proftpd-1.2.8-1.aix5.1.ppc.rpm`。这些文件集可从AIX Toolbox for Linux光盘获取,或通过IBM官方提供的在线...

    Linux下配置FTP服务(Proftpd)

    总的来说,配置Linux下的FTP服务,特别是Proftpd,涉及到多个步骤,包括软件安装、用户和目录管理、配置文件修改以及权限设置。正确配置后,我们可以实现对FTP服务器的精细控制,满足各种业务需求,同时确保服务器的...

    proftpd安装.rar

    标题中的“proftpd安装.rar”表明这是一个关于在CentOS 7.9系统上安装ProFTPD服务器的压缩包文件,包含了安装过程、配置文件、虚拟...通过详细阅读提供的文档和配置文件,可以深入了解ProFTPD的运行机制和管理方法。

    proftpd LINUX-FTP服务包

    本压缩包"proftpd LINUX-FTP服务包"包含了安装和配置ProFTPD所需的所有文件,尤其是其中的"proftpd-1.3.1"版本,是ProFTPD的一个稳定版本。 **ProFTPD介绍** ProFTPD是一个开源的FTP服务器,支持多种操作系统,包括...

    proftpd 1.3.2 for linux

    在Linux环境中,安装ProFTPD 1.3.2b的完整流程通常包括下载源码包,解压,运行上述的`./configure`, `make`, `make install`命令,然后可能还需要手动配置服务器的启动脚本(如Systemd或init.d),并启动服务。...

    Linux ProFTPd安装与卸载详细介绍

    总之,Linux ProFTPd的安装和卸载是一个相对简单的过程,主要涉及使用包管理器处理安装和卸载操作,以及编辑配置文件以满足特定需求。正确配置ProFTPd不仅能确保服务器的安全性,还能提供稳定且高效的FTP服务。希望...

    网络技能-1(linux安装于配置、用户管理、DNS、FTP、mail)

    这个压缩包包含的五个PDF文件涵盖了Linux操作系统安装与配置、用户管理、DNS服务、FTP服务以及邮件服务器的设置,这些都是构建和管理网络基础设施的基础知识。下面将分别对这些主题进行详细阐述。 1. **Linux安装与...

    网络实验-Linux下服务器配置实验报告

    【网络实验-Linux下服务器配置实验报告】 实验报告主要涵盖了在Linux环境中配置各种服务器,包括DHCP、MAIL、DNS和FTP服务器。以下是针对DHCP服务器配置的详细步骤和相关知识点: 1. **DHCP服务器组建** - **实验...

    proftpd支持mysql和quota配额

    根据给定的文件信息,我们将深入探讨如何在Linux环境下配置ProFTPD服务器,使其支持MySQL数据库和磁盘配额功能。ProFTPD是一款强大的FTP服务器软件,它提供了丰富的特性和高度的可定制性,适用于各种复杂的网络环境...

    proftpd + mysql + quota配置完全指南

    根据提供的文件信息,本文将详细解释如何配置 proftpd、MySQL 和 quota 来实现一个功能齐全且具有存储配额管理的 FTP 服务器。这将包括软件版本的选择、安装过程、配置文件详解以及常见问题解答等内容。 ### 1. ...

    ProFtpd 配置

    ### ProFTPD配置详解 #### 一、简介 ProFTPD是一款非常强大的FTP服务器软件,主要应用于类Unix系统,如Linux、FreeBSD等。作为一款遵循GPL协议的开源软件,ProFTPD允许用户自由地使用、修改其源代码。本文旨在帮助...

    linux下用Proftpd搭建ftp服务器及配置方法

    总的来说,通过Proftpd搭建FTP服务器,需要关注的主要知识点包括:软件的下载与安装、配置文件的解读和编辑、服务器运行用户和组的设定、权限控制规则的制定,以及错误排查和处理。确保正确配置这些参数,可以建立一...

    Linux下XAMPP安装教程

    Linux 下 XAMPP 安装教程 XAMPP 是一个功能强大的集成软件包,包含 Apache、MySQL、PHP、PERL 等多种服务器软件。它可以在 Windows、Linux、Solaris 三种操作系统下安装使用,支持多语言:英文、简体中文、繁体中文...

    Ftp服务器在windows和linux系统的安装与使用

    FTP(File Transfer ...总结,FTP服务器在Windows和Linux系统的安装与使用主要涉及服务器软件的安装、配置、权限设定及防火墙规则调整。了解这些基本步骤,你就能搭建起安全且稳定的FTP服务器,实现文件的便捷传输。

    proftpd-1.3.7a.tar.gz

    **ProFTPD 1.3.7a 安装包详解** ... `proftpd-1.3.7a.tar.gz`为Linux用户提供了一个功能全面且易于配置的FTP服务器解决方案。通过深入理解和熟练使用ProFTPD,管理员可以搭建出满足各种需求的FTP服务环境。

    linux proftpd-1.3.4c安装配置实例

    本实例将详细讲解如何在Linux系统上安装和配置ProFTPD的1.3.4c版本。 首先,我们需要从官方源下载软件包。通过执行以下命令,我们可以从ProFTPD的FTP服务器获取1.3.4c的源代码: ```bash [root@chenghy ~]# cd /...

Global site tag (gtag.js) - Google Analytics