一、概述
1、工作模式:
主动模式:服务器主动对客户端发起连接
被动模式:服务器开启相应端口,等待客户端发起连接
2、主动模式端口: 控制 21 传输数据 20
3、被动模式端口: 随机
二、安装
1、服务名:vsftpd
2、主配置文件:/etc/vsftpd/vsftpd.conf
3、验证方式:
匿名访问
本地用户访问
虚拟用户访问
4、软件:
服务器端 vsftpd 客户端 ftp
三、匿名用户
anonymous_enable=YES:启用匿名访问 anon_umask=022:匿名用户所上传文件的权限掩码(无此项,默认600) anon_root=/var/ftp:匿名用户的FTP根目录 anon_upload_enable=YES:允许上传文件(服务器权限和目录权限均需要设置) anon_mkdir_write_enable=YES:允许创建目录 anon_other_write_enable=YES:开放其他写入权 anon_max_rate=0:限制最大传输速率(字节/秒)
四、本地用户
local_enable=YES:是否启用本地系统用户 local_umask=022:本地用户所上传文件的权限掩码 local_root=/var/ftp:设置本地用户的FTP根目录 chroot_local_user=YES:是否将用户禁锢在主目录 local_max_rate=0:限制最大传输速率(字节/秒)
常用的全局配置项:
listen_address=192.168.4.1:设置监听的IP地址 listen_port=21:设置监听FTP服务的端口号 write_enable=YES:是否启用写入权限 download_enable=YES:是否允许下载文件 max_clients=0:限制并发客户端连接数 max_per_ip=0:限制同一IP地址的并发连接数 Pasv_min_port=50000 将客户端的数据连接端口改在 Pasv_max_port=60000 50000—60000之间)
访问限制:
userlist_enable=YES:是否启用user_list列表文件 userlist_deny=YES:是否禁用user_list中的用户 Userlist_deny=NO;
其它安全选项:
connect_timeout=60 accept_timeout=60 data_connection_timeout=300 idle_session_timeout=300 ftpd_banner=xxx和banner_file=/path/file tcp_wrappers=YES
五、访问控制
userlist_enable=YES userlist_deny=YES时 出现在/etc/vsftpd/user_list文件里的用户,会被拒绝访问FTP服务器 userlist_enable=YES userlist_deny=NO 只允许出现在/etc/vsftp/user_list文件里的用户登录FTP服务器 /etc/vsftpd/ftpusers 出现在该文件里的用户,全部拒绝访问FTP服务器,不管user_list做任何设置
六、虚拟用户
特点:
a、减少系统用户的数据,提高系统安全性
b、根据不同的用户,设置不同的访问权限
创建账号数据:
1.建立虚拟FTP用户的帐号数据库文件
2.创建FTP根目录及虚拟用户映射的系统用户
3.建立支持虚拟用户的PAM认证文件
添加虚拟用户支持
4.在vsftpd.conf文件中添加支持配置
5.为个别虚拟用户建立独立的配置文件
启动服务并测试
6.重新加载vsftpd配置
7.使用虚拟FTP账户访问测试
[root@localhost]# vi /etc/vsftpd/vusers.list #建立虚拟用户 zhangsan 123 lisi 456 [root@localhost]# cd /etc/vsftpd/ [root@localhost vsftpd]# db_load -T -t hash -f vusers.list vusers.db #建立虚拟FTP用户的帐号数据库文件 [root@localhost vsftpd]# file vusers.db #查看数据库文件 vusers.db: Berkeley DB (Hash, version 8, native byte-order) [root@localhost vsftpd]# chmod 600 /etc/vsftpd/vusers.* [root@localhost vsftpd]# ls -lh /etc/vsftpd/vusers.* -rw------- 1 root root 12K 02-26 08:51 /etc/vsftpd/vusers.db -rw------- 1 root root 18 02-26 08:48 /etc/vsftpd/vusers.list
2.创建FTP根目录及虚拟用户映射的系统用户
[root@localhost]# useradd -d /var/ftproot -s /sbin/nologin virtual [root@localhost]# chmod 755 /var/ftproot/
3.建立支持虚拟用户的PAM认证文件
[root@localhost]# vi /etc/pam.d/vsftpd.vu #%PAM-1.0 auth required pam_userdb.so db=/etc/vsftpd/vusers account required pam_userdb.so db=/etc/vsftpd/vusers
4.在vsftpd.conf文件中添加支持配置
[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf …… local_enable=YES write_enable=YES anon_umask=022 guest_enable=YES guest_username=virtual pam_service_name=vsftpd.vu
5.为不同的虚拟用户建立独立的配置文件
在vsftpd.conf文件中添加用户配置目录支持
user_config_dir=/etc/vsftpd/vusers_dir
为用户mike、john建立独立的配置目录及文件
配置文件名与用户名相同
[root@localhost ~]# mkdir /etc/vsftpd/vusers_dir/ [root@localhost ~]# cd /etc/vsftpd/vusers_dir/ [root@localhost vusers_dir]# vi zhangsan anon_upload_enable=YES anon_mkdir_write_enable=YES [root@localhost vusers_dir]# touch lisi