• VSFTP常用功能及参数配置


    配置超级服务

    vi /etc/xinetd.d/vsftpd
    service ftp
    {
        disable           = no
        socket_type       = stream
        wait              = no
        user              = root server            = /usr/sbin/vsftpd
        server_args       = /etc/vsftpd/vsftpd.conf
    # 上面这个 server 的设定请依照您的主机环境来设定!
    # 至于 server_args 则请写入您的 vsftpd 的配置文件完整名称即可!
        per_source        = 5     <==与同一 IP 的联机数目有关
        instances         = 200   <==同一时间最多的联机数目
        no_access         = 192.168.1.3
        banner_fail       = /etc/vsftpd/vsftpd.busy_banner
    # 上面这个文件就是当主机忙碌中,则在 Client 端显示的内容!
        log_on_success    += PID HOST DURATION
        log_on_failure    += HOST
    }
    
    [root@localhost ~]# vi /etc/vsftpd/vsftpd.conf
    listen=NO
    

    配置匿名用户

    [root@localhost ~]# vi /etc/vsftpd/vsftpd.conf
    anonymous_enable=YES
    
    Table 1: 匿名用户配置
    参数说明
    anonymous_enable=YES 是否允许匿名登录 yes=允许 no= 不允许
    ftp_username=ftp 设置ftp匿名登录时的用户名,默认 ftp
    no_anon_password=YES 匿名用户登录不需要输入密码 默认 YES
    deny_email_enable=YES 以banned_email_file里面的电子邮件为密码的匿名用户不能登录
    anon_root 匿名用户登录后的默认目录,不设置,默认为/var/ftp
    anon_upload_enable=YES 允许匿名登录用户上传文件 默认NO
    anon_mkdir_write_enable=YES 允许匿名登录用户创建目录 默认NO
    anon_other_write_enable=NO 允许匿名用户有较高的写权限包括 删除目录和重命名等 默认NO
    anon_world_readable_only=YES 允许匿名用户下载可读文件 默认YES , 设置为yes时只能下载不能直接在Ftp中阅读。
    chown_uploads=YES 设置是否改变匿名用户上传文件(非目录)的属主。默认值为NO。

    配置本地用户登录

    [root@localhost ~]# vi /etc/vsftpd/vsftpd.conf
    #下面是允许某些用户登入的项目  存在user_list文件中的用户不允许登入
    userlist_enable=YES
    userlist_deny=YES #如果这里改为NO  反过来只能存在user_list文件中的用户允许登入
    userlist_file=/etc/vsftpd/user_list
    anonymous_enable=NO
    
    #下面是限制用户只能访问自己的主目录  存在chroot_list文件中的用户只能访问自己的主目录
    chroot_local_user=YES
    chroot_list_enable=YES
    chroot_list_file=/etc/vsftpd/chroot_list
    

    配置虚拟用户登录

    #创建虚拟用户的专用目录
    [root@localhost ~]# mkdir /home/vsftpd/admin
    
    
    [root@localhost ~]# vi /etc/vsftpd/loginuser.txt
    #加入两个用户  奇数行代表用户名 偶数行代表密码
    admin
    admin123
    
    #执行命令 生成虚拟数据库
    [root@localhost ~]# db_load -T -t hash -f /etc/vsftpd/loginuser.txt /etc/vsftpd/login.db
    #设置数据库文件的访问权限
    [root@localhost ~]# chmod 600 /etc/vsftpd/login.db
    [root@localhost ~]# vi /etc/pam.d/vsftpd
    #将以下内容增加的原文件前面两行:
    auth    required        pam_userdb.so db=/etc/vsftpd/login
    account required        pam_userdb.so db=/etc/vsftpd/login
    auth    sufficient      pam_userdb.so db=/etc/vsftpd/login
    account sufficient      pam_userdb.so db=/etc/vsftpd/login
    #我们建立的虚拟用户将采用PAM进行验证,这是通过/etc/vsftpd.conf文件中的 语句pam_service_name=vsftpd 来启用的。
    
    #auth       required     pam_listfile.so item=user sense=deny file=/etc/vsftpd.ftpusers onerr=succeed
    #auth       required     pam_stack.so service=system-auth
    #auth       required     pam_shells.so
    #account    required     pam_stack.so service=system-auth
    #session    required     pam_stack.so service=system-auth
    
    可以看出前面两行是对虚拟用户的验证,后面是对系统用户的验证。 为了安全我一般把系统用户的登入关闭  使用虚拟账号登入ftp
    对虚拟用户的验证使用了sufficient这个控制标志。
    这个标志的含义是如果这个模块验证通过,就不必使用后面的层叠模块进行验证了;但如果失败了,
    就继续后面的认证,也就是使用系统真实用户的验证。
    虚拟用户创建本地系统用户
    
    #新建一个系统用户vsftpd, 用户登录终端设为/bin/false(即使之不能登录系统)
    [root@localhost ~]# useradd vsftpd -d /home/vsftpd -s /bin/false
    [root@localhost ~]# chown vsftpd:vsftpd /home/vsftpd #改变目录所属用户组
    
    根据需要创建/etc/vsftpd/vsftpd.conf,以下设置:
    listen=YES                             #监听为专用模式
    anonymous_enable=NO                    #禁用匿名登入
    dirmessage_enable=YES
    xferlog_enable=YES
    xferlog_file=/var/log/vsftpd.log       #记录ftp操作日志
    xferlog_std_format=YES
    chroot_local_user=YES                  #对用户访问只限制在主目录 不能访问其他目录
    guest_enable=YES                       #启用guest
    guest_username=vsftpd                  #使用虚拟账号形式
    user_config_dir=/etc/vsftpd/user_conf  #虚拟账号配置目录
    pam_service_name=vsftpd                #对vsftpd的用户使用pam认证
    local_enable=YES
    
    #执行以下命令
    [root@localhost ~]# mkdir /etc/vsftpd/user_conf
    [root@localhost ~]# cd /etc/vsftpd/user_conf
    [root@localhost ~]# vi /etc/vsftpd/user_conf/admin
    #加入以下内容 拥有所有权限
    write_enable=YES
    anon_world_readable_only=NO
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    anon_other_write_enable=YES
    local_root=/home/vsftpd/admin
    
    #如果不能读写操作 可能是目录权限不够需要设置权限 试试看
    [root@localhost ~]# chmod 777 /home/vsftpd/admin
    

    使用SSL登入

    [root@localhost ~]# cd /etc/pki/tls/certs/
    [root@localhost ~]# openssl req -new -x509 -nodes -out vsftpd.pem -keyout vsftpd.pem
    [root@localhost ~]#vi /usr/local/etc/vsftpd.conf
    ssl_enable=YES(开启vsftpd对ssl协议的支持)
    ssl_sslv2=YES(支持SSL v2 protocol)
    ssl_sslv3=YES(支持SSL v3 protocol)
    ssl_tlsv1=YES(支持TSL v1)
    rsa_cert_file=/etc/pki/tls/certs/vsftpd.pem(证书的路径)
    
    ssl_enable=YES
    ssl_sslv2=YES
    ssl_sslv3=YES
    ssl_tlsv1=YES
    

    这样重启vsftpd 就可以用客户端来尝试进行SSL加密连接了 。

    相关参数说明:

    Table 2: ssl 加密协议配置
    参数说明
    allow_anon_ssl=NO 是否允许SSL连接,启用SSL后才可以使用此参数,默认NO
    ssl_enable=NO 是否启用ssl 安全连接 默认NO 如果设置为yes,vsftpd。
      将启用openSSL,通过SSL支持安全连接和数据传输
    force_local_logins_ssl=YES 是否对非匿名用户登录加密 默认yes
    force_local_data_ssl=YES 是否对非匿名用户传输加密 默认yes
    force_anon_logins_ssl=NO 匿名用户登录时是否加密 默认为no
    force_anon_data_ssl=NO 匿名用户数据传输时是否加密 默认为no
    ssl_sslv2=NO 是否开户sslv2协议。 默认NO ,如果设置为yes,
      前提为ssl_enable=YES
    ssl_sslv3=NO 是否开户sslv3协议。 默认NO ,如果设置为yes,
      前提为ssl_enable=YES
    dsa_cert_file 为ssl加密连接指定dsa证书位置 默认 无
    ssl_ciphers 是否指定加密方式 默认 DES-CBC3-SHA

    日志文件


    参数说明
    dual_log_enable=NO # 是否启用双日志,默认NO 如果设置为yes,则分别在/var/log/xferlog、
      var/log/vsftpd.log里记录日志。前一个为wu-ftpd格式,可被通用工具
      分析,后一个为vsftpd的专用格式
    xferlog_enable=YES # 激活上传和下传的日志 依赖 参数xferlog_std_format的设置
    xferlog_std_format=YES # 使用标准格式记录上传、下传日志
    syslog_enable=NO # 是否关闭vsftpd的日志并记录系统日志 默认NO ,如果设置为YES,系
      统日志会记录到/var/log/vsftpd.log,而VSFTPD的日志进程将停止。

    传输模式


    参数说明
    ascii_download_enable=YES 是否启用ascii模式下载文件 默认 NO
    ascii_upload_enable=YES 是否启用ascii模式上传文件 默认 NO
    async_abor_enable=NO 是否启用强制中止传输文件 默认 NO 启用此参数是为了
      免中止传输时的客户端挂死。只有特殊情况下才使用。
    background=NO 是否后台启动vsftpd监听 默认 NO 启用后,VSFTPD将
      监听进程置于后台,当访问vsftpd服务时,console 会返
      回到shell 模式
    check_shell=YES 检测是否有可用的shell环境 默认 YES
    userlist_enable=YES 启用user_list 文件的检查 默认 NO 为YES时检查
      user_list文件中的用户列表,为NO 时不检测该文件
    userlist_deny=NO 只有在userlist_enable 启用时有效,默认YES .
      YES: 表示user_list文件中的用户不允许登录ftp
      NO: 表示只允许user_list文件中的用户登录FTP

    传输速率设置


    参数说明默认值
    anon_max_rate 匿名用户允许的最大传输速率 0秒
    local_max_rate 本地认证用户的最大传输速率 0秒

    超时设置


    参数说明默认值
    accept_timeout 尝试连接时间 60s
    data_connection_timeout 数据传输延迟的最大时间,超过限制,会话将被终止 300s
    idle_session_timeout 连接建立后,两次ftp命令之间的时间间隔,超时会话将被终止 300s

    10 用户创建的文件的权限


    参数说明默认值
    anon_umask 匿名用户创建的文件的默认权限 022
    local_umas 本地用户创建的文件的默认权限 022

    11 连接数设置


    参数 说明 默认值
    max_clients 允许的最大连接数 0
    max_per_ip 单个IP允许的最大连接数 0

    12 端口设置


    参数说明默认值
    listen_port=21 FTP服务器建立连接所侦听的端口 21
    ftp_data_port 数据传输所使用的默认端口 20
    connect_from_port_20=YES 指定FTP数据传输连接使用20端口,设置为NO时,则进 NO
      行数据连接时,所使用的端口由ftp_data_port指定  
    pasv_max_port=0 passive 模式下数据传输使用的端口上限 0
    pasv_mim_port=0 passive 模式下数据传输使用的端口下限 0

    13 用户访问权限

    参数说明
    chroot_list_enable=YES 是否改变用户的根目录, 默认 NO。 当设置为YES时,需要以root
      用户做如下操作:
      mkdir /etc/vsftpd/userconf;
      cat >>$username<<eof
      local_root=$path
      EOF
      说明 "$username" 是需要改变默认根目录的用户比如用户aaa
      ,$path 为你想要用户aaa默认访问的路径 ,比如/data/aaa
    chroot_list_enable=YES 设置是否启用chroot_list_file配置项指定的用户列表文件。
      默认值为NO
    chroot_list_file=/etc/vsftpd/chroot_list 用于指定存储用户列表文件,该文件用于控制哪些用户只可以
      访问自己的根目录,不可以访问根路径的上级路径目录
    chroot_local_user=YES 用于指定用户列表文件中的用户是否允许切换到上级目录。默认值为NO。
      通过搭配能实现以下多种效果。见表格下方。

    ①当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd/chroot_list文件中列出的用户,可以切换到根路径的上级路径;未在文件中列出的用户,则不能切换。

    ②当chroot_list_enable=YES,chroot_local_user=NO时,在/etc/vsftpd/chroot_list文件中列出的用户,不能切换到根路径的上级路径;未在文件中列出的用户,则可以切换。

    ③当chroot_list_enable=NO,chroot_local_user=YES时,所有的用户均不能切换到用户根路径的上级路径

    ④当chroot_list_enable=NO,chroot_local_user=NO时,所有的用户均可以切换到用户根路径的上级路径

  • 相关阅读:
    106. Construct Binary Tree from Inorder and Postorder Traversal
    105. Construct Binary Tree from Preorder and Inorder Traversal
    449. Serialize and Deserialize BST
    114. Flatten Binary Tree to Linked List
    199. Binary Tree Right Side View
    173. Binary Search Tree Iterator
    98. Validate Binary Search Tree
    965. Univalued Binary Tree
    589. N-ary Tree Preorder Traversal
    eclipse设置总结
  • 原文地址:https://www.cnblogs.com/ip99/p/13026547.html
Copyright © 2020-2023  润新知