FTP服务概述.
FTP—基于c/s结构的文件传输协议
FTP—会话属于复合TCP连接,
---控制连接:TCP21端口,发送FTP命令信息
---数据连接:TCP20端口,上传下载数据。
FTP用户类型
---匿名用户:ftp或anonymous
---本地用户: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