zoukankan      html  css  js  c++  java
  • vsftp 搭建及虚拟账号配置

    基于本地用户管理的配置
    一、 安装vsftpd

    yum -y install vsftpd
    chkconfig vsftpd on
    

    二、阻止匿名访问和切换根目录

    编辑 /etc/vsftpd/vsftpd.conf,找到下面两处配置并修改:

    # 禁用匿名用户
    anonymous_enable=NO
    
    # 禁止切换根目录
    chroot_local_user=YES
    

    三、创建用户

    创建一个用户 ftpuser

    useradd ftpuser
    

    为用户 ftpuser 设置密码

    echo "dAvK55EG" | passwd ftpuser --stdin
    

    限制该用户仅能通过 FTP 访问

    usermod -s /sbin/nologin ftpuser
    

    四、为用户分配主目录

    为用户 ftpuser 创建主目录并约定:
    /data/ftp 为主目录, 该目录不可上传文件
    /data/ftp/pub 文件只能上传到该目录下

    mkdir -p /data/ftp/pub
    

    创建登录欢迎文件 :

    echo "Welcome to use FTP service." > /data/ftp/welcome.txt
    

    设置访问权限:

    chmod a-w /data/ftp && chmod 777 -R /data/ftp/pub
    

    设置为用户的主目录:

    usermod -d /data/ftp ftpuser
    

    基于独立用户验证配置

    一、 安装vsftpd

    yum -y install vsftpd
    chkconfig vsftpd on
    

    二、 修改主配置文件

    vi /etc/vsftpd/vsftpd.conf
    
    # 允许匿名用户登陆,登陆时登陆名为 ftp 或 anonymous,口令为空
    anonymous_enable=YES
    # 允许本地用户登陆,登陆名为本地用户名,口令为本地用户的口令
    local_enable=YES
    # 允许本地用户写拥有FTP服务器文件的写权限
    write_enable=YES
    # 本地用户的文件默认掩码022,文件的默认最大权限为666,也就是上传文件的默认权限为644
    local_umask=022
    # 激活目录的欢迎信息功能
    dirmessage_enable=YES
    # 指定FTP使用20端口进行数据传输(默认FTP工作模式为被动模式,也就是PASV FTP,服务器将使用20端口与客户端进行数据传输)
    connect_from_port_20=YES
    # 启用上传和下载日志功能,该日志文件默认的存放位置为 /var/log/xferlog
    xferlog_enable=YES
    # 启用xferlog的标准格式输出
    xferlog_std_format=YES
    xferlog_file=/var/log/xferlog
    dual_log_enable=YES
    # ftp日志文件位置,需要手动touch
    vsftpd_log_file=/var/log/vsftpd.log
    # 以ascii模式传输数据
    ascii_upload_enable=YES
    ascii_download_enable=YES
    # 服务器独立运行
    listen=YES
    # 支持ipv6
    listen_ipv6=YES
    # 设置PAM使用的名称,默认值为 /etc/pam.d/vsftpd
    pam_service_name=vsftpd
    # 启动user_list文件(该选项需与userlist_deny选项配合使用,userlist_deny默认为YES,也就是说默认请况下user_list表中的用户将被阻止登陆ftp服务器)
    userlist_enable=YES
    # 设置vsftpd与tcp wrapper组合来进行访问控制,YES的情况下,vsftpd将检查/etc/hosts.allow以及/etc/hosts.deny中的设置,来进行主机的访问控制
    tcp_wrappers=YES
    # 设定启用虚拟用户功能
    guest_enable=YES
    # 指定虚拟用户的宿主用户
    guest_username=vftpdata
    user_config_dir=/etc/vsftpd/vuser_conf
    

    三、 设置虚拟账号认证

    #安装Berkeley DB工具,提供虚拟账号管理
    yum install db4 db4-utils
    
    #创建用户密码文本,注意奇行是用户名,偶行是密码
    vi /etc/vsftpd/vuser_passwd.txt
    
    backup
    123456
    
    #生成虚拟用户认证的db文件
    db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db
    
    #编辑认证文件,全部注释掉原来语句,再增加以下两句
    vi /etc/pam.d/vsftpd
    
    auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd
    account required pam_userdb.so db=/etc/vsftpd/vuser_passwd
    
    

    四、 创建虚拟用户宿主

    useradd -d /ftp_data vftpdata
    

    五、 配置虚拟用户

    #创建虚拟用户配置文件
    mkdir /etc/vsftpd/vuser_conf/
    
    #文件名等于vuser_passwd.txt里面的账户名
    vi /etc/vsftpd/vuser_conf/backup
    
    #虚拟用户根目录,根据实际情况修改
    local_root=/ftp_data/backup
    write_enable=YES
    anon_umask=022
    anon_world_readable_only=NO
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    anon_other_write_enable=YES
    
    

    剩下的可以添加PASV扩展了

    六、 端口及相关安全设置(能正常登录,无法获取目录列表)
    方案一:
    1、修改/etc/vsftpd/vsftpd.conf的配置文件,在文件末端添加:

    pasv_max_port=6666
    pasv_min_port=5555
    
    /etc/init.d/vsftpd restart
    

    2、添加一条防火墙规则

    /etc/init.d/iptables stop
    iptables -I INPUT -p tcp --dport 5555:6666 -j ACCEPT
    /etc/init.d/iptables save
    /etc/init.d/iptables start
    

    方案二:
    添加附加模块,链接追踪模块

    iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    modprobe ip_conntrack_ftp //临时加载
    
    /etc/sysconfig/iptables-config//这个是永久的
    IPTABLES_MODULES="ip_conntrack_netbios_ns ip_conntrack_ftp"
    
    -----------------------------------------------------
    说明:
      a).代码仅供学习交流
      b).本文根据自身经验及网络总结所作,如有错误,谢谢指教
      c).转载请注明出处。
    -----------------------------------------------------
  • 相关阅读:
    图上两点之间的第k最短路径的长度 ACM-ICPC 2018 沈阳赛区网络预赛 D. Made In Heaven
    ACM-ICPC 2018 徐州赛区网络预赛 B. BE, GE or NE
    poj 1986
    ACM-ICPC 2018 徐州赛区网络预赛 A. Hard to prepare
    ACM-ICPC 2018 徐州赛区网络预赛 G. Trace
    hdu 5533
    ACM Changchun 2015 L . House Building
    ACM Changchun 2015 J. Chip Factory
    一些小程序
    ACM-ICPC 2018 徐州赛区网络预赛 H. Ryuji doesn't want to study
  • 原文地址:https://www.cnblogs.com/xqbumu/p/5606331.html
Copyright © 2011-2022 走看看