Centos6.X构建ftp服务器

 

vsftpd高级虚拟用户,FTP专有用户,FTP虚拟用户是FTP服务器的专有用户,使用虚拟用户登录FTP,只能访问FTP服务器提供的资源,大大增强了系统的安全。

本文的Linux系统是Centos6.6,selinux默认关闭.

yum -y install vsftpd

一、建立Vsftpd虚拟用户:

1、添加虚拟用户口令文件安装Vsftpd

[root@localhost ~]#vim /etc/vsftpd/virtusers

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

ftp1   //用户名

redhat   //密码

ftp2   //用户名

redhat  //密码

给此文件设置600权限

[root@localhost ~]#chmod 600 /etc/vsftpd/virtusers

2、生成虚拟用户口令认证文件

将刚添加的virtusers虚拟用户口令文件转换成系统识别的口令认证文件。

需要安装认证文件所需软件db4-utils

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

下面使用db_load命令生成虚拟用户口令认证文件。

生成一个hash码型的数据库文件供ftp虚拟用户使用。

[root@localhost ~]#db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db

设置600权限

[root@localhost ~]#chmod 600 /etc/vsftpd/virtusers.db

3、编辑vsftpd的PAM认证文件

[root@localhost ~]#cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.vu

[root@localhost ~]#vim /etc/pam.d/vsftpd.vu

添加如下这两行,其他注释:

(i386)

auth required /lib/security/pam_userdb.so db=/etc/vsftpd/virtusers
account required /lib/security/pam_userdb.so db=/etc/vsftpd/virtusers

(x86_64)

auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers


4、建立本地映射用户并设置宿主目录权限

所有的FTP虚拟用户需要使用一个系统用户,这个系统用户不需要密码,不需要本地shell。

[root@localhost ~]#useradd -s /sbin/nologin www (也可以-d 改变主目录)

5、配置vsftpd.conf

[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf

anonymous_enable=NO   //禁止匿名用户访问

chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
chroot_local_user=YES   //以上设置chroot功能,使整体ftp更安全

guest_enable=YES   //开启虚拟用户

guest_username=www   //FTP虚拟用户对应的系统用户

pam_service_name=vsftpd.vu //PAM认证文件

user_config_dir=/etc/vsftpd/virtusers_config   //用户配置文件存放目录

创建chroot_list空文件(chroot功能需设置)

[root@localhost ~]#touch /etc/vsftpd/chroot_list

[root@localhost ~]#vim /etc/vsftpd/virtusers_config/ftp1

 

local_root=/data/wwwroot/ftp1
write_enable=YES
anon_other_write_enable=yes
anon_world_readable_only=no
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_umask=022

6、重启vsftpd服务

[root@localhost ~]#service vsftpd restart

7,设置selinux

[root@localhost ~]#setsebool -P ftpd_disable_trans  on

8,client测试.

[root@host2 ~]# lftp 192.168.10.4
lftp 192.168.10.4:~> user ftp1
Password:redhat
lftp [email protected]:~> ls
-rw-r--r--    1 0        0               0 Oct 16 06:26 1.txt
lftp [email protected]:~> get 1.txt
lftp [email protected]:~> exit


二、虚拟用户高级设置:

1、virtual_use_local_privs参数

当virtual_use_local_privs=YES时,虚拟用户和本地用户有相同的权限;

当virtual_use_local_privs=NO时,虚拟用户和匿名用户有相同的权限,默认是NO。

2. 建立各个虚拟用户自身的配置文件

[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf

添加:

user_config_dir=/var/virtusers_config

[root@localhost ~]#mkdir /etc/vsftpd/virtusers_config

编辑ftp1的配置文件

[root@localhost ~]#vim /etc/vsftpd/virtusers_config/ftp1

anon_upload_enable=YES //具有上传权限

local_root=/home/virtuser/ftp1  //设置主目录

更多参数具体参见man vsftpd.conf

你可能感兴趣的:(centos,用户,vsftpd,休闲,虚拟)