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 W h6V
关键词: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#vg5a.i[p }"B
wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.2.10.tar.gzDOIT博客\(n|!HY@kOi"hDOIT博客fh:i5q^c
wget http://www.proftpd.de/files/proftpd-1.2.10.tar.gz
2、解压编译 $ ./configure 默认下,ProFTPD的文件会被作为 ‘root’ 用户的身份来安装,用户组属性是 /etc/group 中的第一个组,gid为0,通常是 ‘root’ 或 ‘wheel’。如果你希望 采用不同的用户及用户组身份来安装的话,请在运行 configure 脚本前设置环境变量 install_user 和 install_group,此处不再详述,请参考相关文档。
b1c#qQ2Z-zD9a0// 解压缩 [root@localhost /]# tar zvxf proftpd-1.2.10.tar.gzDOIT博客Y V(BY1A
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
./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博客S W_QT|*a
#编译安装(安装到/usr/local/proftpd目录下,可随意改变此目录)DOIT博客![H,aZ \/g
Y#E
l'b!jU7gq zF0[root@localhost proftpd-1.2.10]# ./configure –prefix=/usr/local/proftpd
/Z ] CC?$W%x1~%WO0[root@localhost proftpd-1.2.10]# make
&{id-`^'q$J-R(g0[root@localhost proftpd-1.2.10]# make install
3、建立ftp用户组及用户
'l~-Q
~*]'zf0[root@localhost /]# groupadd ftpusers# 增加一个ftpusers组 DOIT博客'{)y1z3A2V@;RN;}\8RDOIT博客W+W'v.bz9C jH
T
[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,专门上传网页用
4、建立上传目录DOIT博客1O-hTK.j,e*_u1dE
[root@localhost /]# mkdir wwwroot # 在根目录下建立wwwroot目录,作为网站目录DOIT博客T4@'Z2~0_&G}DOIT博客/ZJ)r6OW
[root@localhost /]# chgrp -R ftpusers wwwroot # 把wwwroot的归属组改为 ftpusers 组
x8A#[ BB l0[root@localhost /]# chmod -R 775 /wwwroot # 设置权限,ftpusers组对该文件夹具有读写执行的权限,其他用户只有读、执行权限(不可没有执行权限,否则web浏览不了)DOIT博客/m"M'B;D!kGC)q`3w
[root@localhost /]# mkdir softbak #在根目录下建立softbak目录,作为软件目录
F vstC+^0[root@localhost /]# chgrp -R ftpusers softbak # 把softbak的归属组也改为 ftpusers 组 DOIT博客|[?v&cc0Z
[root@localhost /]# chmod -R 775 /softbak # 设置权限
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#C1Tmg"?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{E3Eu0 DOIT博客-Fs*Jdy"z
# Bar use of SITE CHMOD by default
\?PW aE0< 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博客VCxkgy"I
MaxLoginAttempts 3 # 最大连接次数DOIT博客:v)LD6Y M o
DOIT博客)t8fS*\-D'L m8R 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博客4EY"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&@B M`1X1? ]"_0 DOIT博客uG,P'z!I0i3j
RequireValidShell off # 禁止shell命令
H%Qd8@i0
!wvq4t"[7cOLG0TimeoutStalled 300 # 指定一个连接的超时时间 DOIT博客Fk!G } RJs_B3]
u6y'vgu%XH$q0AllowRetrieveRestart on # 下载时,允许断点续传(默认已有,可不设置)DOIT博客l?i"h.@$K0ml
DOIT博客}h'}/m-a Am
AllowStoreRestart on # 上传时,允许断点续传 # 让proftp支持现在流行的FXP传输方式,默认是不支持的。
?.xA7VU#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 Kl.P0 DenyALL
[)~?Q0J!d7@2}0 AllowGroup ftpusers
sXB-^A8h/U%_0< /limit>
vk2| U Q~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^/SCK
q3xvl3D%X
< /limit>DOIT博客)e
MEXN [@ }Z
< /directory>
(wMc(D T2UhM4Y06、Limit限制的动作和对象 我们用到的比较多的可能是Limit的使用,Limit大致有以下动作,基本能覆盖全部的权限了,大家灵活使用就是了。DOIT博客,e n[8?4m0a
CMD:Change Working Directory 改变目录DOIT博客(j+Z)hP^9Lns*hDOIT博客u8O:g)h:h!AI
MKD:MaKe Directory 建立目录的权限DOIT博客)N)E.CU]#tm
RNFR: ReName FRom 更改目录名的权限
w3k1Z^q%Rqc5kW0DELE:DELEte 删除文件的权限
k(j"sd0N'J0c0RMD:ReMove Directory 删除目录的权限
!J:DF8IGb0RETR:RETRieve 从服务端下载到客户端的权限DOIT博客U*@
J(S Lj8a
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:是否允许登陆的权限
针对上面这个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 目前的时间DOIT博客+k)w0|!Kd
|y
-g,N"i0@ d,r"J$rQsm-m0%F 所在硬盘剩下的容量DOIT博客'p6je1D \%@2K
%C 目前所在的目录DOIT博客:F
XM lU
_Je lA
%R Client 端的主机名称DOIT博客:`n#Jr:e
%L Server 端的主机名称
+W0e6[c(r t7F\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 本次上传+下载的文件数量
例:
6JL2q'R?ePn0[root@localhost /]# vi /wwwroot/welcome.msgDOIT博客4FEh9yl%V
Ax w3v pp(a0
,T'zD3e:{;g}a$R3[A k0欢迎您%U, 这是Inosin的Web空间 FTP服务器;
fo:k$I9jj2['j,x3R0目前时间是:%T;
g-f p$h:?$\ }~0本服务器最多允许%M个用户连接数;DOIT博客&uR8W z.QE2c
目前服务器上已有%N个用户连接数;DOIT博客1Cu_K'P+J ZW
目前你所在的目录是%C;
D8D'^4i,}0目录所在的硬盘还剩下%F字节。
四、启动及创建启动脚本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
g0fm+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这样就可以用
DHX|W'Y5Q;a~g0service proftpd start
^L^"l1k sqgY0启动了 如果想开机直接启动服务,可以用chkconfig配置一下
}rW4^,t&Z-f0[root@localhost /]# chkconfig --add proftpd
`AE,FjkE0重启一下机器试试,ok,一切正常,开始ftp传文件吧!;)DOIT博客;w8x.j|/x H,o J
五、参考文档:
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
SjnY uW7H4R3U0TAG:

