vsftpd配置虚拟用户

post by rocdk890 / 2012-3-28 11:20 Wednesday linux技术
  今天公司同事要修改网站,但我不想去配置vsftpd的本地用户,就选择了虚拟用户,虚拟用户是什么意思呢,就是说你创建的FTP用户,实际上和服务器自身的用户没关系,当你进行FTP操作的时候,他会将FTP用户映射到服务器上的某个用户或组.虚拟用户有着较为灵活的权限控制,可以根据单独的配置文件控制上传和下载权限.

   系统:centos 5.5
    ip:192.168.10.17

1.创建FTP用户密码文件的db,我们使用db4组件.

    yum -y install db4 db4-devel db4-java db4-utils db4-tcl vsftpd

创建一个所有虚拟用户共用的一个本地用户
    
    useradd vuser -s /sbin/nologin
    passwd vuser

创建密码文件,格式如下:

    vi /etc/vsftpd/vuser

    ftptemp
    passwd
    temp
    passwd
点击查看原图

改变密码文件的用户权限

    chmod 600 /etc/vsftpd/vuser

转换为DB文件,指令可能是:db4_load

    db_load -T -t hash -f vuser vuser.db
    chmod 600 /etc/vsftpd/vuser.db

创建基于vuser的PAM授权文件

    cp /etc/pam.d/vsftpd /etc/pam.d/ftp.vu

清空加入以下内容,注意如果是64位的操作系统,则路径为/lib64,

    vi /etc/pam.d/ftp.vu
    auth    required        /lib/security/pam_userdb.so     db=/etc/vsftpd/vuser
    account required        /lib/security/pam_userdb.so     db=/etc/vsftpd/vuser
点击查看原图

2.修改配置文件(开启匿名和虚拟账户)

    cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.old
    vi /etc/vsftpd/vsftpd.conf

    local_enable=YES
    local_umask=022
    write_enable=NO
    anonymous_enable=YES
    anon_root=/var/ftp/pub
    anon_upload_enable=YES
    anon_mkdir_write_enable=NO
    anon_other_write_enable=NO
    chroot_local_user=YES
    guest_enable=YES
    guest_username=vuser
    user_config_dir=/etc/vsftpd/user_conf
    listen=YES
    secure_chroot_dir=/tmp
    pam_service_name=ftp.vu
    connect_from_port_20=YES
    xferlog_enable=YES
    dual_log_enable=YES
    xferlog_file=/var/log/xferlog
    vsftpd_log_file=/var/log/vsftpd.log

注意上文红色部分,即为虚拟用户映射到服务上的用户名,vuser

3.创建虚拟账户配置(管理员账户、上传账户)

    mkdir /etc/vsftpd/user_conf
    vi /etc/vsftpd/user_conf/ftptemp

    local_root=/var/www/vhosts/wwwroot
    anon_world_readable_only=NO
    write_enable=YES
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    anon_other_write_enable=YES
    anon_umask=022

    vi /etc/vsftpd/user_conf/temp

    local_root=/var/www/vhosts/upload
    anon_world_readable_only=NO
    write_enable=YES
    anon_upload_enable=YES
    anon_umask=022

4.重启vsftpd配置开机自启动

    /etc/init.d/vsftpd restart 或 service vsftpd restart
    chkconfig vsftpd on

5.配置iptables和selinux放过ftp

    iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
    service iptables save
    vi /etc/sysconfig/iptables-config
点击查看原图
    setsebool -P ftpd_disable_trans 1
    service vsftpd restart
    service iptables restart 

6.对vsftpd进行测试
先给ftp要访问的文件夹赋权限
点击查看原图

在windows下的cmd里,输入ftp ip,如下图
点击查看原图

如果登录成功,那恭喜你,如果没有无法连接或登录不上,请检查配置和防火墙.

夜空- 本站版权
1、本站所有主题由该文章作者发表,该文章作者与夜空享有文章相关版权
2、其他单位或个人使用、转载或引用本文时必须同时征得该文章作者和夜空的同意
3、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
4、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
5、原文链接:blog.slogra.com/post-162.html

标签: centos iptables 配置 ftp vsftpd windows 虚拟 虚拟用户 selinux

评论: