本文简单介绍一些vsftpd的配置完成相应的需求
linux
(前提是防火墙放行,SELINUX关闭,后面会提开启状况)
安全
1.匿名用户下载FTP服务器里的文件服务器
vsftpd安装好以后,默认是匿名能够下载的,故不准要作任何配置修改,只须要将服务启动便可。实际上由于配置文件里已经帮你作好了,它依赖的选项是:anonymous_enable=YES,另外注意本身的供下载的目录的权限。ide
2.匿名用户上传文件的功能server
默认状况匿名是不能上传文件的。将下面两行的注释打开就能够了。ci
anon_upload_enable=YES
anon_mkdir_write_enable=YESget
可是会发现匿名用户上传的权限是属于ftp用户,而且只有ftp用户可读写。更改匿名用户上传的默认权限经过在配置文件里加入anon_umask=022实现任何人可读(默认077).it
匿名用户不能建立文件,目录,经过:class
anon_other_write_enable=YEStest
3.对本地用户进行chroot,也就是不容许本地用户切到根目录下去,将本地用户锁在本身的家目录
一般使用本地用户登陆FTP服务器时候,默认是能够切到根目录下的,这样对系统形成了安全隐患。打开下面几个注释
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
而后建立/etc/vsftpd/chroot_list文件,里面的用户就是容许切根目录的用户,没有填写也就意味着不容许切换到根目录下。
4.创建一个禁止登陆的用户名单
其实有两个档案,一个是 PAM 模块管的,一个是 vsftpd 主动提供的,在预设的状况下这两个档案分别是:
/etc/vsftpd/ftpusers:就是 /etc/pam.d/vsftpd 这个档案的设定所影响的;
/etc/vsftpd/user_list:由 vsftpd.conf 的 userlist_file 所设定。
若是是第一个,保证这一句存在 pam_service_name=vsftpd,而后将禁止登陆的用户加入到/etc/vsftpd/ftpusers这个文件就能够了。
若是是第二个,稍微麻烦点,有两种功能,默认是在/etc/vsftpd/user_list列表的用户禁止登陆的,可是若想只容许这个文件列表内的用户登陆的话,要在配置文件里加入userlist_deny=NO
例如你想只容许本机的一个叫test用户登陆ftp服务器的话,就在/etc/vsftpd/user_list写入test便可。
5.SELINUX的一些问题
若是环境存在selinux的话,在匿名用户上传的时候须要修改bool值。
[root@instructor vsftpd]# getsebool -a | grep ftp
allow_ftpd_anon_write --> off
allow_ftpd_full_access --> off
allow_ftpd_use_cifs --> off
allow_ftpd_use_nfs --> off
ftp_home_dir --> off
ftpd_connect_db --> off
ftpd_use_passive_mode --> off
httpd_enable_ftp_server --> off
tftp_anon_write --> off
将第一个allow_ftpd_anon_write --> off 改成on就能够了。
setsebool -P allow_ftpd_anon_write=on
在chroot的时候也会受到selinux的影响,将ftp_home_dir --> off改成on就能够了
setsebool -P ftp_home_dir=on