FTP服务概述.

FTP—基于c/s结构的文件传输协议

FTP—会话属于复合TCP连接,

---控制连接:TCP21端口,发送FTP命令信息

---数据连接:TCP20端口,上传下载数据。

FTP用户类型

---匿名用户:ftpanonymous

---本地用户:Linux服务器本机的系统用户账号

---虚拟用户:存放在独立的账号文件中

Vsftpd服务基础

---主配置文件:vsftpd.conf

---黑名单文件:ftpusers

---/白名单文件:user_list

Vsftp.config配置解析(常用的匿名FTP配置)

---anonymous_enable:是否启用匿名访问

---anon_umask:匿名上传的权限掩码

---anon_root:匿名FTP的根目录

---anon_upload_enable:是否允许上传文件

---anon_mkdir_write_enable;是否允许创建目录

---anon_other_write_enable:其他写入控制

---anon_max_rate最大传输速度

Vsftp.config配置解析(常用本地用户FTP配置)

---local_enable:是否启用本地用户

---local_umask:本地用户上传的权限掩码

---local_root:本地用户的FTP根目录

---chroot_local_user:是否禁锢在主目录

---local_max_rate:最大传输速率(字节/秒)

默认安装vsftpd

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

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

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

实验要求:

配置可匿名上传FTP服务

1、安装软件包

[root@localhost ~]#rpm -q vsftpd//查看是否安装

package vsftpd is not installed

放入RHEL5.9 ISO

[root@localhost ~]#cd /misc/cd/Server//光盘默认挂载目录

[root@localhost Server]#rpm -ivhvsftpd-2.0.5-28.el5.x86_64.rpm//安装

warning: vsftpd-2.0.5-28.el5.x86_64.rpm: Header V3 DSAsignature:NOKEY, key ID 37017186

Preparing...########################################### [100%]

1:vsftpd########################################### [100%]

2、修改主配置文件

[root@localhost ~]#vim/etc/vsftpd/vsftpd.conf//修改主配置文件

...

27 anon_upload_enable=YES//是否启用匿名访问

...

31anon_mkdir_write_enable=YES//是否允许建目录

32anon_other_write_enable=YES//其他写入控制(如改文件名)

...

[root@localhost ~]#setfacl -m u:ftp:rwx/var/ftp/pub///给默认ftp用户rwx权限

[root@localhost ~]#getfacl /var/ftp/pub/

getfacl: Removing leading '/' from absolute path names

# file: var/ftp/pub

# owner: root

# group: root

user::rwx

user:ftp:rwx

group::r-x

mask::rwx

other::r-x

3、启动服务

[root@localhost ~]#service vsftpd restart//重启服务

[root@localhost ~]#chkconfig vsftpd on//设置开机自启

4、客户端测试

 

实验二要求:          
 配置本地用户访问FTP服务,拒绝匿名用户访问
 验证黑白名单
 禁锢普通用户在自己的主目录里面
1、软件包安装,新建用户配置密码。
[root@localhost ~]# useradd lily
[root@localhost ~]# useradd mike
[root@localhost ~]# useradd kaka                           //新建三个用户
[root@localhost ~]# echo "123456" | passwd --stdin lily
Changing password for user lily.
passwd: all authentication tokens updated successfully.
[root@localhost ~]# echo "123456" | passwd --stdin mike
Changing password for user mike.
passwd: all authentication tokens updated successfully.
[root@localhost ~]# echo "123456" | passwd --stdin kaka
Changing password for user kaka.
passwd: all authentication tokens updated successfully.              //设置密码123456

2、修改主配置
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf                  //修改配置文件
...
 12 anonymous_enable=NO                                 //拒绝匿名用户登录
...
[root@localhost ~]# grep lily /etc/vsftpd/ftpusers               //测试黑名单
lily
[root@localhost ~]# grep mike /etc/vsftpd/user_list               //测试黑/白名单
mike
[root@localhost ~]# grep userlist_deny /etc/vsftpd/vsftpd.conf 
userlist_deny=NO     
                                              //只允许user_list里面的用户访问FTP
3、启动服务
[root@localhost ~]# service vsftpd restart
[root@localhost ~]# chkconfig vsftpd on

4、客户端测试

 

实验三要求:
 禁锢普通用户在自己的主目录里面
 更改匿名用户的站点为/data/anon_pub
 更改本地用户的站点为/data/local_pub
 设置匿名用户下载速率50KB/s,本地用户100KB/s
 最多20个并发,每IP地址最多2个并发
1、软件包安装
此前已安装
2、修改主配置文件
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf 
...
121 chroot_local_user=YES                 //是否禁锢在主目录
122 anon_root=/data/anon_pub            //匿名FTP的根目录
123 local_root=/data/local_pub            //本地用户的FTP根目录
124 anon_max_rate=50000               //匿名用户最大传输速率
125 local_max_rate=100000                //本地用户最大传输速率
126 max_clients=20                      //限制并发客户端个数
127 max_per_ip=2                      //限制每个客户机IP的并发连接数
...
[root@localhost ~]# mkdir -p /data/{anon_pub,local_pub}   //新建目录
[root@localhost ~]# touch /data/anon_pub/anon_file1
[root@localhost ~]# touch /data/local_pub/local_file1    //在目录下新建文件(测试用)
[root@localhost ~]# dd if=/dev/zero of=/data/anon_pub/anon_db  bs=10M count=200
[root@localhost ~]# dd if=/dev/zero of=/data/local_pub/local_db  bs=10M count=200  //新建2G文件(测试用)
3、启动服务
[root@localhost ~]# service vsftpd restart

4、客户端测试
[root@localhost home]# wget ftp://192.168.10.10/anon_db     //匿名用户测试
[root@localhost home]# wget  ftp://kaka:123456@192.168.10.10/local_db   //本地用户测试

 

实验四:
只允许本地用户上传、拒绝匿名登录。
1、软件包安装
此前已安装
2、修改主配置文件
[root@localhost pub]# useradd tm
[root@localhost pub]# setfacl -m u:tm:rwx /var/ftp/pub/      //给用户权限

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

12 anonymous_enable=NO            //拒绝匿名登录
15 local_enable=YES                  //开启本地用户登录
83 download_enable=NO        //不允许下载
    …

--------3、启动服务
[root@localhost ~]# service vsftpd restart
[root@localhost ~]#chkconfig vsftpd on


4、客户端测试
  ftp://192.168.10.253