一、实验环境
AS4+wu-ftpd-2.6.2
二、安装
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 //匿名的验证方式;
#################信息管理#################
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 all 30 Any /etc/ftpmaxnumber
limit allguest 10 Any /etc/ftpmaxnumber
limit allanonymous 5 Any0800-2000 /etc/ftpmaxnumber
##################被动端口##################
passive ports
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
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 帮助命令