zoukankan      html  css  js  c++  java
  • CentOS6 vsftp配置实例及详解

    CentOS6 vsftp配置实例及详解
    操作系统:CentOS 6.2
    vsFTP版本:2.2.2


    ###################################################
    比较重要的相关配置文件
    ###################################################
    /etc/vsftpd/vsftpd.conf  主配置文件
    /etc/pam.d/vsftpd     PAM模块的相关设置
    /etc/vsftpd.ftpusers     PAM模块指定的无法登陆用户的用户列表
    /etc/vsftpd.user_list     userlist_deny指定的用户列表
    /etc/vsftpd.chroot_list  chroot_list_enable指定的用户列表
    /etc/vsftpd.banned_emails banned_email_file指定的e-mail列表
    /etc/vsftpd/vsftpd_user_conf 虚拟用户的配置文件目录
    /var/log/vsftpd.log      日志文件


    /var/ftp/         默认匿名用户登录的根目录

    ###################################################

    与主机相关的设置值
    listen=YES(NO) yes为standalone模式,no为superdaemon模式
    listen_port=21
    listen_address=192.168.100.1

    主动模式
    port_enable=YES(NO)
    connect_from_port_20=YES(NO)
    ftp_data_port=20
    port_promiscuous=YES(NO) 安全检查,确保外出的数据只能连接到客户端上

    被动模式
    pasv_enable=YES(NO)
    pasv_min_port=64410
    pasv_max_port=64430 0表示随机取用而不限制
    pasv_address=192.168.100.1
    ftpd_banner=  欢迎文字
    banner_file=/etc/xxx.txt  更详细的欢迎文件

    dirmessage_enable=YES(NO)
    message_file=.message  切换目录时显示提示信息

    use_localtime=YES(NO) 是否启用本地时间,默认是GMT时间
    hide_file={*.mp3,*.h} 隐藏某些文件

    connect_timeout=60 主动
    accept_timeout=60  被动

    data_connection_timeout=300 等待时间内数据传输未完成则强制断线
    idle_session_timeout=300 空闲用户会话超时,超出时间没有数据传输则强制断线

    max_clients=0 最大并发连接数,0表示没有限制
    max_per_ip=0  每个IP最大并发连接数,0表示没有限制

    文件操作控制
    write_enable=YES(NO)
    hide_ids=YES(NO) 是否隐藏文件所有者和组信息,激活时所有文件的所有者和组都显示为ftp
    ls_recurse_enable=YES(NO) 是否允许递归列出目录列表
    secure_chroot_dir=/usr/share/empty 指向一个空目录,且ftp用户对此目录无写权限。被作为一个安全容器。

    新增文件的权限
    anon_umask=077 匿名用户上传文件权限
    file_open_mode=0666
    local_umask=022 本地用户上传文件权限
    ###################################################
    实体用户 /etc/passwd中的用户
    local_enable=YES(NO)
    local_root=/home/ubuntu 指定所有本地用户的根目录
    local_umask=022
    local_max_rate=0 0表示没有限制

    chroot_local_user=YES(NO)
    passwd_chroot_enable=YES(NO) 与chroot_local_user配合可以在每个用户的基础上指定chroot()容器的位置
    chroot_list_enable=YES(NO)
    chroot_list_file=/etc/vsftpd.chroot_list

    userlist_enable=YES(NO)
    userlist_deny=YES(NO)
    userlist_file=/etc/vsftpd.user_list

    ###################################################

    匿名用户 anonymous
    anonymous_enable=YES(NO)
    ftp_username=ftp 匿名用户映射为系统用户,默认值为ftp
    no_anon_password=YES(NO)
    anon_root=/var/ftp  匿名用户的根目录,默认为/var/ftp

    anon_world_readable_only=YES(NO)  no只允许浏览,yes只允许下载可阅读文档
    anon_other_write_enable=YES(NO)  删除,修改,重命名等
    anon_mkdir_write_enable=YES(NO)
    anon_upload_enable=YES(NO)

    deny_e-mail_enable=YES(NO)
    banned_e-mail_file=/etc/vsftpd.banned_e-mails

    anon_max_rate=0
    anon_umask=077

    chown_uploads=YES(NO) 是否修改匿名用户上传文件的所有权
    chown_username=ftp 指定匿名上传文件的所有权用户

    ###################################################

    虚拟用户 guest

    useradd -d /home/vsftp vsftp

    vi login.txt
    upload
    123456
    download
    123456
    admin
    admin

    db_load -T -t hash -f login.txt /etc/vsftpd_login.db
    chmod 600 /etc/vsftpd_login.db

    vi /etc/pam.d/vsftpd

    #%PAM-1.0
    session    optional     pam_keyinit.so    force revoke
    auth       required    pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
    auth       required    pam_shells.so
    auth       include    password-auth

    auth       required     /lib/security/pam_userdb.so db=/etc/vsftpd_login
    account       required     /lib/security/pam_userdb.so db=/etc/vsftpd_login

    account    include    password-auth
    session    required     pam_loginuid.so
    session    include    password-auth



    guest_enable=YES(NO)
    guest_username=ftp
    virtual_use_local_privs=NO   激活时虚拟用户使用与本地用户相同的权限
    user_config_dir=/etc/vsftpd/vsftpd_user_conf  额外虚拟用户配置文件目录,包含与特定虚拟用户同名的文件
    local_root=/home/upload  为每个虚拟用户建立自家目录

    vi /etc/vsftpd/vsftpd_user_conf/upload

    anon_world_readable_noly=NO
    write_enable=YES
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    anon_other_write_enable=YES
    local_root=/home/upload

    chmod 644 /etc/vsftpd/vsftpd_user_conf/upload
    mkdir /home/upload
    chown ftp:ftp /home/upload
    chmod 600 /home/upload

    ###################################################

    系统安全
    ascii_download_enable=YES(NO)
    ascii_upload_enable=YES(NO)

    one_process_model=YES(NO) 每建立一个连接都会有一个进程在负责,可以增加vsftpd的性能,但对硬件的配置要求较高,否则系统资源很容易耗尽。

    pam_service_name=vsftp
    tcp_wrappers=YES(NO)


    xferlog_enable=YES(NO)
    xferlog_file=/var/log/xferlog
    xferlog_std_format=YES(NO) 是否使用同wu-ftpd一样的xferlog标准格式

    log_ftp_protocol=YES(NO) 激活时所有的请求和响应都记录到日志中,xferlog_std_format不能激活,主要用于调试

    dual_log_enable=YES(NO) 生成vsftpd独有日志
    vsftpd_log_file=/var/log/vsftpd.log

    nopriv_user=nobody 默认以nobody作为服务执行者的权限。

    ######################################################################################################

    #xferlog日志格式及解释

    Wed May  2 06:24:58 2012 1 127.0.0.1 0 /share a _ o a liujun_ok@hotmail.com ftp 0 * i
    Sun May  6 01:25:44 2012 1 192.168.100.1 19771 /upload/gnome.xpm.gz b _ o a ftp 0 * c
    Sat May  5 10:51:26 2012 1 58.195.172.51 0 /ct6/images/product.img b _ o a ftp 0 * i

    Sat May  5 10:51:26 2012 当前时间        格式:DDD MMM dd hh:mm:ss YYYY
               传输时间        单位:秒
    58.192.172.51         远程主机名/IP        
               文件大小        单位:byte
    /ct6/images/product.img     文件名
               传输类型        a(asiic) b(binary)

               特殊处理标志        _ 不做任何特殊处理
                            C 压缩
                            U 非压缩
                            T tar格式

               传输方向        i 客户端到服务器
                            o 服务器到客户端

               访问模式        a aonymous 匿名
                            g guest 来宾
                            r real 实体用户
             用户名
    ftp             服务名
               认证方式        0 无认证
                            1 RFC931认证

               认证用户ID        * 表示无法获得ID

               完成状态        i incomplete
                            c complete



    ###################################################
    ###################################################
    以下是个人的配置文件

    ###################################################
    #比较重要的相关配置文件

    #/etc/vsftpd/vsftpd.conf     主配置文件
    #/etc/pam.d/vsftpd         PAM模块的相关设置
    #/etc/vsftpd/ftpusers         PAM模块指定的无法登陆用户的用户列表
    #/etc/vsftpd/user_list         userlist_deny指定的用户列表
    #/etc/vsftpd/chroot_list     chroot_list_enable指定的用户列表
    #/etc/vsftpd/banned_emails     banned_email_file指定的e-mail列表
    #/etc/vsftpd/userconf         虚拟用户的配置文件目录
    #/var/log/vsftpd.log          日志文件
    #/var/ftp/             默认匿名用户登录的根目录
    ##################################################
    ##################################################
    #匿名用户设置
    anonymous_enable=YES
    no_anon_password=YES
    anon_mkdir_write_enable=YES
    anon_other_write_enable=YES
    anon_upload_enable=YES
    anon_umask=022
    anon_max_rate=5000000
    chown_uploads=YES
    chown_username=liujun
    ftp_username=ftp
    anon_root=/var/ftp
    #deny_anon_password=YES
    #banned_email_file=/etc/vsftpd/banned_emails

    #################################################
    #本地用户设置
    local_enable=YES
    local_root=/var/ftp
    local_umask=002
    local_max_rate=10000000

    chroot_list_enable=YES
    chroot_local_user=YES
    passwd_chroot_enable=YES
    chroot_list_file=/etc/vsftpd/chroot_list

    #user_config_dir=/etc/vsftpd/userconf

    #################################################
    #来宾(虚拟)用户
    guest_enable=YES
    guest_username=ftp
    #################################################


    listen=YES
    listen_port=21
    #listen_address=192.168.100.1

    #主动模式
    port_enable=YES
    connect_from_port_20=YES
    ftp_data_port=20
    port_promiscuous=YES

    #被动模式
    #pasv_enable=YES
    #pasv_min_port=64000
    #pasv_max_port=64010
    ##pasv_address=none

    ascii_upload_enable=NO
    ascii_download_enable=NO

    data_connection_timeout=60
    idle_session_timeout=300
    connect_timeout=60
    accept_timeout=60

    max_clients=100
    max_per_ip=5

    use_localtime=YES

    dirmessage_enable=YES
    message_file=.message
    banner_file=/etc/vsftpd/welcome.txt

    xferlog_enable=YES
    xferlog_std_format=YES
    xferlog_file=/var/log/xferlog
    #log_ftp_protocol=YES

    dual_log_enable=YES
    vsftpd_log_file=/var/log/vsftpd.log


    write_enable=YES
    file_open_mode=0666

    ls_recurse_enable=NO
    hide_ids=YES
    secure_chroot_dir=/usr/share/empty
    #hide_file={*.mp3,*.flv}

    pam_service_name=vsftpd
    tcp_wrappers=YES
    userlist_enable=YES
    userlist_deny=YES
    userlist_file=/etc/vsftpd/user_list

    nopriv_user=nobody
    ###################################################
  • 相关阅读:
    LeetCode 93. Restore IP Addresses
    LeetCode 92. Reverse Linked List II
    LeetCode 94. Binary Tree Inorder Traversal
    javaweb中重定向和请求转发(response.sendRedirect()和request.getRequestDispatcher(rul).forward(request,response)))的区别
    java关于jdbc的配置与使用步骤
    关于php中的include html文件的问题,为什么html可以在php中执行
    yii2 无法显示debug条的问题解决方法
    elasticsearch报错expected <block end>, but found BlockMappingStart解决方法
    sysctl -p 报错问题的解决方法
    yii2 Rbac使用yii命令一键建表
  • 原文地址:https://www.cnblogs.com/lixuebin/p/10814670.html
Copyright © 2011-2022 走看看