----基于本地配置文件的VSFTPD
环境:CentOS6.3 64软件:vsftpd-2.2.2端口:控制端口21 数据交互端口20或者随机port对于服务器端来说,分主动模式、被动模式,他们在交互时会都建立TCP链接,通常称为TCP的3次握手;结束时断开TCP链接,通常成为TCP的4次挥手,这里不做详细解释,请看下图:安装启动vsftpd:# yum -y install vsftpd# service vsftpd start# chkconfig vsftpd on //开机启动默认配置:1. 支持匿名用户ftp,anonymous,访问后根目录为:/var/ftp,只能下载根目录下的内容;2. 支持系统用户,访问后根目录为系统用户的$HOME目录,可下载任何能读取到的系统文件,可上传文件到任何可以写的系统目录;3. 支持虚拟用户;--------主配置文件:vsftpd.conf基本配置参数:anonymous_enable=YES //默认开启匿名访问;local_enable=YES //允许本地用户访问;local_root=/data/vsftpd //指定本地用户访问的默认目录;write_enable=YES //支持所有用户可写;local_umask=022 //上传的文件权限设置;xferlog_enable=YES //默认启用日志:/var/log/xferlog;chroot_local_user=YES //锁定本地用户的家目录,本地用户只能访问自己的家目录,安全策略;anon_max_rate=200000 //匿名用户最大的下载速率为200klocal_max_rate=1000000 //本地用户最大下载速率1Mmax_clients=1500 //最大允许1500用户同时访问max_per_ip=2 //每个独立IP最大连接数(下载线程数)下面两个参数用来限制被动模式打开的数据端口范围:pasv_min_port=1024pasv_max_port=2048更多的配置参数可以man vsftpd.conf查看。--------不同的本地帐号有不同的访问权限目录树:/data/vsftpd/├── HR├── IT├── NEWS└── SPORTS ├── CBA └── NBA要求: admin: vsftpd管理员,可以上传下载vsftpd根(/data/vsftpd,后面简称根)目录下任何文件; hr_admin: 只能管理HR目录下的文件 it_admin: 只能管理IT目录下的文件 news_admin: 只能管理NEWS目录下的文件 sports_admin: 管理SPORTS目录下的文件 cba_admin: 管理CBA目录下的文件 nba_admin: 管理NBA目录下的文件 nba01: 可访问NBA目录下的文件写的挺多,其实最重要的是实现本地用户管理策略:创建相关帐号: # useradd admin # useradd it_admin # useradd sports_admin # useradd nba_admin # useradd nba01为上面帐号创建密码: # passwd 帐号名 //这里不写了,可以写个脚本去更快的创建密码。全局配置(主配置文件): # vim /etc/vsftpd/vsftpd.conf user_config_dir=/etc/vsftpd/user_conf_dir //启用用户私有配置支持,并指定存储的位置; local_max_rate=50000 max_per_ip=2 write_enable=NO # service vsftpd restart //主配置文件被修改必须重启vsftpd;策略实现(每个用户独立配置文件): # mkdir /etc/vsftpd/user_conf_dir //创建用户的私有配置文件存放目录; # cd !$ # cat admin //配置文件名必须跟用户名相同,不然会找不到用户独立配置文件; write_enable=YES local_root=/data/vsftpd local_max_rate=0 max_per_ip=1024 # cat sports_admin write_enable=YES local_root=/data/vsftpd/SPORTS local_max_rate=0 max_per_ip=512 # cat nba_admin write_enable=YES local_root=/data/vsftpd/SPORTS/NBA local_max_rate=0 max_per_ip=512 # cat nba01 local_root=/data/vsftpd/SPORTS/NBA/ 注: 配置修改用户独立配置文件可以不用重启vsftpd。