linux搭建vsftpd虚拟用户访问

配置vsftpd服务
FTP服务器默认匿名可以访问。
1.搭建yum仓库
  [root@accp~]# vim /etc/yum.repos.d/dvd.repo
  [server]
  name=redhat6
  baseurl=file:///mnt/rheldvd       为本地光盘路径
  enabled=1
  gpgcheck=0

  [root@accp~]# yum install -y vsftpd*    yum安装vsftpd服务
 
  [root@accp~]# service  vsftpd restart    重启完服务后,默认可以匿名用户访问

  [root@accp~]# vim /etc/vsftpd/vsftpd.conf
  chown_uploads=YES    设置匿名上传内容的属主为"tom"
  chown_username=tom 
 
********************************************************
2.建立用户验证访问
 
  建立一个用户并设置密码
  [root@accp~]# useradd harry
  [root@accp~]# passwd  harry
 
  [root@accp~]# vim /etc/vsftpd/vsftpd.conf
    anonymous_enabl=NO/YES  控制匿名用户访问   注释掉匿名访问不能关闭匿名,注释匿名是设置为默认设置,默认设置是可以匿名访问
    ftp_username=ftp   此参数用来设置匿名用户的用户名
    anon_root=/var/ftp   设定匿名访问的根目录
    anon_world_readable_only=NO  控制是否允许用户下载可阅读的文件,YES为可以下载,NO为不可以下载但可浏览。
    anon_upload_enable=NO    允许匿名ftp用户访问并上传文件
    anon_mkdir_write_enable=NO   是否允许匿名用户有创建目录的权利
    anon_other_write_enable=NO   匿名用户是有除上传之外的其它权限
    local_enable=YES    本地用户访问
    write_enable=YES    本地用户写入
    local_umask=022 写入的权限为755
    chroot_local_user=YES   所有用户禁锢在家目录中,提高安全性,本地用户在访问时只能访问自己家目录。
    chroot_list_enable=YES  指定用户访问限止在自己的home目录下
    chroot_list_file=/etc/vsftpd/chroot_list    在/etc/vsftpd/chroot_list文件中列出的是被限制的用户的列表。
    dirmessage_enable=YES  访问某用户的FTP时显示的欢迎信息,在用户的家目录中编辑“vim .message”,方可显示效果   
    data_connection_timeout=120   数据传输时间为120秒   
    pam_service_name=vsftpd      可插拔模块 "vim /etc/pam.d/vsftpd" 控制 "vim /etc/vsftpd/ftpusers"中的用户denny与allow
                                 默认为denny
    userlist_enable=YES      YES与NO 决定"vim /etc/vsftpd/user_list" 中的用户能否被访问
    tcp_wrappers=YES     是否启用tcp_wrappers主机访问控制防御设置,"vim /etc/hosts.deny" "vim /etc/hosts.allow"   
    ftpd_banner=welcome to ftp service     定制FTP欢迎信息
    banner_file=/etc/vsftpd/banner  使用欢迎文件
    dirmessage_enable=YES 当用户切换到一个目录时,是否显示目录切换信息
    xferlog_enable=YES  是否记录ftp传输过程
    xferlog_file=/var/log/vsftpd.logftp  传输日志的路径和名字默认是/var/log/vsftpd.log
    xferlog_std_format=YES 是否使用标准的ftp xferlog模式
    connet_from_port_20=YES 是否确信商品传输来自20
    chown_uploads=YES 设定是否改变匿名上传的文件的拥有者
    chown_username=username 设定匿名上传的文件的的拥有者
    idle_session_timeout=600  设置默认的断开不活跃session的时间
    data_connection_timeout=120  设置数据传输超时时间
    ascil_upload_enable=YES
    ascil_download_enable=YES  是否使用ascil码方式上传和下载文件
    userlist_enable=YES  在/etc/vsftpd/user_list 文件中列表出用户不能访问FTP服务器
    tcp_wrappers=YES  是否支持tcp_wrappers
 

    [root@accp~]# service vsftpd restart   每当修改完配置,就重启一次

********************************************************
3.建立虚拟用户访问
    以上vsftpd 已经安装完毕,在此不做详细说明
 
    安装yum  install  -y  db4-utils-4.7.25-16.el6.x86_64    数据库文件,需要将虚拟用户转换为数据库文件,(这里为RHEL6.0的db4版本文件)
    或  yum  install -y db4*  全部安装
     [root@accp~]# yum install -y db4* 
    
    建立账户文件(vim  /etc/vsftpd/virtual.file)
     [root@accp~]# vim  /etc/vsftpd/virtual.file
        tom              奇数为用户名,偶数为密码
        tigerzhang
        john
        tigerzhang
    将virtual.file  文本内容加载到db数据库
     [root@accp~]# cd /etc/vsftpd
     [root@accp vsftpd]# db_load -T -t hash -f virtual.file  virtual.db
             注:在db_load命令中,"-T"选项允许应用程序能够将文本文件转译载入进数据库。由于我们之后是将虚拟用户的信息以文件方式存储在

文件里的,为了让vsftpd这个应用程序能够通过文本来载入用户数据,必须要使用-T。
                 "-t " 用来指定转译载入的数据库类型。可以指定的数据类型有Btree、Hash、Queue、Recon数据库,这里选Hash。
                 "-f"用于指定用户名/密码列表文件,如:virtual.file。参考:"/usr/share/doc/db4-utils-4.3.29/utility/db_load.html"
     [root@accp~]# chmod 600 /etc/vsftpd/virtual.*   降低文件权限增强安全性

      采用pam验证模块,如果没有可以进行"yum install -y pam*"安装,
     [root@accp~]# vim /etc/pam.d/vsftpd.vu
          auth    required   pam_userdb.so  db=/etc/vsftpd/virtual
          account required   pam_userdb.so  db=/etc/vsftpd/virtual
          如果是32位系统则需要把lib64换成lib,否则会报530错误无法登录,也可加"/lib64/security/pam_userdb.so"。
    
     建立系统帐户
     [root@accp~]# useradd -d /var/ftp  -s /sbin/nologin luce
     vsftpd虚拟用户需要有一个对应的系统用户帐号,该帐号无需登录shell,该用户帐号的宿主目录作为所有虚拟用户登录后共同的FTP棣目录,即

luce作为virtual.file文件内的用户映射。
     [root@accp~]# chmod 755 /var/ftp   给虚拟用户目录一个权限
        
     修改配置文件
     [root@accp~]# vim /etc/vsftpd/vsftpd.conf
     chroot_local_user=YES   禁锢在家目录中,增强安全性
     guest_enable=YES  启用用户映射功能
     virtual_use_local_privs=YES
     pam_service_name=vsftpd.vu     修改使用的PAM文件位置(与指定的PAM验证文件名一致)
     user_config_dir=/etc/vsftpd/virt_dir给虚拟用户个人vsftp的配置文件一个存放路径,/etc/vsftpd/virt_dir里面的文件都是虚拟用户的专用

配置文件,注意:配置文件名必须和虚拟用户名相同
     [root@accp~]# service vsftpd restart 重启服务
     [root@accp~]# mkdir /etc/vsftpd/virt_dir
     [root@accp~]# cd /etc/vsftpd/virt_dir
     [root@accp~]# vim luce      此文件里的配置可以根据需要配置项目
     guest_enable=YES (在centos下yes必须为小写字母) 
     guest_username=luce
     local_root=/var/ftp/
     idle_session_timeout=600
     data_connection_timeout=120
     max_clients=10
     max_per_ip=5
     local_max_rate=100000

 

 

1.建立虚拟用户访问
    以上vsftpd 已经安装完毕,在此不做详细说明
 
    安装yum  install  -y  db4-utils-4.7.25-16.el6.x86_64    数据库文件,需要将虚拟用户转换为数据库文件,(这里为RHEL6.0的db4版本文件)
    或  yum  install -y db4*  全部安装
     [root@accp~]# yum install -y db4* 
    
    建立账户文件(vim  /etc/vsftpd/virtual.file)
     [root@accp~]# vim  /etc/vsftpd/virtual.file
        tom              奇数为用户名,偶数为密码
        tigerzhang
        john
        tigerzhang
    将virtual.file  文本内容加载到db数据库
     [root@accp~]# cd /etc/vsftpd
     [root@accp vsftpd]# db_load -T -t hash -f virtual.file  virtual.db
             注:在db_load命令中,"-T"选项允许应用程序能够将文本文件转译载入进数据库。由于我们之后是将虚拟用户的信息以文件方式存储在

文件里的,为了让vsftpd这个应用程序能够通过文本来载入用户数据,必须要使用-T。
                 "-t " 用来指定转译载入的数据库类型。可以指定的数据类型有Btree、Hash、Queue、Recon数据库,这里选Hash。
                 "-f"用于指定用户名/密码列表文件,如:virtual.file。参考:"/usr/share/doc/db4-utils-4.3.29/utility/db_load.html"
     [root@accp~]# chmod 600 /etc/vsftpd/virtual.*   降低文件权限增强安全性

      采用pam验证模块,如果没有可以进行"yum install -y pam*"安装,
     [root@accp~]# vim /etc/pam.d/vsftpd.vu
          auth    required   pam_userdb.so  db=/etc/vsftpd/virtual
          account required   pam_userdb.so  db=/etc/vsftpd/virtual
          如果是32位系统则需要把lib64换成lib,否则会报530错误无法登录,也可加"/lib64/security/pam_userdb.so"。
    
     建立系统帐户
     [root@accp~]# useradd -d /var/ftp  -s /sbin/nologin luce
     vsftpd虚拟用户需要有一个对应的系统用户帐号,该帐号无需登录shell,该用户帐号的宿主目录作为所有虚拟用户登录后共同的FTP棣目录,即

luce作为virtual.file文件内的用户映射。
     [root@accp~]# chmod 755 /var/ftp   给虚拟用户目录一个权限
        
     修改配置文件
     [root@accp~]# vim /etc/vsftpd/vsftpd.conf
     chroot_local_user=YES   禁锢在家目录中,增强安全性
     guest_enable=YES  启用用户映射功能
     virtual_use_local_privs=YES
     pam_service_name=vsftpd.vu     修改使用的PAM文件位置(与指定的PAM验证文件名一致)
     user_config_dir=/etc/vsftpd/virt_dir给虚拟用户个人vsftp的配置文件一个存放路径,/etc/vsftpd/virt_dir里面的文件都是虚拟用户的专用

配置文件,注意:配置文件名必须和虚拟用户名相同
     [root@accp~]# service vsftpd restart 重启服务
     [root@accp~]# mkdir /etc/vsftpd/virt_dir
     [root@accp~]# cd /etc/vsftpd/virt_dir
     [root@accp~]# vim luce      此文件里的配置可以根据需要配置项目
     guest_enable=YES (在centos下yes必须为小写字母) 
     guest_username=luce
     local_root=/var/ftp/
     idle_session_timeout=600
     data_connection_timeout=120
     max_clients=10
     max_per_ip=5
     local_max_rate=100000


********************************************************
注意:
1.搭建完服务器后,要注意查看iptables 防火墙 和 setsebool
  iptables -F
  iptables -X
 
  getsebool -a 查看所有的bool信息
  setsebool -P 修改bool信息   将某一个条目改为   "on" 开启。
  setsebool -P allow_ftpd_anon_write on 
  chcon -t public_content_rw_t /var/ftp/mydir    设置上下文
  chcon -t public_content_rw_t/var/ftp/mydir   更改目录的条目

特此声明,由于在下是一个刚出道的学生,以上实验是自己在VMware里搭建的服务,并且运行正常。如有问题望君能及时分享提出宝贵修改意见,以供

能够学习参考,谢谢!!!
 

本文出自 “雕琢棱角” 博客,转载请与作者联系!

你可能感兴趣的:(apache,linux,mysql,PHP,samba,vsftpd)