一、 安装和配置
1、yum –y install vsftp
2、被动模式配置
(1)工作端口是21和1024以上随即端口。
(2)因为被动模式有1024以上随即端口,防火墙没办法给ftp开放端口,所以需要加载一个模块来实现防火墙开放的端口能够和ftp的随即端口同步。需要在iptables-config中更改配置文件。
vim /etc/sysconfig/iptables-config
(后面的是后添加的模块中间用空格隔开,只要配置ftp就添加该模块)
3、正常模式配置
(1)工作端口是20和21(tcp、udp全开)
(2)要想ftp正常工作首先打开防火墙的20和21端口
二、工作用户以及用户的权限设置
1、工作用户
(1)ftp的用户有两种,一种是系统用户一种是匿名用户。(anonymous 或 ftp)
默认情况下系统用户可以上传和下载,匿名用户只能下载不能上传。
2、用户权限设置
(1)系统用户上传文件会触发一条selinux规则,需要执行以下指令set_sebool –P ftp_home_dir=1
(2)匿名用户上传文件存在一定的安全问题所以默认不能上传,如果要让匿名用户能够上传文件,需要更改配置文件。
vim /etc/vsftpd/vsftpd.cof,将anon_upload_enable=YES和anon_mkdir_write_enable=YES打开。这样匿名用户才有上传和创建的权限,因为匿名用户对pub目录没有写的权限也不能上传,所以要给匿名用户对pub写的权限。
chmod o+w pub 匿名用户上传也会selinux规则同样需要执行一条指令 set_sebool –P ftp_home_dir=1
(3)匿名用户上传的文件对other用户没有读(r)的权限所以不能下载,要使匿名用户上传的文件同样能被用户下载的话,就要在vsftpd的配置文件中加上一句anon_umask=022加在local_umask=022下面
注:在执行set_sebool –P ftp_home_dir=1命令后依然不能上传文件说明命令执行失败,执行
setsebool –P allow_ftpd_full_access=on
ftp 只能下载文件不能下载文件夹
三、限制登录
1、纯黑名单 ftpusers
(1)位置在/etc/vsftpd/ftpusers(优先级最高,凡是写到里面的用户都不能登录)
2、黑白名单 user_list
(1)位置在/etc/vsftpd/user_list(优先级比ftpusers低,为黑白名单具体功能与ftp的配置文件有关)
(2)在配置文件/var/vsftpd/vsftpd.conf 尾部添加行userlist_deny=YES时,/etc/vsftpd/user_list 文件为黑名单,作用与/etc/vsftpd/ftpusers一样。当userlist_deny=NO时,/etc/vsftpd/user_list为 仅白名单,这时候,只有写到此文件里的用户才能登陆!
(3)当黑名单和仅白名单冲突时,黑名单有效(因为黑名单优先级最高)