一,基本权限设置
1,目录权限设置
默认的vftp文件根目录为/var/ftp,该目录默认为root:root 0755权限,为了使其它用户能上传文件,给ftp根目录其它用户写权限
chmod 1757 /var/ftp
2,修改selinux策略
setsebool -P ftpd_full_access on
二,本地用户模式
配置文件如下:
anonymous_enable=NOlocal_enable=YESwrite_enable=YESlocal_umask=022dirmessage_enable=YESxferlog_enable=YESconnect_from_port_20=YESxferlog_std_format=YESlisten=NOlisten_ipv6=YESpam_service_name=vsftpduserlist_enable=YESlocal_root=/var/ftpchroot_local_user=YESallow_writeable_chroot=YES
三,虚拟用户模式
1,创建用于进行FTP认证的用户数据库文件,其中奇数行为账户名,偶数行为密码。
比如:
在/etc/vsftpd目录下创建一个虚拟用户文件vusers
aaa123.combbb123.com
该文件包含两个账户aaa,bbb,且密码均为123.com
2,使用db_load命令将vusers文件转为数据库文件
db_load -T -t hash -f vusers vusers.db
降低数据库文件权限
chmod 600 vusers.db
3,建立用于支持虚拟用户的PAM文件。
vi /etc/pam.d/vsftpd.vuauth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vusersaccount required /lib64/security/pam_userdb.so db=/etc/vsftpd/vusers
4,在vsftpd服务程序的主配置文件中通过pam_service_name参数将PAM认证文件的名称修改为vsftpd.vu
即,将vsftpd.conf文件中pam_service_name=vsftpd修改为:
pam_service_name=vsftpd.vu
并且添加如下
guest_enable=YESguest_username=ftp
5,为虚拟用户设置不同的权限。
比如:允许aaa上传、创建、修改、查看、删除文件,只允bbb查看文件
mkdir /etc/vsftpd/vsusers_dircd /etc/vsftpd/vsusers_dirtouch aaa bbb
编辑aaa
anon_upload_enable=YESanon_mkdir_write_enable=YESanon_other_write_enable=YES
修改vsftpd.conf,添加一行
user_config_dir=/etc/vsftpd/vusers_dir
完整的配置文件如下:
anonymous_enable=NOlocal_enable=YESwrite_enable=YESlocal_umask=022dirmessage_enable=YESxferlog_enable=YESconnect_from_port_20=YESxferlog_std_format=YESlisten=NOlisten_ipv6=YESpam_service_name=vsftpd.vuuserlist_enable=YES#local_root=/var/ftpchroot_local_user=YESallow_writeable_chroot=YESguest_enable=YESguest_username=ftpuser_config_dir=/etc/vsftpd/vusers_dir
最后重启vsftpd使配置生效.
常用参数说明:
download_enable=[YES|NO]是否允许下载文件userlist_enable=[YES|NO]设置用户列表为“允许”还是“禁止”操作userlist_deny=[YES|NO]max_clients=0最大客户端连接数,0 为不限制max_per_ip=0同一IP地址的最大连接数,0 为不限制anonymous_enable=[YES|NO]是否允许匿名用户访问anon_upload_enable=[YES|NO]是否允许匿名用户上传文件anon_umask=022匿名用户上传文件的umask值anon_root=/var/ftp匿名用户的FTP根目录anon_mkdir_write_enable=[YES|NO]是否允许匿名用户创建目录是否开放匿名用户的其他写入权限(包括重命名、删anon_other_write_enable=[YES|NO]除等操作权限)anon_other_write_enable=[YES|NO] 是否允许匿名用户修改目录名称或删除目录anon_max_rate=0匿名用户的最大传输速率(字节/秒),0 为不限制local_enable=[YES|NO]是否允许本地用户登录FTPlocal_umask=022本地用户上传文件的umask值local_root=/var/ftp本地用户的FTP根目录chroot_local_user=[YES|NO]是否将用户权限禁锢在FTP目录,以确保安全local_max_rate=0本地用户最大传输速率(字节/秒),0 为不限制guest_enable=YES开启虚拟用户模式guest_username=virtual指定虚拟用户账户pam_service_name=vsftpd.vu指定PAM文件allow_writeable_chroot=YES允许对禁锢的FTP根目录执行写入操作,而且不拒绝用户的登录请求