vsftpd的配置方法
vsftpd的主配置文件是在/etc/vsftpd/vsftpd.conf
查看初始内容:vi /etc/vsftpd/vsftpd.conf
anoymous_enable=YES //表示允许匿名用户登录ftp服务器
对于帐号少,一般不开放匿名用户访问ftp,可以把该选项设置为NO
local_enable=YES //表示允许本地帐号登录,本地帐号是指匿名帐号以外的用户
包括操作系统帐号和虚拟帐号,但是设置为YES,并不一定本地帐号就一定可以登录,
还取决于pam等设置。
write_enable=YES //表示服务器接受与写有关的命令,设置为NO以后
客服端不能上传文件
local_umask=022 //表示本地用户创建文件的初始的权限值,
创建的用户有全部的权限,其它的用户有读和执行的权限
chroot_list_enable=YES //表示某些用户登录后,可以转到其工作目录的上层目录,
chroot_list_file=/etc/vsftpd/chroot_list
//特定的用户需要放在指定的文件当中,当chroot_list_enbale=NO时,
这些用户登录服务器,他门看到的根目录,是他们的个人目录,不允许切换到其上层目录。
这样是为了安全
listen=YES //表示vsftp将以独立的方式运行
pam_service_name=vsftp //指定pam认证的配置文件名
在/ect/pam.d目录中
userlist_enable=YES //表示拒绝列在文件中的用户登录
vsftpd配置例子
----匿名用户配置
大部分情况下,匿名用户只能下载,不允许上传
若要匿名用户能上传,需要修改配置文件,将
write_enable=YES
annon_upload_enable=YES
再重启vsftpd服务。
如果要匿名用户需要将上传的文件可以删除,需要在配置文件中加上
anon_other_write_enable=YES
这样匿名用户就可以删除上传的文件
如果需要让匿名用户可以创建子目录,需要加入
anon_mkdir_write_enable=YES
这样匿名用户就可以创建子目录
----虚拟用户的配置
vsftp中有三种用户,匿名用户,本地用户,虚拟用户
虚拟用户-任何一个用户
本地用户-也就是操作系统中建立的用户,用户名密码存放在
/etc/passwd这个文件中。
虚拟用户-他们的用户名密码存放在特定的文件中,在vsftpd中有效,
对安全有效,不需要在操作系统中创建用户,权限设置更加方便
如何通过pam配置虚拟用户
首先创建一个ftpuser.txt文件
#vi ftpuser.txt
然后在这个文件当中,输入虚拟帐号的用户名密码,其中奇数行是帐号名,
偶数行为密码,例如:
usr1
pass1
usr2
pass2
2.生成虚拟帐号数据库。
首先要确保数据库工具包已经安装,可以输入如下命令查看
#rpm -qa|grep db4
如果没有安装,需要将光盘中的
db4-utils-4.3.29-9.fc6.i386.rpm包复制过来,进行安装
#rpm -ivh db4-utils-4.3.29.9.i386.rpm
安装完成后,可以执行如下命令:
#db_load -T -t hash -f ./ftpuser.txt /etc/vsftpd/ftpusr.db
这条命令生成了能够被pam认识的数据库文件,为了安全起见,把这个文件ftpusr.db的
权限改正只有root用户可以读写:
#chmod 600 /etc/vsftpd/ftpusr.db
在/etc/pam.d/下创建一个vsftpd_login的文件
#vi /etc/pam.d/vsftp_login
在这个文件中输入以下内容:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/ftpusr
account required /lib/security/pam_userdb.so db=/etc/vsftpd/ftpusr
4.建立所有ftp虚拟用户帐号所使用的操作系统帐号,并设置该帐号
的工作目录,以及它的权限
#useradd -d /home/ftpsite -s /sbin/nologin ftp_vist
这条命令的含义是创建一个用户,名字为ftp_vist,用户的主目录是在/home目录下的ftpsite目录下。
这个用户是不能在操作系统中登录的。
改变这个注目礼的属性
#chmod 700 /home/ftpsite/
5.修改vsftpd的配置文件
#vi /etc/vsftpd/vsftpd.conf
在后面添加下面的2条指令
guest_enable=YES //表示启用虚拟帐号
guset_username=ftp_vist //表示所有虚拟用户帐号所对应的操作系统帐号为ftp_vist
pam_service_name=vsftpd_login //指的是在/etc/pam.d下面建的vsftpd_login文件
如何设置虚拟用户的权限
--virtual_use_loacal_priv=YES
在配置文件中加入:
user_config_dir=/etc/vsftpd //指定是这个目录
#cd /home/ftpsite/
创建2个子目录
#mkdir usr1
#mkdir usr2
#chown ftp_vist usr1
#chown ftp_vist usr2
#vi /etc/vsftpd/usr1
local_root=/home/ftpsite/usr1
#vi /etc/vsftpd/usr2
local_root=/home/ftpsite/usr2