Centos6.7安装配置vsftpd虚拟用户

演示环境

系统:Linux CentOS 6.7 64位

账号:root

环境:无安装vsftpd

1、安装依赖软件

[root@localhost ~]# yum install pam* db4* -y   

安装PAM(用于虚拟用户认证)和DB4(用于生成虚拟用户的用户名密码的db文件)。

2、安装vsftpd

[root@localhost ~]# yum install vsftpd   -y   

设置vsftpd开机启动:

    [root@localhostvsftpd]# chkconfig vsftpd on

    通过chkconfig –list|grep vsftpd 查看启动项

wKioL1cjKHHxEVfkAAAKed-s6fk911.png


3. 配置vsftpd.conf

[root@localhost vsftpd]# cd /etc/vsftpd/  //切换到该目录下

[root@localhost vsftpd]# vim vsftpd.conf  //更改配置文件

部分配置解释

anonymous_enable=NO   //控制是否允许匿名用户登入,YES 为允许匿名登入,NO 为不允许。默认值为YES。

    local_enable=YES   //控制是否允许本地用户登入,YES 为允许本地用户登入,NO为不允许。默认值为YES。

    write_enable=YES   //是否允许登陆用户有写权限。属于全局设置,默认值为YES。

    local_umask=022   //本地用户新增档案时的umask 值。默认值为077。

    xferlog_enable=YES  //是否启用上传/下载日志记录。如果启用,则上传与下载的信息将被完整纪录在xferlog_file 所定义的档案中。预设为开启。

   xferlog_file=/etc/vsftpd/vsftpd.log //设置日志文件名和路径,默认值为/var/log/vsftpd.log。

    xferlog_std_format=YES   //如果启用,则日志文件将会写成xferlog的标准格式,如同wu-ftpd 一般。默认值为关闭。

 

   connect_from_port_20=YES  //指定FTP使用20端口进行数据传输,默认值为YES。

   idle_session_timeout=600  //

    listen=YES  //设置多长时间不对FTP服务器进行任何操作,则断开该FTP连接,单位为秒。默认值为300 。

   pam_service_name=vsftpd //设置PAM使用的名称,默认值为/etc/pam.d/vsftpd。

    userlist_enable=YES  //是否启用vsftpd.user_list文件。

    tcp_wrappers=YES  //设置vsftpd是否与tcp wrapper相结合来进行主机的访问控制。



要添加的是下面几行


wKiom1cjJ6TRplxIAAAUvPwcDrQ230.png

上图中添加行解释

pam_service_name=vsftpd.v  //设置PAM使用的名称,默认值为/etc/pam.d/vsftpd。  注意:要在/etc/pam.d/建立vsftpd.v文件

(这里可以根据自己爱好设置路径,一般采用默认配置即可。)

guest_enable=YES  //启用虚拟用户。默认值为NO。

guest_username=ftpsite  //这里用来映射虚拟用户。默认值为ftp。(这里可以根据自己爱好设置用户,一般采用默认,如果自己设定了就要建立这个用户)

user_config_dir=/etc/vsftpd/vsftpd_user_conf  //虚拟用户的配置文件路径,所以别忘了在/etc/vsftpd/目录下新建一个vsftpd_user_conf文件夹。(这里的文件名字可以根据自己爱好设置,但是路径不能改动)



4、配置虚拟用户

比如我要添加一个叫jiaao的用户,ftp客户端就使用该用户名(密码后面设置)进行上传下载,在/etc/vsftpd/ vsftpd_user_conf新建一个名叫jiaao的文件。//文件名等于vsftpd_login.txt里面的账户名,否则下面设置无效

文件里面的内容为:

wKioL1cjKz_B58vqAAAWi6jsY-s426.png

上图中添加行解释

local_root=/home/ap/ftpsite/shanghu/jiaao  //该虚拟用户上传下载的根目录(可以根据自己爱好设置路径)

anon_world_readable_only=NO  //这个anon_world_readable_only参数意思是,当他为YES时候,文件的其他人必须有读的权限才允许下载,单单所有人为ftp且有读权限是无法下载的,必须其他人也有读权限,才允许下载,这是为安全性的一方面考虑,若为NO则只要ftp用户对文件有读权限即可下载

write_enable=YES  //可写(可上传)

anon_upload_enable=YES //

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

anon_umask=022


接下来在/etc/vsftpd/目录新建一个记录所有客户端用户(虚拟用户)的用户名密码的文本文档:  vsftpd_login.txt

里面的内容为:

jiaao

123

奇数行是用户名,偶数行是密码。

接着,生成虚拟用户认证的db文件

db_load -T -t hash -f /etc/vsftpd/vsftpd_login.txt /etc/vsftpd/ vsftpd_login.db

    随后,编辑认证文件/etc/pam.d/vsftpd.v, (如果你没有设置pam_service_name=vsftpd.v这个参数的话,那么就要编译默认的/etc/pam.d/vsftpd文件,而且要将里面原来的那些行给注释掉,然后再添加如下图的两行)

    增加以下两句

wKiom1cjKpiQhR0BAAAJYLi7aCE625.png

auth required pam_userdb.so db=/etc/vsftpd/ vsftpd_login

    account requiredpam_userdb.so db=/etc/vsftpd/ vsftpd_login

5、设置服务器上的目录权限

[root@localhost ap]# chown ftpsite -R /home/ap/ftpsite/

[root@localhost ap]# chmod 755 –R /home/ap/ftpsite/

注意:系统没有该用户时候要先添加该用户

6、验证是否可以登录ftp服务器

wKiom1cjKsjD63FRAAAn1zY6-EA965.png

登录成功。