快捷搜索:   nginx

Linux环境下wu-ftp服务的配置

FTP:文件传输协议,客户/服务器模式

一、安装WU-FTPD

#rpm -ivh wu-ftpd*.rpm
#tar zxvf wu-ftpd*.tar.gz
#cd wu-ftp*
#./configure
#make
#make install

如果没有指定安装目录,那么其执行文件默认会分别安装在/usr/bin和/usr/sbin 中。

二、启动WU-FTPD

cd 到/etc/xinetd.d/目录

打开wu-ftpd文件,将其中的disable = yes 改为disable = no。

然后重新启动xinetd服务:

#/etc/rc.d/init.d/xinetd restart
三、确认FTP是否启动
#telnet localhost 21
Trying 127.0.0.1
connected to rh
escape character is '^]',
220 rh.china.com FTP server (version wu-2.6.1) mon jul 24 01:59:25 EDT 2000)ready.

^] //按ctrl+]号中断。
telnet>q //按Q键退出。

四、匿名FTP的设置与组织

/etc/ftpaccess //WU-FTPD 最重要的设定文件
/etc/ftpconversions //设置FTP匿名用户传输文件时,可对文件做tar,压缩,解压缩等处理。
/etc/ftpgroups //限定哪些用户组不能登陆到FTP服务器。
/etc/ftphosts //限定哪些网络地址的机器不能连接到FTP服务器
/etc/ftpusers //限定谁不能登陆FTP服务器。
WU-FTPD的可执行程序
/usr/bin/ftpcount //查询目前各类的上线用户人数。
/usr/bin/ftprestart //重新激活FTP
/usr/bin/ftpshut //产生shutmsg文件,并暂停FTP服务。
/usr/bin/ftpwho //查询联机情况
放置上,下载文件的目录
/var/ftp

为了增加系统的安全性,可以使用adduser添加FTP服务器资源的管理者,如:ftpadm,并将ftpadm加入到adm组,这样当别人对FTP有所建议时,可以发email给ftpadm,而不必凡事都要root出马。

修改 /etc/group内容应该如下:

adm:x4:root,adm,daemon,ftpadm
然后:
#adduser ftpadm

/var/ftp/bin目录

因为匿名用户看不到除/var/ftp以外的东西,所以必须提供足够的文件供匿名FTP使用,默认/var/ftp是FTP用户的根目录,/var/ftp/bin目录

放置一些常用的FTP命令,如:ls,tar,gzip,compress等执行文件,此目录权限应该是111。

/var/ftp/etc目录

这个目录放置一些匿名FTP用户需要的设置文件,如passwd,group。当匿名用户执行ls -l时,FTP服务器的文件、目录才会显示拥有者的名称和组而不是出现数字。此目录的权限是111。

/var/ftp/pub目录

放置下载文件的起点,通常在pub目录下,会将文件资源特性分类,再建立子目录,由管理员自行规划。

/var/ftp/upload目录

上传目录。系统默认不提供上传目录,如果需要做文件上传,要自己建立此目录,以提供匿名FTP用户上传文件,为了避免病毒,一个好的管理员会筛选upload里的文件和目录,一切都没有问题后,才将上传的文件移至下载区。一般设置upload目录的权限是:chmod 733

/var/ftp/upload/

五、限制登入的用户和主机

将可登入的用户分为3类,分别是real,anonymous,guest。

real:

在此服务器拥有帐号的用户,并以他的帐号登陆,此类帐户默认的登入的目录是其专属目录,但只要他拥有某目录的读取权限,即使该目录不在其专属目录中,也能切换到哪个目录。

anonymous:

指的是在此服务器上没有帐户的用户,可以用anonymous及电子邮件地址当作帐号名称和密码,以匿名方式登入服务器,登入后的根是/var/ftp,此类用户不能切换到除/var/ftp以外的目录。

guest:

来宾帐号。在某些情况下,管理员可能只希望某些拥有帐号的用户登入后,只能存取专属目录下的文件,而不得存取专属目录以外的文件,因此管理员可以利用ftpaccess设定文件中的 guestuser或guestgroup参数指定属于这类的用户有哪些。

设定不可以登入的用户

/etc/ftpusers设定文件用来设定不允许哪些用户登入,方法是每个用户占一行。

修改/etc/ftphosts设定文件

该文件是用来设定允许或拒绝用户从不同的地址登入,有allow和deny两种设定格式。

1允许特定用户从指定地址登入 allow

格式如下:

allow <帐号名称> <主机地址> ...例如,允许test用户从*.china.com网域登陆,
allow test *.china.com

2拒绝特定用户从指定地址登入 deny

格式如下:

deny <帐号名称> <主机名称> ...例如,不允许test用户从202.198.16.8地址登陆,
deny test 202.198.16.8

六、服务器环境设定(/etc/ftpaccess文件)

指令

class

class 用来定义用户工作组,并指定属于这工作组的是哪些类别的用户,或来自哪个阻击地址,同时我们可以在一个ftpaccess文件中定义多个工作组,格式如下:

class <工作组名称><用户类别><用户所在的主机地址>

工作组名称:此工作组名称,由管理员定义

用户类别: 可以使用的类别是real,anonymous,guest。

主机地址:登入用户所在的主机的IP或域名,此处可明确指明主机地址,或采用通配符*也可以。

下例为缺省值:

class all real,guest,anonymous *
//此定义的工作组名称是all,并设定此工作组成员为从任何地方登入的所有类别的用户。
例如,class group1 real *
 class group2 real,guest,anonymous *.china.com 203.84.200.*

email

设定FTP服务器管理员的E-mail地址,当WU-FTPD要显示管理者email地址时,即会显示此处的设定格式:

email 
例如:
email [email protected]

练习:

1启动FTP

2建立用户帐户aaa和bbb,设置不允许bbb登陆

3建立工作组group1,定义此工作组成员是从192.168.9.0网络登陆的real,和anonymous类别的用户

guestuser

指定属于guest类别的用户

例如(格式):

guestuser aaa bbb

guestgroup

用来指定属于guest 类别的工作组有哪些,下例将指定属于guestgp工作组的用户,都属于guest类别:guestgroup guestgp //guestgp工作组要先建立才行。

loginfails

设定允许用户最多登入失败的次数,格式如下:

loginfails <登入次数> //登入次数指当用户输入了错误的帐号和密码超过了设定的登入次数之后,即不再允许用户再尝试登入。

例如:

loginfails 3

readme

用来设定当用户登入FTP后,或第一次切换某目录时,会出现提示信息提醒用户自行读取说明文件,其格式如下:

readme <说明文件路径><时机><工作组名称>

说明文件路径:

设定说明文件的位置,此处设定值可以使用通配符*

时机:

设定要显示提示信息的时机,使用login选项,表示用户登入后;使用cwd=<路径>选项,表示用户第一次切换到该目录时。

工作组名称:

只针对指定的工作组,才显示提示信息。

练习:

设定:

readme README* login //当用户登入FTP时,系统会提示用户读取同一目录下的README*文件在user的专属目录下建立以README文件,或建立以README名称开头的文件,并输入些内容。

重新启动xinetd服务

/etc/rc.d/init.d/xinetd restart

在shell状态以user身份连接ftp server。会有提示你读取README文件

例二

设定readme README* cwd=* //表示当用户地一次切换到任一目录时,系统会提示用户读取同一目录下的README*文件。

例三

设定readme README* CWD=/LIB GROUP1 //表示当group1工作组的用户第一次切换到/lib目录时,系统才会提示该用户读取README*文件。

message

是用来设定当用户登入后,或第一次切换到某目录时,系统所要显示的欢迎信息,其格式如下:

message <信息文件路径><时机><类别>

信息文件路径:

设定欢迎信息文件存放的位置,此位置的路径是相对于/var/ftp目录的。

时机:

设定要显示提示信息的时机。使用login选项,表示用户登入后,cwd=< 路径>则表示用户第一次切换到该目录时,只有当用户地一次切换到该目录时,才显示此提示信息,若再次切换回到同一目录则不再显示信息。




工作组名称:

只针对指定的工作组,才显示欢迎信息。

可使用的变量

%T
FTP服务器主机的时间
%F
目前目录分区所剩下的空间大小
%C
目前所在的FTP目录名称
%E
FTP服务器管理员的EMAIL地址
%R
用户原来主机的名称(远程的)
%L
FTP服务器的主机名称
%U
登入的用户名称
%M
同一工作组可允许最多几个用户登入
%N
同一工作组目前已经登入的用户数目
默认值是:
message /welcome.msg login //表示当匿名用户登入时,
执行/var/ftp目录下的welcome.msg文件message .
message cwd=* //表示当匿名用户转换
目录时(cwd=*),执行转换目录下的.message隐藏文件。
可以在welcome.msg文件内输入下列内容:
欢迎来自%R的朋友!
本地主机地址是%L!
您是目前站上第%N位用户!
目前本地时间是:%T。
您目前所在的目录是:%C。
如果有问题,请和我联系:%E。

tar

设定文件压缩功能。tar可以设定是否允许某些工作组利用tar方式在线压缩文件,格式:

tar <设定值><工作组名称>

设定值:可使用的选项有yes,no;分别表示启动和关闭使用tar功能。

工作组名称:利用class定义的工作组名称。

例如(默认为允许all工作组使用tar在线压缩文件)

tar yes all

指令的执行权限

此类可用来设定允许哪些类别的用户执行chmod等命令,格式:

chmod <设定值><用户类别>
delete<设定值><用户类别>
overwrite<设定值><用户类别>
rename<设定值><用户类别>
umask<设定值><用户类别>

设定值:可使用的选项有yes,no。分别表示是否允许执行此指令,默认所有人都能执行用户类别:可使用的类别为real,anonymous,guest。

例如(不允许guest,anonymous身份登入的用户执行chmod,delete,overwrite,rename指令)

chmod no guest,anonymous
delete no guest,anonymous
overwrite no guest,anonymous
rename no guest,anonymous

compress

可设定是否允许某些工作组利用compress方式进行在线压缩文件,格式:

 compress <设定值><工作组名称>
设定值:可使用的选项有yes,no。分别表示启动和关闭使用compress功能工作组名称:利用class定义的工作组名称例如(允许all组可以使用compress功能)
 compress yes all

log commands

可用来指定要记录哪些用户所执行的命令,其格式如下:

顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论

  • ^