首页 > 代码库 > 企业级FTP服务器虚拟用户的搭建 ---RHEL6.x

企业级FTP服务器虚拟用户的搭建 ---RHEL6.x

企业级FTP服务器虚拟用户的搭建 ---RHEL6.x

 

前言:

    所谓温故知新,今天在整理之前的学习笔记的时候,无意间看到了VSFTP虚拟用户的字眼,也可能是由于在平时所用的FTP服务器通常是用setfacl来实现安全共享,忽略了系统用户安全的问题,vsftp虚拟用户的实现方式也变得模糊,今天就一起来回顾一下vsftp虚拟用户的搭建。

 

db4-utils+vsftpd 搭建虚拟用户

      个人认为虚拟用户对于企业级的VSFTP还是很有必要的,如果有人想要恶意破坏服务器系统的话,对方知道了你的系统用户如果再破出密码,对服务器的安全也是很有威胁的,虚拟用户能够做到的就是,给你提供的ftp用户并不存在于我的ftp服务器上,这样即使你知道用户名密码,对我的服务器都没有任何威胁。

 

1.安装db4-utils和vsftpd

 

    yum -y install vsftpd db4-utils

    vsftpd的虚拟用户数据库是使用Berkeley DB格式的数据库文件。建立该数据库文件需要用到db_load命令工具,db_load命令依赖于db4-utils软件包,所以需要安装db4-utils。

 

 

2.创建FTP登录时的用户名和密码列表文件

 

    [root@wyh vsftpd]# cat  /etc/vsftpd/virtual_user.list
    user1 #奇数行为用户名,偶数行为前一行的用户名的密码
    123
    user2
    456
    
  注意:此文件中空格也代表一行,不要添加额外的行

 

3.把用户名和密码列表文件,使用db_load工具转化为DB数据库文件

   
    [root@wyh vsftpd]#db_load -T -t hash -f /etc/vsftpd/virtual_user.list /etc/vsftpd/virtual_user.db
    [root@wyh vsftpd]# file /etc/vsftpd/virtual_user.db
    /etc/vsftpd/virtual_user.db: Berkeley DB (Hash, version 9, native byte-order)
    #db_load -T:转换
    # -t hash:指定读取数据文件的基本方法
    # -f /etc/vsftpd/virtual_user.list:用户名和密码列表文件
    #/etc/vsftpd/virtual_user.db:转化为Berkeley DB数据库文件

 

4.建立访问ftp的根目录及虚拟用户对应的系统用户

   
    [root@wyh vsftpd]# useradd -d /var/ftproot -s /sbin/nologin virtual
    #此用户不能登录系统,-d指定此用户的家目录
    [root@wyh vsftpd]# chown virtual:virtual /var/ftproot/
    [root@wyh vsftpd]# chmod 755 /var/ftproot/

 

5.建立pam认证文件,也就是说你刚刚用load_db工具将密码文件转换为数据库文件,现在你要创建vsftp.vu文件告诉pam这个认证文件的位置

 

    [root@wyh vsftpd]# cat  /etc/pam.d/vsftpd.vu
    #%PAM-1.0
    auth required pam_userdb.so db=/etc/vsftpd/virtual_user
    account required pam_userdb.so db=/etc/vsftpd/virtual_user
 

 

6.修改配置文件,使vsftpd能支持虚拟用户

 

    [root@wyh vsftpd]# cat /etc/vsftpd/vsftpd.conf |grep -vE ‘#|^$‘
    anonymous_enable=NO
    local_enable=YES
    write_enable=YES
    local_umask=022
    anon_umask=022
    dirmessage_enable=YES
    xferlog_enable=YES
    connect_from_port_20=YES
    xferlog_std_format=YES
    listen=YES
    userlist_enable=YES
    tcp_wrappers=YES
    guest_enable=YES                              #启用用户映射功能
    guest_username=virtual                       #将用户映射为之前创建的不能登录系统的用户virtual
    pam_service_name=vsftpd.vu              #指定pam认证的文件
    local_root=/var/ftproot                          #指定ftp的根目录
    user_config_dir=/etc/vsftpd/chroot_list #指定给用户配置权限目录的路径

 

7)创建为虚拟用户分配权限的目录,及设置虚拟用户权限的文件,此文件必须以虚拟用户名命名。

 

    [root@wyh vsftpd]# mkdir /etc/vsftpd/chroot_list
    #此目录的名称一定要与VSFTP开启虚拟用户的配置文件所指向的user_config_dir路径名称一致
    [root@wyh vsftpd]# touch /etc/vsftpd/chroot_list/user1
    #创建之前以用户名命名为文件,此用户存在于用户名密码列表文件中
 
    [root@wyh vsftpd]# touch /etc/vsftpd/chroot_list/user2
    [root@wyh vsftpd]# cd chroot_list/
    [root@wyh chroot_list]# ls
    user1 user2
 
    [root@wyh chroot_list]# echo "anon_upload_enable=YES" >>/etc/vsftpd/chroot_list/user1
    #为user1用户,设置可以上传文件的权限
    [root@wyh chroot_list]# cat  /etc/vsftpd/chroot_list/user2
    anon_upload_enable=YES                         #user2也可以上传文件的权限
    anon_mkdir_write_enable=YES                 #为user2用户设置可以创建文件的权限
 

 

8)大功告成!去验证吧。

本文出自 “Hello_world” 博客,请务必保留此出处http://gooder.blog.51cto.com/9178822/1440512

企业级FTP服务器虚拟用户的搭建 ---RHEL6.x