Linux环境下wu-ftp服务的配置
FTP:文件传输协议,客户/服务器模式
一、安装WU-FTPD
#rpm -ivh wu-ftpd*.rpm |
如果没有指定安装目录,那么其执行文件默认会分别安装在/usr/bin和/usr/sbin 中。
二、启动WU-FTPD
cd 到/etc/xinetd.d/目录 |
打开wu-ftpd文件,将其中的disable = yes 改为disable = no。
然后重新启动xinetd服务:
#/etc/rc.d/init.d/xinetd restart |
#telnet localhost 21 |
^] //按ctrl+]号中断。
telnet>q //按Q键退出。
四、匿名FTP的设置与组织
/etc/ftpaccess //WU-FTPD 最重要的设定文件 |
/usr/bin/ftpcount //查询目前各类的上线用户人数。 |
/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网域登陆, |
2拒绝特定用户从指定地址登入 deny
格式如下:
deny <帐号名称> <主机名称> ...例如,不允许test用户从202.198.16.8地址登陆, |
六、服务器环境设定(/etc/ftpaccess文件)
指令
class
class 用来定义用户工作组,并指定属于这工作组的是哪些类别的用户,或来自哪个阻击地址,同时我们可以在一个ftpaccess文件中定义多个工作组,格式如下:
class <工作组名称><用户类别><用户所在的主机地址> |
工作组名称:此工作组名称,由管理员定义
用户类别: 可以使用的类别是real,anonymous,guest。
主机地址:登入用户所在的主机的IP或域名,此处可明确指明主机地址,或采用通配符*也可以。
下例为缺省值:
class all real,guest,anonymous * |
class group2 real,guest,anonymous *.china.com 203.84.200.* |
设定FTP服务器管理员的E-mail地址,当WU-FTPD要显示管理者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 |
message /welcome.msg login //表示当匿名用户登入时, |
欢迎来自%R的朋友! |
tar
设定文件压缩功能。tar可以设定是否允许某些工作组利用tar方式在线压缩文件,格式:
tar <设定值><工作组名称> |
设定值:可使用的选项有yes,no;分别表示启动和关闭使用tar功能。
工作组名称:利用class定义的工作组名称。
例如(默认为允许all工作组使用tar在线压缩文件)
tar yes all |
指令的执行权限
此类可用来设定允许哪些类别的用户执行chmod等命令,格式:
chmod <设定值><用户类别> |
设定值:可使用的选项有yes,no。分别表示是否允许执行此指令,默认所有人都能执行用户类别:可使用的类别为real,anonymous,guest。
例如(不允许guest,anonymous身份登入的用户执行chmod,delete,overwrite,rename指令)
chmod no guest,anonymous |
compress
可设定是否允许某些工作组利用compress方式进行在线压缩文件,格式:
compress <设定值><工作组名称> |
compress yes all |
log commands
可用来指定要记录哪些用户所执行的命令,其格式如下: