收藏文章 楼主
Linux下proftpd的安装配置与管理方法
网友【Ranger】 2005-05-23 02:47:27 分享在【时代发展的印记】版块    1    1

分享在 meiguo.com 上的图片

分享在 meiguo.com 上的图片
一. proftpd 简介。

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

二.软件的相关资源。

官方网站: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]:proftpd.org/

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

作者:王洋
meiguo.com 发布人签名/座右铭谁还没年轻过呢?呵呵呵
大家都在看
楼主新近贴
回复/评论列表
默认   热门   正序   倒序
meiguo.com 创始人

emotion

1   2005-05-23 02:47:27  回复

回复/评论:Linux下proftpd的安装配置与管理方法

暂无用户组 升级
退出
等级:0级
美果:
美过
精华推荐
  1. 持中国大陆护照在申请美国签证的注意事项更新(2025年8月版本)
  2. 房子属于你,但你得付费受他们管着!关于美国HOA
  3. 加州州长竟然模仿川普总统的风格发帖,粉丝数和支持率“都涨了”!
  4. 不输常春藤!盘点学费低、薪资高的25所美国公立大学
  5. 川普家族竟然靠它狂揽45亿美金!操盘手是赵长鹏?
  6. 相差3米!星舰试飞“精准溅落”展现技术突破
  7. 植物油更健康?动物油脂摄入或将加速肿瘤生长
  8. 川普总统的态度突变,暗示乌克兰应该反击俄罗斯本土?
  9. 白宫开通了TikTok 账号,传播政策信息!
  10. 疯狂打压华人精英,勒令华人CEO辞职… 川普政府的致命错误?
  11. 先交押金!美国重启了“签证保证金”试点计划
  12. 美国市场的智能手机“印度制造”的份额激增
  13. 麦当劳CEO声称美国品牌的声誉在全球下滑
  14. 美国年轻人的“中国观”悄然转变
  15. 中国留学生在入境美国时遭遇驱逐,禁止五年内再入境!
  16. SpaceX的星舰“第十次试飞”成功了
  17. YouTube“反诈频道”助力警方,破获6500万美元诈骗案!
  18. 选择西雅图、圣地亚哥还是洛杉矶?全面对比“三城生活”
  19. 华人留学生“索赔1亿美元控诉”大学期间的农药伤害
  20. 休斯顿机场“小黑屋内的铝箔纸”:中国留学生遭遇遣返的36小时煎熬
  21. 美国“真放宽”了对中国留学生的入境政策?
  22. 启程回国:美元很香,但回家的路更香!
  23. 敌友即友?马斯克和扎克伯格开始接触,图谋合伙收购OpenAI?
  24. 从近期的中国留学生在美国入境的悲惨遭遇说起
  25. 美国华裔二代坦言:中国发展现状,让父辈移民后悔了!
  26. 从美国回到中国的,基本都会被问及这些问题!
  27. 马斯克“xAI”起诉前工程师“泄露机密”
  28. 中国留学生在入境美国时遭遇盘查,中方大使馆发布安全提醒!
  29. 蔡文胜的2025大动作之五,香港投资版图在持续扩张!
  30. 为激励员工,OpenAI打算豪掷96亿美元!
  31. Niche发布2026全美最佳大学榜单 MIT重回榜首
  32. 华人科学家身陷“杀猪盘”,短短数月就被掏光250万美元积蓄!
  33. 全美房地产市场在趋向中性,区域分化明显!
  34. 工作日没空?周末集中运动同样有益健康!
  35. ICE抓捕的非法移民中,中国人数量激增?
  36. 2025年度的美国公立高中排名发布,咱只关注前三!

美国动态 美果搜索

Your IP: 216.73.216.36, 2025-09-11 22:34:34

Processed in 0.10475 second(s)

头像

用户名:

粉丝数:

签名:

资料 关注 好友 消息
已有0次打赏
(1) 分享
分享
取消