zoukankan      html  css  js  c++  java
  • FTP服务器中vsftpd主配置文件解析

    /etc/vsftpd/vsftpd.conf

    #################
    匿名权限控制###############
    anonymous_enable=YES   #是否启用匿名用户
    no_anon_password=YES   #匿名用户login时不询问口令

    下面这四个主要语句控制这文件和文件夹的上传、下载、创建、删除和重命名。
    anon_upload_enable=(yes/no);  #控制匿名用户对文件(非目录)上传权限。
    anon_world_readable_only=(yes/no); #控制匿名用户对文件的下载权限
    anon_mkdir_write_enable=(yes/no); #控制匿名用户对文件夹的创建权限
    anon_other_write_enable=(yes/no); #控制匿名用户对文件和文件夹的删除和重命名

    注:匿名用户下载是使用的是nobody这个用户,所以相应的O这个位置要有R权限才能被下载。若想让匿名用户能上传和删除权限,必需设置
    write_enable=YES #全局设置,是否容许写入(无论是匿名用户还是本地用户,若要启用上传权限的话,就要开启他)
    anon_root=(none)  #匿名用户主目录
    anon_max_rate=(0) #匿名用户速度限制
    anon_umask=(077) #匿名用户上传文件时有掩码(若想让匿名用户上传的文件能直接被匿名下载,就这设置这里为073)
    chown_uploads=YES #所有匿名上传的文件的所属用户将会被更改成chown_username
    chown_username=whoever #匿名上传文件所属用户名

    #################本地用户权限控制###############
    write_enable=YES #可以上传(全局控制) 删除,重命名
    local_umask=022  #本地用户上传文件的umask
    userlist_enable=YES #限制了这里的用户不能访问
    local_root =(/user/ftp) #设置一个本地用户登录后进入到的目录,默认是进入本地用户的家目录
    user_config_dir  #设置用户的单独配置文件,用哪个帐户登陆就用哪个帐户命名
    download_enable=(YES|NO)  #限制用户的下载权限
    chown_uploads=YES #所有匿名上传的文件的所属用户将会被更改成chown_username
    chown_username=whoever #匿名上传文件所属用户名
    chroot_list_enable=YES #如果启动这项功能,则所有列在chroot_list_file之中的使用者不能更改根目录
    chroot_list_file=/etc/vsftpd/chroot_list #指定限制的用户文件
    user_config_dir= #后面跟存放配置文件的目录。用来实现不同用户不同权限。
       #在vsftpd.conf文件中加入这一句,
       #在相应的目录里面,为每个用户创建自己的配置文件,用来实现不同的权限
    可以通过以下三条配置文件来控制用户切换目录。
    chroot_list_enable=YES/NO   #设置是否启用chroot_list_file配置项指定的用户列表文件。
          #如果启动这项功能,则所有列在chroot_list_file之中的使用者不能更改根目录 .默认值为yes。


    chroot_list_file=/etc/vsftpd/chroot_list #指出被锁定在自家目录中的用户的列表文件。
    chroot_list_enable=YES

    通过与chroot_local_user=YES/NO搭配能实现以下几种效果:
    1、当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd.chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录。
    2、当chroot_list_enable=YES,chroot_local_user=NO时,在/etc/vsftpd.chroot_list文件中列出的用户,不能切换到其他目录;未在文件中列出的用户,可以切换到其他目录。
    3、当chroot_list_enable=NO,chroot_local_user=YES时,所有的用户均不能切换到其他目录。
    4、当chroot_list_enable=NO,chroot_local_user=NO时,所有的用户均可以切换到其他目录。

    ###################访问控制设置###################

    两种控制方式:一种控制主机访问,另一种控制用户访问。
    1、控制主机访问:
    tcp_wrappers=YES/NO
    设置vsftpd是否与tcp wrapper相结合来进行主机的访问控制。默认值为YES。如果启用,则vsftpd服务器会检查/etc/hosts.allow 和/etc/hosts.deny 中的设置,来决定请求连接的主机,是否允许访问该FTP服务器。这两个文件可以起到简易的防火墙功能。
    比如:若要仅允许192.168.10.1—192.168.10.254的用户可以连接FTP服务器,
    则在
    /etc/hosts.allow
    /etc/hosts.deny
    文件中添加以下内容:

    其格式如下:
    限制的服务:ip(网段)
    vsftpd:192.168.1.
    vsftpd:192.168.1.12
    vsftpd:192.168.1.0/255.255.255.0这里不能写成192.168.1.0/24

    2、控制用户访问:
    vsftpd.ftpusers  #用于保存不允许进行FTP登录的本地用户帐号。就是vsftp用户的黑名单
    vsftpd.user_list
    (1)设置禁止vsftpd.user_list文件中的用户登录:要在主配置文件vsftpd.conf中修改如下两项,
    userlist_enable=yes
    userlist_deny=yes
    说明:配置完以后,除了vsftpd.ftpusers文件和vsftpd.user_list文件中记录的ftp用户不能登录vsftp服务以外,其他的ftp用户都可以登录。
    (2)设置只允许vsftpd.user_list文件中的用户登录;同样的道理要把主配置文件vsftpd.conf 中的语句修改如下两项: 
    userlist_enable=yes
    userlist_deny=no
     说明:配置完以后,只允许vsftpd.user_list文件中记录的ftp用户能登录vsftp服务,其他的ftp用户都不可以登录。
     
    ###################超时设置##################
    idle_session_timeout=600 #空闲连接超时
    data_connection_timeout=120 #数据传输超时
    ACCEPT_TIMEOUT=60  #PAVS请求超时
    connect_timeout=60  #PROT模式连接超时

    ################服务器功能选项###############

    xferlog_enable=YES    #开启日记功能
    xferlog_std_format=YES   #使用标准格式
    xferlog_file=/var/log/xferlog #日志文件的位置
    log_ftp_protocol=NO    #当xferlog_std_format关闭且本选项开启时,记录所有ftp请求和回复,当调试比较有用.
    dual_log_enable=NO #是否启用vsftpd自己的日志
    vsftpd_log_file= #默认是/var/log/vsftpd.log
    syslog_enable=NO #是否写入/var/log/messages

    pasv_enable=YES    #允许使用pasv模式
    pasv_promiscuous+NO    #关闭安全检查,小心呀.
    port_enable=YES    #允许使用port模式
    prot_promiscuous    #关闭安全检查
    tcp_wrappers=YES    #开启tcp_wrappers支持
    pam_service_name=vsftpd   #定义PAM 所使用的名称,预设为vsftpd。
    nopriv_user=nobody    #当服务器运行于最底层时使用的用户名
    pasv_address=(none)    #使vsftpd在pasv命令回复时跳转到指定的IP地址.(服务器联接跳转?)
     
    #################服务器性能选项##############
    ls_recurse_enable=YES  #是否能使用ls -R命令以防止浪费大量的服务器资源
    one_process_model  #是否使用单进程模式
    listen=YES   绑定到listen_port指定的端口,既然都绑定了也就是每时都开着的,就是那个什么standalone模式
    text_userdb_names=NO   #当使用者登入后使用ls -al 之类的指令查询该档案的管理权时,预设会出现拥有者的UID,而不是该档案拥有者的名     #称。若是希望出现拥有者的名称,则将此功能开启。
    use_localtime=NO    #显示目录清单时是用本地时间还是GMT时间,可以通过mdtm命令来达到一样的效果
    #use_sendfile=YES    #测试平台优化
     
    ################信息类设置################
    ftpd_banner=welcome to FTP .  #login时显示欢迎信息.如果设置了banner_file则此设置无效
    dirmessage_enable=YES   #允许为目录配置显示信息,显示每个目录下面的message_file文件的内容
    setproctitle_enable=YES   #显示会话状态信息,关!

    ############## 文件定义 ##################
    chroot_list_file=/etc/vsftpd/vsftpd.chroot_list  #定义不能更改用户主目录的文件
    userlist_file=/etc/vsftpd/vsftpd.user_list  #定义限制/允许用户登录的文件
    banner_file=/etc/vsftpd/banner    #定义登录信息文件的位置
    banned_email_file=/etc/vsftpd.banned_emails  #禁止使用的匿名用户登陆时作为密码的电子邮件地址
    xferlog_file=/var/log/vsftpd.log   #日志文件位置
    message_file=.message     #目录信息文件

    ############## 目录定义 #################
    user_config_dir=/etc/vsftpd/userconf  #定义用户配置文件的目录
    local_root=webdisk    #此项设置每个用户登陆后其根目录为/home/username/webdisk
           #定义本地用户登陆的根目录,注意定义根目录可以是相对路径也可以是绝对路径.相对路径是针对用户家目录      #来说的.
    anon_root=/var/ftp     #匿名用户登陆后的根目录
     
    #############用户连接选项#################

    max_clients=100    #可接受的最大client数目
    max_per_ip=5    #每个ip的最大client数目
    connect_from_port_20=YES   #使用标准的20端口来连接ftp
    listen_address=192.168.0.2   #绑定到某个IP,其它IP不能访问
    listen_port=2121    #绑定到某个端口
    ftp_data_port=2020    #数据传输端口
    pasv_max_port=0    #pasv连接模式时可以使用port 范围的上界,0 表示任意。默认值为0。
    pasv_min_port=0    #pasv连接模式时可以使用port 范围的下界,0 表示任意。默认值为0。

    ##############数据传输选项#################
    anon_max_rate=51200  #匿名用户的传输比率(b/s)
    local_max_rate=5120000  #本地用户的传输比率(b/s)

    ##############安全选项#################
    Idle_session_timeout=600 #(用户会话空闲后10分钟)
    Data_connection_timeout=120 #(将数据连接空闲2分钟断)
    Accept_timeout=60  #(将客户端空闲1分钟后断)
    Connect_timeout=60  #(中断1分钟后又重新连接)
    Local_max_rate=50000  #(本地用户传输率50K)
    Anon_max_rate=30000  # (匿名用户传输率30K)
    Pasv_min_port=50000  # (将客户端的数据连接端口改在
    Pasv_max_port=60000  #50000—60000之间)
    Max_clients=200   #(FTP的最大连接数)
    Max_per_ip=4   #(每IP的最大连接数)
    Listen_port=5555  #(从5555端口进行数据连接)

  • 相关阅读:
    《android开发艺术探索》读书笔记(八)--WindowManager
    《android开发艺术探索》读书笔记(七)--动画
    《android开发艺术探索》读书笔记(六)--Drawable
    《android开发艺术探索》读书笔记(五)--RemoteViews
    PendingIntent
    桌面小部件开发
    《android开发艺术探索》读书笔记(四)--View工作原理
    Quartz.NET开源作业调度框架系列
    多线程下C#如何保证线程安全?
    图解.NET Stack和Heap的本质区别
  • 原文地址:https://www.cnblogs.com/losbyday/p/5860064.html
Copyright © 2011-2022 走看看