测试默认安装vsftpd的结果

         匿名用户与本地用户都可以登录

         匿名用户登录到/var/ftp,只能下载不能上传

         本地用户登录到本地用户的家目录,可以上传和下载

[root@dhcpser ~]# rpm -q vsftpd

package vsftpd is not installed

[root@dhcpser ~]# cd /misc/cd/Server

[root@dhcpser Server]# ls *vsftpd*

vsftpd-2.0.5-28.el5.x86_64.rpm

[root@dhcpser Server]# rpm -ivhvsftpd-2.0.5-28.el5.x86_64.rpm

[root@dhcpser Server]# service vsftpdrestart

[root@dhcpser Server]# chkconfig vsftpd on

[root@dhcpser Server]# ls -lh /etc >/var/ftp/pub/etc.txt

[root@dhcpser ~]# useradd kaka

[root@dhcpser ~]# echo "redhat" |passwd --stdin kaka

Changing password for user kaka.

passwd: all authentication tokens updatedsuccessfully.

 

验证:(客户端测试)

[root@localhost ~]# ftp 192.168.10.253

Connected to 192.168.10.253.

220 (vsFTPd 2.0.5)

530 Please login with USER and PASS.

530 Please login with USER and PASS.

KERBEROS_V4 rejected as an authenticationtype

Name (192.168.10.253:root): ftp

331 Please specify the password.

Password:

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> cd pub

250 Directory successfully changed.

ftp> ls 

227 Entering Passive Mode(192,168,10,253,75,98)

150 Here comes the directory listing.

-rw-r--r--    1 0       0           11627 Jun 13 02:04etc.txt

226 Directory send OK.

ftp> get etc.txt

local: etc.txt remote: etc.txt

227 Entering Passive Mode(192,168,10,253,136,141)

150 Opening BINARY mode data connection foretc.txt (11627 bytes).

226 File send OK.

11627 bytes received in 0.00082 seconds(1.4e+04 Kbytes/s)

ftp> !ls                                           !执行ftp外部命令

anaconda-ks.cfg  etc.txt     install.log.syslog

Desktop          install.log

ftp> put install.log

local: install.log remote: install.log

227 Entering Passive Mode(192,168,10,253,46,17)

550 Permission denied.

ftp> quit

[root@localhost ~]# lftp 192.168.10.253          lftp可以使用tab命令

lftp 192.168.10.253:~> user kaka

口令:

lftp kaka@192.168.10.253:~> putinstall.log

...

 


         禁止匿名用户登录

         修改FTP默认端口为2121

         禁锢本地用户在自己家目录    

 

实验步骤:

[root@ser01 ~]# cd /etc/vsftpd/

[root@ser01 vsftpd]# cp vsftpd.conf vsftpd.conf.bak       备份一下

[root@ser01 vsftpd]# vim vsftpd.conf

...

 12anonymous_enable=NO

...

119 listen_port=2121

120 chroot_local_user=YES

[root@ser01 vsftpd]# service vsftpd restart

[root@ser01 vsftpd]# netstat -tulnp | grep vsftpd     端口查看

tcp       0      0 0.0.0.0:2121         0.0.0.0:*           LISTEN   4705/vsftpd

测试:

ftp 192.168.10.253 2121

 

 

 

 

 

 

 

验证黑/白名单   

         /etc/vsftpd/ftpusers      黑名单不可以输密码的

         /etc/vsftpd/user_list   白加黑名单能输密码的(别有空格!!!!!!)

 

[root@ser01 ~]# useradd jerry

[root@ser01 ~]# useradd mike

[root@ser01 ~]# echo "redhat" |passwd --stdin jerry

Changing password for user jerry.

passwd: all authentication tokens updatedsuccessfully.

[root@ser01 ~]# echo "redhat" |passwd --stdin mike

Changing password for user mike.

passwd: all authentication tokens updatedsuccessfully.

[root@ser01 ~]# grep kaka/etc/vsftpd/ftpusers

kaka

//请问kaka能否登录FTP???

[root@ser01 ~]# grep jerry/etc/vsftpd/user_list

jerry

//请问jerry能否登录FTP???

[root@ser01 ~]# vim /etc/vsftpd/vsftpd.conf

...

121 userlist_deny=NO

[root@ser01 ~]# service vsftpd restart

//请问kakajerrymike谁可以登录???     

实验完毕,请将主配置文件121 userlist_deny=NO注释,将user_list ftpusers里面添加的账户去掉

 

 


         本地用户登录到/data/ftproot目录

         up上传/下载,down仅下载。拒绝所有用户登录包括匿名用户

         最多20个并发,每IP地址最多2个并发

         限制下载速度限制为100KB/s

[root@ser01~]# mkdir -p /data/ftproot

[root@ser01 ~]# useradd up

[root@ser01 ~]# useradd down

[root@ser01 ~]# echo "redhat" |passwd --stdin up

[root@ser01 ~]# echo "redhat" |passwd --stdin down

[root@ser01 ~]# vim /etc/vsftpd/vsftpd.conf

...

 12 anonymous_enable=NO      禁止匿名用户登录

...

 18 write_enable=YES

...

117userlist_enable=YES        启动此列表

max_clients=2                并发客户端数目

max_per_ip=12                 限制IP连接数

local_max_rate=100000          限速(B

...

121 userlist_deny=NO          允许userlist_deny里的用户访问,其他不能(NO白名单YES黑名单)

122 local_root=/data/ftproot     修改本地用户的ftp跟用户

[root@ser01 ~]# service vsftpd restart

[root@ser01 ~]# setfacl -m u:up:rwx /data/ftproot/     修改文件夹属性,使up能上传

文件共享是共享权限与文件夹权限的交集

[root@ser01 ~]# tail -n 2/etc/vsftpd/user_list

up

down              //白名单里的记录

测试:

[root@localhost ~]# wget  ftp://up:redhat@192.168.10.253:2121/local.tgz      下载格式啊 

黑名单与黑白名单都有相同的用户的时,拒绝优先

 

补充:

匿名用户登录对共享根目录禁止有写入权限,否则禁止匿名账户登录!

开启匿名用户登录  白名单   匿名用户不能对共享根目录禁止有写入权限,否则禁止匿名账户登录!

思考题:系统有lilymikekaka用户,请问以下情况,谁可以登录FTP(拒绝优先)

[root@localhost ~]# grep lily /etc/vsftpd/ftpusers 

lily

[root@localhost ~]# grep mike/etc/vsftpd/ftpusers 

mike

都不能登录