vsftpd

http://wiki.ubuntu.org.cn/Vsftpd

三种用户形式
.1、匿名用户形式:在默认安装的情况下,系统只提供匿名用户访问
.2、本地用户形式:以/etc/passwd中的用户名为认证方式
.3、虚拟用户形式:支持将用户名和口令保存在数据库文件或数据库服务器中。相对于FTP的本地用户形式来说,虚拟用户只是FTP服务器的专有用户,虚拟用户只能访问FTP服务器所提供的资源,这大大增强系统本身的安全性。相对于匿名用户而言,虚拟用户需要用户名和密码才能获取FTP服务器中的文件,增加了对用户和下载的可管理性。
    对于需要提供下载服务,但又不希望所有人都可以匿名下载;既需要对下载用户进行管理,又考虑到主机安全和管理方便的FTP站点来说,虚拟用户是一种极好的解决方案。

匿名用户下载是使用的是文件中other这个用户,所以相应的o这个位置要有R权限才能被下载。若想让匿名用户能上传和删除权限,必需设置

**本地用户登录的条件及问题
1,local_enable=YES设置本地用户允许访问
1,/etc/pam.d/vsftpd中不能有任何关于虚拟用户的登录配置文件
2,/etc下面尽量不要设置vsftpd.user_list或者vsftpd_login.db等类型的限制文件

**匿名用户的登录
1,设置/etc/vsftpd.conf中的anonymous_enable=YES
2,设置匿名用户登录后的目录anon_root=/anon
3,设置匿名登录是否要密码no_anon_password=NO

**虚拟用户的登录
1,新建虚拟用户文件login.txt
 test00
 fk00
 test01
 fk01
然后使用db4.8-util生成认证文件
sudo db4.6_load -T -t hash -f /home/loguser.txt /etc/vsftpd_login.db
并更改vsftpd_login.db的权限为600
2,新建/etc/pam.d/下的vsftpd.vu,加入
auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd_login
3,新建虚拟用户访问目录
sudo useradd vsftpd
4,guest_enable=YES,guest_username=vsftpd,pam_service_name=vsftpd.vu
5,设置每个虚拟用户的权限:编辑vsftpd.conf,加入user_config_dir=/etc/vsftpd_user_conf
然后建立vsftpd_user_conf文件夹,在里面添加每个虚拟用户名对应的文件,进行设置

解决vsftpd的中文乱码问题
http://zhumeng8337797.blog.163.com/blog/static/10076891420109210304328/


1.匿名用户相关设置 
anonymous_enable=YES ,将YES改为NO, 禁止匿名用户登陆 
#anon_mkdir_write_enable=YES ,将#注释去掉,允许匿名用户创建目录 
#anon_upload_enalbe=YES ,将#去掉,允许匿名用户上传 
anon_world_readable_only=YES ,允许匿名用户下载,默认是禁止的,这个可以自行添加。 
anon_other_write_enable=YES ,将其设为YES的话,就除了上传和创建目录外,还可以重命名,删除文件,默认是NO 
no_anon_password=NO ,将其设为YES,匿名用户不会查询用户密码直接登陆。 
ftp_username=ftp ,匿名用户登陆系统的账号默认为ftp,此项最好不要改,否则设置不当会给系统的安全带来威胁。 
 
2.FTP服务端口的指定 
listen_port=8021 ,指定命令通道为8021,默认为21 
listen_data_port=8020 ,指定数据通道为8020,默认为20 
 
3.上传模式的设置 
pasv_enable=YES ,是否允使用被动模式,默认是允许的。 
pasv_min_port=10000 ,指定使用被动模式时打开端口的最小值 
pasv_max_port=10004 ,指定使用被动模式时打开端口的最大值。 
 
4.vsftp服务器指定IP地址 
listen_address=192.168.0.21 ,指定FTP,IP地址 
注:只有当vsftp运行于独立模式时才允许使用指定IP,如果在/etc/xinetd.d目录下已经建立了vsfpd文件,就要将该文件中的disable设置为yes,方可。 
 
5. 锁定用户,禁止用户离开用户主目录 
chroot_local_user=YES ,将其设为YES,就锁定在用户主目录,设为NO,可以切换 
将指定用户设置为锁定用户主目录: 
#chroot_list_enable=YES 
#chroot_list_file=/etc/vsftpd.chroot_list 
将其改为如下: 
chroot_list_enable=NO 
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list 
将上面保存,再做如下操作: 
#touch /etc/vsftpd/vsftpd.chroot_list 
#vi /etc/vsftpd/vsftpd.chroot_list ,在该文件中加入用户名单,如: 
netseek_com 
 
6.FTP服务器的流量控制 
max_clients=100 ;允许的最大连接数,定义为100,默认为0,表没有限制 
max_per_ip=5 ;每个IP允许的连接数,0表没有限制,需要运行于独立模式方可 
anon_max_rate=50000 ;匿名用户最大带宽,单位为bps 
local_max_rate=200000 ;系统用户最大带宽 
如何对指定用户进行流量限制呢? 
#vi /etc/vsftpd/vsftpd.conf,添加一行: 
user_config_dir=/etc/vsftpd/userconf 
#touch /etc/vsftpd/userconf/netseek_com 为netseek_com这个用户建立一个netseek_com文件 
#vi /etc/vsftpd/userconf/netseek_com 添加以下内容 
local_max_rate=100000 
保存重启服务即可. 
 
 
7.定制欢迎信息 
目录说明设置 
#vi /etc/vsftpd/vsftpd.conf 
#dirmessage_enable=YES,前的#去掉。 
然后我们定制一个.message,写上你想写的东西,然后把这个文件复制到各个用户的家目录中,就OK。 
 
系统欢迎消息设置 
ftpd_banner=Welcome to ftp.netseek.com , Yeah!!! 
系统欢迎消息文件设置 
banner_file=/etc/vsftpd/welcome 与ftpd_banner相类似,不同之处在于,banner_file指定欢迎文件.