官方地址:http://www.wu-ftp.org
http://mirrors.bevc.net/wu-ftpd/wu-ftpd/wu-ftpd-2.6.2.tar.gz
ftp://ftp.pbone.net/mirror/archive.download.redhat.com/pub/redhat/linux/8.0/en/os/i386/RedHat/RPMS/wu-ftpd-2.6.2-8.i386.rpm

一、实验环境
AS4+wu-ftpd-2.6.2

二、安装<推荐rpm安装>
1、源码安装
# cd wu-ftpd-2.6.2/src
# cp ftpcmd.y ftpcmd.y.orig
# sed -e "s/=[ "$'\t'"][ "$'\t'"]*{/'=' {/" ftpcmd.y.orig > ftpcmd.y
# cd ..
# ./configure
# make
# make install

2、rpm安装
# rpm -ivh wu-ftpd-2.6.2-8.i386.rpm

三、实验要求
1、将组设置成real,guest,anonymous三个组进行控制;
2、用户身份有real,guest,anonymous,其中real只允许来自222.220.162.0/24网络,而guest,anonymous可来自所有网段,但除了60.179.149.0/24网段;
3、允许可用的被动端口,65501-65510端口
4、系统中小于499以及大于65000的UID与GID都被拒绝登录;
5、任何时候,最大的在线人数为30人,guest最多10人,anonymous0800-2000最多5人;
6、实体用户tangye被限制只以在主目录中工作,无法退出主目录,其他实体用户则不受限制;
7、有二个系统用户分别为user01,user02,将这个两个用户定为guest身份,设置主目录为/home/user01/data,/home/user02/data,并且设置传输速度最大为100KB/s;隶属于ftpuser
8、还有一个用户user03用户,上传\下传比例1.0,传输速度为64KB/s;
9、anonymous(匿名用户)的主目录设置为/home/ftp,并且限制anonymous一次连网最长30分钟,而且最多能下20个文件,20M的数据量,传输速度最快仅到32KB/s;上传的目录为/home/ftp/upload中,默认文件拥有ftp所属的组sys,上传速度最快为16KB/s;

四、系统配置
# useradd tangye
# groupadd ftpuser
# useradd -m -g ftpuser -s /sbin/nologin user01
# useradd -m -g ftpuser -s /sbin/nologin user02
# useradd -m -g ftpuser -s /sbin/nologin user03
# passwd user01          //分别设置密码为'123456'
# passwd user02
# passwd user03
# passwd tangye
# vi /etc/xinetd.d/wu-ftpd
service ftp
{
        socket_type             = stream
        wait                    = no
        user                    = root
        server                  = /usr/sbin/in.ftpd
        server_args             = -l -a
        log_on_success          += DURATION
        nice                    = 10
        disable                 = no   <===NO表示,启用wu-ftpd
}
# /etc/rc.d/init.d/xinetd restart
# netstat -tl | grep ftp    //出现以下提示,表示开启FTP成功
tcp        0      0 *:ftp                       *:*                         LISTEN
# vi /etc/ftpaccess         //主要配置文件
###############针对组设置#################
class   all             real,guest,anonymous *
class   allreal         real                  222.220.162.0/24
class   allguest        guest                 !60.179.149.0/24 *
class   allanonymous    anonymous             !60.179.149.0/24 *
###############针对主机设置###############
email postmaster@tglm.3322.org    //管理员的e-mail信箱
hostname tglm.3322.org            //主机名称
shutdown /etc/shutmsg             //用来设置关闭FTP服务的时间 2008 7 15 12 0 0130 0030 “提示文字” 表示2008/7/15的12:00要关闭FTP,在12点之前的一个半小时内(10:30),不允许新的连网登录,在12点三十分钟前(11:30)断掉已经存在的连网。FTP服务没关,只是无法登录。
loginfails 5                      //允许错误的登录次数5,超过则断开
log transfers anonymous,guest,real inbound,outbound //记录anonymous,guest,real用户文件传输上传下传动作,记录/var/log/xferlog文件中
passwd-check rfc822 warn          //匿名的验证方式<密码格式二种trivial和rfc822,前者必须含有@字符,后者字母和数安>;<动作二咱warn和enforce,前者用户输入错误密码,显示警告,及允许登录。后者,显示警告,并中断连网>
#################信息管理#################
readme README*    login
readme README*    cwd=*            //当用户登录或变换目录,若目的端有README*所有的文件,则向用户提醒用户的使用,
message /welcome.msg            login   //welocome.msg欢迎画面
message .message                cwd=*   //不公提醒用户使用,当登录或变换到任何文件名为.message的目录时,该文件内容会显示在屏幕上。
#################命令管理#################
compress        yes             all
tar             yes             all           //允许所有用户压缩解压指令
chmod           no              guest,anonymous   //不允许guest,anonymous设置目录文件权限
delete          no              anonymous
overwrite       no              anonymous
rename          no              anonymous     //不允许anonymous 删除改名
#################登录管理#################
deny-uid %-499 %65000-
deny-gid %-499 %65000-         //系统中小于499以及大于65000的UID、GID将被拒绝
allow-gid ftpuser              //允许ftpuser组登录
#################时间设置#################
timeout accept 120            //由于某种原因或网络带宽影响,无法立即登录。等待客户端120秒连网
timeout connect 120            //三次握手客户端回应ACK的时间120秒
timeout data    2400           //允许上传下载一个文件的时间,2400表示40分钟。建议大一点
timeout idle    1800           //多久没有和服务器交互,1800S会自动断线
timeout maxidle 1800           //与idle类似,客户端可以要求延长时间
#################主机连接数#################
<limit> <人物组名称> <连接数> <时间>     <被拒绝时显示内容>
limit        all        30      Any                /etc/ftpmaxnumber
limit      allguest     10      Any                /etc/ftpmaxnumber
limit    allanonymous    5      Any0800-2000       /etc/ftpmaxnumber
##################被动端口##################
passive ports <CIDR地址> <最小端口> <最大端口>
passive ports 0.0.0.0/0     65501     65510         //来自任何地方的IP在请求passive连网模式,将以65501-65510之间被动端口来连;
##################实体用户##################
restricted-uid tangye           //限制用户的主目录,无法到到达其他的目录中
#################guest设置##################
guestuser user01 user02 user03        //将user01-03设置成guest
guest-root /home/user01/data    user01
guest-root /home/user02/data    user02
guest-root /home/user03         user03       //设置用户的主目录
throughput      <根目录>       <次目录> <文件名> <bytes/s> <倍数> <地址>
throughput /home/user01/data      *         *      102400     -      *
throughput /home/user02/data      *         *      102400     -      *
throughput /home/user03           *         *       65536     -      *
ul-dl-rate     1     allguest   //这表示allguest组上传下载的
##############anonymous设置##################
linmit-time    anonymous     10                         //anonymous每次登录连网10分钟,如果超过10分钟,系统会强制断开
file-limit        out        20         allanonymous    //allanonymous组中任何用户,在一次登录中可以下载20个文件
data-limit        out      10485760     allanonymous     //allanonymous组中任何用户,在一次登录中可以下载10M数据
throughput     /home/ftp         *            *      32768     -      *
throughput     /home/ftp       /upload        *      16384     -      *
anonymous-root /home/ftp
upload      /home/ftp     /upload yes ftp sys 0666
# mkdir -pv /home/ftp/upload
# chown ftp:sys /home/ftp/upload
# mkdir /home/user01/data
# mkdir /home/user02/data
# chown user01:ftpuser /home/user01/data
# chown user02:ftpuser /home/user02/data
# cat /etc/shells |grep sbin       //确认/sbin/nologin在该文件内
# vi /welcome.msg
Welcome to my FTP site.
Now is the time ==> %T
The host name is %L
You are %U and from %R
There are %N person in my site, now.
If you have any problem please call me
%E
# vi /home/user01/data/.message
hello user01
# vi /home/user02/data/.message
hello user02
# vi /home/ftp/welcome.msg
Welcome to my FTP site.
Now is the time ==> %T
The host name is %L
You are %U and from %R
There are %N person in my site, now.
If you have any problem please call me
%E
# reboot

修改FTP默认端口方法
# vi /etc/xinetd.d/wu-ftpd
service wuftp         <===修改这里
{
        socket_type             = stream

# vi /etc/services //添加以下内容
wuftp    3344/tcp
# /etc/rc.d/init.d/xinetd restart

五、客户端命令
ftp> dir                        显示远程主机的内容
ftp> cd                         变换远程主机的目录
ftp> quit/close/bye/exit        退出远程主机
ftp> get file                   下载远程主机的文件
ftp> mget file                  取得所有文件
ftp> put file                   当本地端的文件,上传到远程主机
ftp> mput file                  将本地端的所有文件,上传到远程主机
ftp> delete file                删除远程主机文件
ftp> mkdir file                 建立目录
ftp> lcd                        变换本地端路径
ftp> ascii/binary               传输格式
ftp> help                       帮助命令