爱爽爽

Proftpd 1.2.10 for Redhat AS 4安装笔记

上一篇 / 下一篇  2007-09-14 21:40:39 / 天气: 阴雨 / 心情: 平静 / 个人分类:Linux

0nxq*}]G0inosin写于:2005/12/8版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明http://www.inosin.cn/blog/study_note/proftpd_install/DOIT博客 f3]7I }Xu Wh6V

关键词:proftpd redhat installDOIT博客j a O6i%Q

目标:web服务器上的ftp服务,不做专门的web服务器,所以特定用户组访问,不做磁盘配额和mysql帐号设置DOIT博客}2T/cg!W

一、proftpd 简介

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

二、软件的相关资源

g!v%u(t`5qpG0官方网站:http://www.proftpd.org/

YS1}"i3sWI$~0镜像站点:http://www.proftpd.de/DOIT博客v9Tr8N~p(o

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

{-X4} Hq*vu0帮助文档: 该软件包中包含。

VI.Zs$?mz,V0FAQ:该软件包中包含。DOIT博客Sm'g5HMf

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

/C;t,]1b4i;p7x9O K0三、软件的安装配置

}*fDa"I!Ub01、下载软件(两个下载地址任选其一)DOIT博客6na#v g5a.i[p}"B

wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.2.10.tar.gzDOIT博客\(n|!HY@kOi"h
wget http://www.proftpd.de/files/proftpd-1.2.10.tar.gz
DOIT博客fh:i5q^c

2、解压编译 $ ./configure 默认下,ProFTPD的文件会被作为 ‘root’ 用户的身份来安装,用户组属性是 /etc/group 中的第一个组,gid为0,通常是 ‘root’ 或 ‘wheel’。如果你希望 采用不同的用户及用户组身份来安装的话,请在运行 configure 脚本前设置环境变量 install_user 和 install_group,此处不再详述,请参考相关文档。

b1c#q Q2Z-zD9a0// 解压缩 [root@localhost /]# tar zvxf proftpd-1.2.10.tar.gz
1[,re5er+E u0// 移动源文件到 /usr/local/src/proftpd-1.2.10目录下
.C d,W^Z |bv#h V0[root@localhost /]# mv proftpd-1.2.10 /usr/local/src/proftpd-1.2.10DOIT博客;o8K4[rm1MR-t1c}*f
// 进入到源代码目录下准备进行安装DOIT博客rH lGk9Gim8H cz
[root@localhost /]# cd /usr/local/src/proftpd-1.2.10
DOIT博客Y V(BY1A

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

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

S-C$X0U*M0–enable-ipv6 支持ipv6。

_.tP ^{i(K*v(Xy H0可以设置的参数很多,可以通过 -help察看需要的,一般情况下,默认设置就可以了。

} o$zHt9U/K5U^0默认情况下,安装过程应该建立了: proftpd的deamon为/usr/local/proftpd proftpd的配置文件,/usr/local/proftpd/etc/proftpd.conf。DOIT博客SW_ QT|*a

#编译安装(安装到/usr/local/proftpd目录下,可随意改变此目录)
Y#E l'b!jU7gq z F0[root@localhost proftpd-1.2.10]# ./configure –prefix=/usr/local/proftpd  
/Z ]C C ?$W%x1~%WO0[root@localhost proftpd-1.2.10]# make  
&{id-`^'q$J-R(g0[root@localhost proftpd-1.2.10]# make install
DOIT博客![H,aZ \/g

3、建立ftp用户组及用户

'l~-Q ~*]'zf0[root@localhost /]# groupadd ftpusers# 增加一个ftpusers组  DOIT博客'{)y1z3A2V@;RN;}\8R
[root@localhost /]# useradd -d /softbak -g ftpusers -s /sbin/nologin softuser # 在ftpusers组增加一个名为softuser的用户,目录设定为/softbak,专门上传软件用DOIT博客4e-]y1p5b`
[root@localhost /]# useradd -d /wwwroot -g ftpusers -s /sbin/nologin webuser # 在ftpusers组增加一个名为webuser的用户,目录设定为/wwwroot,专门上传网页用
DOIT博客 W+W'v.b z9CjH T

4、建立上传目录DOIT博客1O-hTK.j,e*_u1dE

[root@localhost /]# mkdir wwwroot # 在根目录下建立wwwroot目录,作为网站目录DOIT博客T4@'Z2~0_&G}
[root@localhost /]# chgrp -R ftpusers wwwroot # 把wwwroot的归属组改为 ftpusers 组  
x8A#[B B l0[root@localhost /]# chmod -R 775 /wwwroot # 设置权限,ftpusers组对该文件夹具有读写执行的权限,其他用户只有读、执行权限(不可没有执行权限,否则web浏览不了)DOIT博客/m"M'B;D!kGC)q`3w
[root@localhost /]# mkdir softbak #在根目录下建立softbak目录,作为软件目录  
FvstC+^0[root@localhost /]# chgrp -R ftpusers softbak # 把softbak的归属组也改为 ftpusers 组  DOIT博客|[?v&cc0Z
[root@localhost /]# chmod -R 775 /softbak # 设置权限
DOIT博客/ZJ)r6OW

5、基本配置

U|l9s$_/B0[root@localhost /]# vi /usr/local/proftpd/etc/proftpd.confDOIT博客0w+L0[g.q

以下是配置文件详解:

:Hy|c%Z0# 指定FTP Server 的启动类型,一般使用standalone方式比较简单,如果访问量不大,为节省资源考虑用xinetd侦听启动,必须在这里指定。Port 指定FTP的侦听端口,一般使用21端口DOIT博客i*l:Pi(~0~+H;u9hV
ServerName "Inosin’s FTP Server" # 名称,可随意改
7?#Iz ^ X!`E$h`0ServerType standalone # 独立服务器(standalone daemon)DOIT博客 dv!k&S#y2NDN
DefaultServer on # 作为默认服务
s ^ X8JL8W-Z.Z0 
2ve!Da0Fv,_rQ0Port 21 # ftp默认端口  DOIT博客+}!\!F!^N@ AJ
 DOIT博客z:o`z7b t,h:X
Umask 002 # 指定FTP server 进程的Umask 值,002(775)与Linux系统得默认值一致,保证了新建的文件有组读写权限  DOIT博客E]o` |
 
?7b'`dm]s0MaxInstances 30 # 最多有30个proftpd的PID  DOIT博客"p[5`udaZ.E
 DOIT博客OT S`n*H T
# User 和Group 指定proftpd 进程启动时的有效用户ID,处于安全考虑默认的身份是nobody,有一点要指出的是,一般RedHAT Linux 中默认是没有nogroup 这个组的,把Group指定为nobody 即可。  DOIT博客3dy#R:}7D4i'M
User nobodyDOIT博客{){ }@'z Qq*B&_$i;^De
Group nobody # 这里需要改为nobody,原为nogroup,系统没有nogroup组,启动会出现错误  
imp2Z b0 DOIT博客B,c*]x/I3YJ~
# 使用主机本地端时间,而不要使用GMT时间,会引起时间误差
3V5]#k#C1Tm g"?VZ(e@0TimesGTM off
&}g;xV:y@&U0 
+p4D&G'r6T#d;Es~0DefaultRoot ~ ftpusers # 限制ftpusers组的用户在自己的目录下  
@vfi!{R7h\0 DOIT博客H#U:\#FN]6v
AllowOverwrite on # 允许覆盖  
C Z8NN%?4c0 DOIT博客:O~ ww0A I
MaxClients 10 # 最多允许10个用户在线  
r-y/P5BR)r~0J0 
JW`;h~%jf#b/z0C0DisplayLogin welcome.msg # 当使用者登录时,则会显示 welcome.msg 中的欢迎词信息DOIT博客m]-g;n$M5t"i
 
} T9WT G|%~0DisplayFirstChdir .message # 当使用者转换目录,则会显示 .message 中的信息  
w@ IJ|%B5{E3E u0 DOIT博客-Fs*Jdy"z
# Bar use of SITE CHMOD by default
\?PWaE0< limit SITE_CHMOD> DOIT博客7v-eT'm%K3av
  DenyAll
"^1~9D]k0< /limit>  
`-}G"dZv5[~0 DOIT博客-Xm$H4nAr3U
ServerIdent off # 屏蔽服务器版本信息DOIT博客v9?e}y-x+xp_
 DOIT博客VCxkg y"I
MaxLoginAttempts 3 # 最大连接次数DOIT博客:v)LD6Y M o
 DOIT博客)t8f S*\-D'Lm8R Kx%r
WtmpLog off # 是否要把ftp记录在日志中,如果不想可以设置成off屏蔽掉log日志。
h.Y Tt,}4eAq:B,y0 
;\ H/j7r5\!o0TimeoutIdle 600 # 客户端idel时间设置,默认就是600秒  DOIT博客'{ _3t!JZL C:s
 DOIT博客r/f+EZ'UE$D(ane
MaxHostsPerUser 1 "Sorry, you may not connect more than one time" # 每个IP只允许一个连接,对防止ftp帐号还是比较有用的
c;s$v'J"k*Oc&n;qt0P0 DOIT博客8J6JW5q&{h
MaxClientsPerUser 1 "Only one such user at a time" # 每个帐户在每个客户端最多可以同时登陆1次,可以防止多线程软件下载对服务器的破坏DOIT博客4E Y"F@EM
 
k7{E:z*Z^0MaxClientsPerHost 1 "Sorry, you may not connect more than one time" # 同一个客户端只能最多1个帐号可以登陆  DOIT博客0U0?!R5Dm-v3Klr
 DOIT博客L;~&a$R[\UP
RootLogin off # 禁止root帐号登录,默认值,可不写,为安全考虑尽量不要设为 on
x5z&@BM`1X1? ]"_0 DOIT博客uG,P'z!I0i3j
RequireValidShell off # 禁止shell命令
H%Qd8@ i0 
!wvq4t"[7cOLG0TimeoutStalled 300 # 指定一个连接的超时时间  DOIT博客Fk!G}RJs_ B3]
 
u6y'vgu%X H$q0AllowRetrieveRestart on # 下载时,允许断点续传(默认已有,可不设置)DOIT博客l?i"h.@$K0ml
 DOIT博客}h'}/m-aAm
AllowStoreRestart on # 上传时,允许断点续传   # 让proftp支持现在流行的FXP传输方式,默认是不支持的。
?.x A7VU#j'j7XZ0 DOIT博客Gd'l(T9p
AllowForeignAddress on PassivePorts 49152 65534 # 端口也可自己指定喜欢的  
$iR!b6e?3f.y0 DOIT博客I7||!?,q?6R
# 设置只有ftpusers组的用户可以ftp登录
5wC)dl:c0< limit LOGIN>
Lt;Tf K l.P0  DenyALL
[)~?Q0J!d7@2}0  AllowGroup ftpusers
sXB-^A8h/U%_0< /limit>  
vk2| UQ~0 DOIT博客Dz(q*F`G
# 设置帐号webuser拥有/wwwroot目录的所有权限DOIT博客/EKG;R ]1Z
< directory /wwwroot>DOIT博客j8g7U?m
  < limit ALL>DOIT博客4}?y*R-p Q4k
    AllowUser webuser
D%d_hhm.@ jr0  < /limit>
Fn$R}'p9IV:O0< /directory>  DOIT博客(y0Mt(gr~J
 
6w h x(?S })_#A2TZ3h0# 设置帐号softuser拥有/softbak目录的所有权限DOIT博客\UE1e:@0`K?Ef
< directory /softbak>DOIT博客&K1z1B2G!RZIY
  < limit ALL>DOIT博客-V g:ma7hN4@
    AllowUser softuserDOIT博客4a^/SC K q3xv l3D%X
  < /limit>DOIT博客)e MEXN [@ }Z
< /directory>

(wMc(DT2UhM4Y06、Limit限制的动作和对象 我们用到的比较多的可能是Limit的使用,Limit大致有以下动作,基本能覆盖全部的权限了,大家灵活使用就是了。DOIT博客,en[8?4m0a

CMD:Change Working Directory 改变目录DOIT博客(j+Z)hP^9Lns*h
MKD:MaKe Directory 建立目录的权限DOIT博客)N)E.CU ]#tm
RNFR: ReName FRom 更改目录名的权限
w3k1Z^q%R qc5k W0DELE:DELEte 删除文件的权限
k(j"sd0N'J0c0RMD:ReMove Directory 删除目录的权限
!J:DF8IGb0RETR:RETRieve 从服务端下载到客户端的权限DOIT博客U*@ J(SLj8a
STOR:STORe 从客户端上传到服务端的权限
-[&^R7_ K+ERM5R2I0READ:可读的权限,不包括列目录的权限,相当于RETR,STAT等DOIT博客_/A8o+j5`'P
WRITE:写文件或者目录的权限,包括MKD和RMDDOIT博客k!C:cz&X/\$F#b,G
DIRS:是否允许列目录,相当于LIST,NLST等权限,还是比较实用的
\&@.u c] p0ALL:所有权限
M].g$t/I'f)b2Z0LOGIN:是否允许登陆的权限
DOIT博客u8O:g)h:h!AI

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

Nhla^ n[7w A0AllowUser 针对某个用户允许的Limit
@^Xxg4kV [+T0DenyUser 针对某个用户禁止的LimitDOIT博客nz7H.|CIr8sB.x
AllowGroup 针对某个用户组允许的Limit
0IG\)n"v1]w h0DenyGroup 针对某个用户组禁止的LimitDOIT博客\WE\`
AllowAll 针对所有用户组允许的LimitDOIT博客pV#L^G0u` a
DenyAll 针对所有用户禁止的Limit

E G \F,[vzwyu07、关于欢迎文件的设置包含如下参数DOIT博客'LI"yFq/K

%T 目前的时间
-g,N"i0@ d,r"J$rQsm-m0%F 所在硬盘剩下的容量DOIT博客'p6je1D \%@2K
%C 目前所在的目录DOIT博客:F X MlU _Je lA
%R Client 端的主机名称DOIT博客:`n#J r:e
%L Server 端的主机名称
+W0e6[c(rt7F\0%U 使用者帐户名称
d S.{(\ h&Q9Qv0%M 最大允许连接人数
VZ,{ B%xw!c JD/v!T@0%N 目前的服务器连接人数DOIT博客 H-R~(YkN&JLl
%E FTP服务器管理员的 email
5D2Z wG%l/t3`0%i 本次上传的文件数量DOIT博客w.M t!P Y%G%kcB
%o 本次下载的文件数量
$}.hn'R;^X0%t 本次上传+下载的文件数量
DOIT博客+k)w0|!Kd |y

例:

6JL2q'R?e Pn0[root@localhost /]# vi /wwwroot/welcome.msg
Axw3vpp(a0 
,T'z D3e:{;g}a$R3[A k0欢迎您%U, 这是Inosin的Web空间 FTP服务器;
fo:k$I9jj2['j,x3R0目前时间是:%T;
g-f p$h:?$\ } ~0本服务器最多允许%M个用户连接数;DOIT博客&u R8W z.QE2c
目前服务器上已有%N个用户连接数;DOIT博客1Cu_K'P+J ZW
目前你所在的目录是%C;
D8D'^4i,}0目录所在的硬盘还剩下%F字节。
DOIT博客4FEh9yl%V

四、启动及创建启动脚本DOIT博客c/? D-q*|

[root@localhost /]# /usr/local/proftpd/sbin/proftpdDOIT博客.R/Rq1{+]%|

这样proftpd就启动起来了 但每次这样启动很麻烦,我们把它做成服务。 回到proftpd编译的源代码目录中copy脚本文件DOIT博客JsP3C lF"[ v

[root@localhost /]# cp proftpd-1.2.10/contrib/dist/rpm/proftpd.init.d /etc/rc.d/init.d/proftpdDOIT博客 {b g0f m+gQ

修改脚本中proftpd的实际路径

"z)nP4D {!y"l0vi +25 /etc/rc.d/init.d/proftpd
)r7g;U `%O0PATH="$PATH:/usr/local/sbin" => PATH="$PATH:/usr/local/proftpd/sbin"

W$Ze)}z;v-M0这样就可以用

D HX|W'Y5Q;a~g0service proftpd start

^L^"l1k sqgY0启动了 如果想开机直接启动服务,可以用chkconfig配置一下

}rW4^,t&Z-f0[root@localhost /]# chkconfig --add proftpd

`A E,FjkE0重启一下机器试试,ok,一切正常,开始ftp传文件吧!;)DOIT博客;w8x.j|/xH,oJ

五、参考文档:

m[ CT7RB0张微波的《proftpd学习笔记》http://www.5ilinux.com/blog/archives/000082.html

2}gY6d2^9@9Ig0jeffwu翻译的《ProFTPD 1.2.x 安装指南》http://www.inosin.cn/blog/archives/00038.html

SjnYuW7H4R3U0

TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-12-05  
 123456
78910111213
14151617181920
21222324252627
28293031   

数据统计

  • 访问量: 3475
  • 日志数: 22
  • 图片数: 1
  • 建立时间: 2007-09-13
  • 更新时间: 2007-10-02

RSS订阅

Open Toolbar