1、安装
yum install vsftpd -y
2、配置,先备份一个配置文件,然后再修改,注意所有配置行尾不能有空格,否则启动ftp会报错,提示不识别参数
基本配置:
anonymous_enable=no #禁止匿名登录 local_enable=YES #允许本地账户登录 write_enable=YES #允许本地账户写权限 local_umask=022 dirmessage_enable=YES xferlog_enable=YES #开启日志 connect_from_port_20=YES #表面vsftp使用主动模式 xferlog_file=/var/log/vsftp #日志文件 xferlog_std_format=YES chroot_local_user=YES #将所有用户限制在主目录,YES为启用 NO禁用 见注1 allow_writeable_chroot=YES #拥有写权限 local_root=/data1/vsftp/data #ftp主目录位置,默认为各个用户的home目录 chroot_list_enable=YES #是否启动限制用户的名单 YES为启用 NO禁用(包括注释掉也为禁用) chroot_list_file=/etc/vsftpd/chroot_list
userlist_enable=YES #启用user_list文件 见注2
listen=YES pasv_enable=NO pam_service_name=vsftpd tcp_wrappers=YES
注1:
chroot_local_user #是否将所有用户限制在主目录,YES为启用 NO禁用.(该项默认值是NO,即在安装vsftpd后不做配置的话,ftp用户是可以向上切换到要目录之外的)
chroot_list_enable #是否启动限制用户的名单 YES为启用 NO禁用(包括注释掉也为禁用)
chroot_list_file=/etc/vsftpd/chroot_list #是否限制在主目录下的用户名单,至于是限制名单还是排除名单,这取决于chroot_local_user的值,我们可以这样记忆: chroot_local_user总是一个全局性的设定,其为YES时,全部用户被锁定于主目录,其为NO时,全部用户不被锁定于主目录。那么我们势必需要在全局设定下能做出一些“微调”,即,我们总是需要一种“例外机制",所以当chroot_list_enable=YES时,表示我们“需要例外”。而”例外“的含义总是有一个上下文的,即,当”全部用户被锁定于主目录“时(即chroot_local_user=YES),"例外"就是:不被锁定的用户是哪些;当"全部用户不被锁定于主目录"时(即chroot_local_user=NO),"例外"“就是:要被锁定的用户是哪些。这样解释和记忆两者之间的关系就很清晰了!
对于chroot_local_user与chroot_list_enable的组合效果,可以参考下表:
注2:
vsftpd有两个默认存放用户名单的文件(默认在/etc/vsftpd/ 目录下),来对访问FTP服务的用户身份进行管理和限制。vsftpd会分别检查两个配置文件,只要是被任何一个文件所禁止的用户,FTP访问到本机的请求都会被拒。
user_list:可以作为用户白名单,或者是黑名单,或者无效名单。完全由userlist_enable和userlist_deny这两个参数决定。
ftpusers:只能是用户黑名单,不受任何参数限制。
决定user_list文件性质的参数 userlist_enable和userlist_deny
userlist_enable=YES userlist_deny=YES 启用user_list文件,但文件是黑名单,拒绝文件中的用户FTP访问 userlist_enable=YES userlist_deny=NO 启用user_list文件,但文件是白名单,拒绝除文件中的用户外的用户FTP访问 userlist_enable=NO userlist_deny=YES/NO 无效名单,表示没有对任何用户限制FTP访问
3、启动
systemctl start vsftpd && systemctl enable vsftpd