centos6.6_vsftpd 虚拟账户FTP服务搭建

虚拟账户的 vsftpd FTP 服务搭建
环境centos6.6

实现效果
搭建一个基于虚拟用户的 FTP 站点,
虚拟用户:uplad 密码:upload ,可以上传下载
要求三个虚拟用户 vuser1、vuser2、vuser3 登录后
权限分别是:vuser1 能下载不能上传,vuser2 能上传不能下载,vuser3 既能上传也能下载。
yum install -y vsftpd
[ root@server vsftpd]#  cd /etc/vsftpd
[ root@server vsftpd]#  vi virtualuser.txt
upload
upload
vuser1
123456
vuser2
123123
vuser3
123456
//把新建的文本文件 virtualuser.txt 转换为 db 文件,安装 db4-utils 包
[root@server vsftpd]#yum install -y db4-utils
[root@server vsftpd]#db_load -T -t hash -f virtualuser.txt /etc/vsftpd/virtualuser_login.db

//这条命令生成用户数据库
#写个脚本,每次添加账号后,执行以下
[ root@LFTp-Svn01  vsftpd]#  cat set_new_user.sh 
#!bin/bash
datestmp=`date +%Y%m%d%H%M`
echo 'add user in virtualuser.txt'
db_load -T -t hash -f virtualuser.txt /etc/vsftpd/virtualuser_login.db
chmod 600 /etc/vsftpd/virtualuser_login.db  
ls -l /etc/vsftpd/virtualuser_login.db
cp chroot_list backup/chroot_list_$datestmp 
ls vuserconfig >chroot_list
[root@server vsftpd]# chmod 600 virtualuser_login.db 
//设置认证文件只对用户可读可写
[ root@server pam.d]#  cd /etc/pam.d
/*配置 PAM 文件
//为了使服务器能够使用数据库文件,对客户端进行身份验证,需要调用系统的
PAM 模块.PAM(Plugable Authentication Module)为可插拔认证模块,不必重新安
装应用系统,通过修改指定的配置文件,调整对该程序的认证方式。 PAM 模块
配置文件路径为/etc/pam.d/目录,此目录下保存着大量与认证有关的配置文件,
并以服务名称命名。

//修改 vsftpd 对应的 PAM 配置文件/etc/pam.d/vsftpd,可将原配置注释,然后作如下配置
cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd_def
[root@server pam.d]# vim /etc/pam.d/vsftpd (64位系统)
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/virtualuser_login
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/virtualuser_login

[ root@server pam.d]# vim /etc/pam.d/vsftpd.vu (32位系统)
auth sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/virtualuser_login  
account sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/virtualuser_login 

//auth 是指对用户的用户名口令进行验证。
accout 是指对用户的帐户有哪些权限哪些限制进行验证。
/lib/security/pam_userdb.so 表示该条审核将调用 pam_userdb.so 这个库函数进行。
最后的 db=/etc/vsftpd/virtualser_login 则指定了验证库函数将到这个指
定的数据库中调用数据进行验证。

[root@server vsftpd]# useradd virtualuser
//建立虚拟用户所对应的本地真实用户(可以创建任意用户)

//重新修改 vsftpd.conf 配置文件
[ root@newsales3 vsftpd]#  grep -v ^# /etc/vsftpd/vsftpd.conf 
    anonymous_enable=NO    #禁用匿名用户登录
local_enable=YES                    #启用本地用户登录设置
write_enable=YES                    #是否可以读写
local_umask=022                    
dirmessage_enable=YES
xferlog_enable=YES                #日志是否启用
connect_from_port_20=YES
    #xferlog_std_format=YES           #日志写到/var/log/xferlog,日志不显示中文,包含的内容更多,但是都是缩写,不直观
    xferlog_std_format=NO            #日志写到 /var/log/vsftpd.log,且更加易读
    chroot_list_enable=YES            #YES的时候,启用chroot 列表。
    chroot_list_file=/etc/vsftpd/chroot_list        #在该目录中的用户禁止切换目录,锁定在家目录
listen=YES 

pam_service_name=vsftpd       #安全审计模块名对应/etc/pam.d/vsftpd
userlist_enable=YES
tcp_wrappers=YES

#set for  late  8 hour
use_localtime=yes
#pasv_enable=YES                        ##开启被动模式
pasv_min_port=30000                    ##被动模式最小端口
pasv_max_port=31000                    ##被动模式最大端口
############### Virtual user  ############
guest_enable=yes
guest_username=virtualuser            #虚拟用户映射的真实系统用户是
virtual_use_local_privs=yes                #虚拟用户是否有映射的系统真实用户的权限
user_config_dir=/etc/vsftpd/vuserconfig    #设置虚拟用户配置文件的目录
############### Virtual user  ############


cd /etc/vsftpd/
mkdir -p /etc/vsftpd/vuserconfig    /etc/vsftpd/backup
touch /etc/vsftpd/chroot_list 
在没有建立虚拟账户配置文件测试默认虚拟用户的权限:
[ root@server ~]#  lftp  192.168.0.254
lftp 10.12.8.30:~> user vuser1 123456
lftp  [email protected]:/>  mkdir test
//创建一个目录作为测试

到此,vsftpd 已经可以使用


################################################
#下面来创建虚拟用户的权限设置
创建一个有读写权限的账号
cd /etc/vsftpd
cat vuserconfig/upload
local_root=/home/virtualuser/upload/soft
write_enable=yes
download_enable=yes

创建对应的家目录,并重启服务即可。
mkdir -p /home/virtualuser/upload/soft
chown -R virtualuser.virtualuser  /home/virtualuser

#生效账号密码
sh set_new_user.sh 
#重启vsftpd服务
/etc/init.d/vsftpd  restart

然后即可登录
################################################

建立虚拟帐号配置文件
    在 user_config_dir 指定路径下,建立与虚拟帐号同名的配置文件并添加相应
的配置字段,配置文件名称一定要和虚拟用户名相同。默认情况下虚拟用户的配
置文件会继承全局配置文件中的语句,如果冲突,虚拟用户配置文件有效。
write_enable=yes       #默认允许在文件系统写入权限
download_enable=yes #默认允许下载
[ root@server ~]# su - virtualuser
[ virtualuser@server ~]$  mkdir vuser1 vuser2 vuser3
//创建三个虚拟用户的根目录,此时在virtualuser的家目录中,
[virtualuser @server ~]$ exit 
  
//vuser1 只能上传权限配置
[ root@server vuserconfig]#  cat vuser1
local_root=/home/virtualuser/vuser1
write_enable=YES
download_enable=NO
//vuser2 只能下载配置
[ root@server vuserconfig]#  cat vuser2
local_root=/home/virtualuser/vuser2
write_enable=NO
download_enable=yes
//vuser3 上传下载等配置
[ root@server vuserconfig]#  cat vuser3
local_root=/home/virtualuser/vuser3
//然后依次登录vuser1,2,3 进行测试
[ root@server ~]#  lftp -u vuser1 192.168.0.254

########################
禁止用户切换目录
修改配置文件如下,然后添加禁止切换目录 的用户名到这个文件即可 /etc/vsftpd/chroot_list。
    chroot_list_enable=YES            #YES的时候,启用chroot 列表。
    chroot_list_file=/etc/vsftpd/chroot_list        #在该目录中的用户禁止切换目录,锁定在家目录

你可能感兴趣的:(LINUX,虚拟用户,vsftpd,ftp)