zoukankan      html  css  js  c++  java
  • CentOS6.5 vsftpd 配置

    CentOS6.5
    vsftpd 配置文件为/etc/vsftpd/vsftpd.conf

    安装完软件后:
    1.默认匿名用户能够登陆,且限制在/pub目录内,
    2.本地用户可以登陆但因SElinux而无法登陆。
    3.ftpuser内用户无法登陆。(PAM限制)
    4.可利用 /etc/hosts.{allow|deny} 来作为基础防火墙;
    5.主动式联机的埠口为 port 20
    6.使用格林威治时间 (GMT)。『 use_localtime=YES 』可修改成本地时间。

    限制用户登陆的文件有两个:
    1./etc/vsftpd/ftpusers:就是 /etc/pam.d/vsftpd 这个档案的设定所影响的;(默认拒绝)
    2./etc/vsftpd/user_list:由 vsftpd.conf 的 userlist_file 所设定。
     默认为拒绝文件内的用户,如若想设置为允许文件内的用户:userlist_deny=NO

    修改配置文件:
    一、若想本地用户也能登陆。
    方法:关闭SElinux,setenforce=0 ,或查看/var/log/messages内容,根据提示修改SElinux设置。
    二、限制用户在家目录,指定用户不限制在家目录。
    chroot_local_user=YES-------------------限制所有用户在家目录
    chroot_list_enable=YES------------------开启允许的用户列表文件
    chroot_list_file=/etc/vsftpd/chroot_list--------用户列表文件
    三、禁止上传特定类型的文件
     deny_file={*.txt}

    其他参数配置说明:

    与服务器环境较相关的设定值:
    connect_from_port_20=YES (NO)
    listen_port=21
    dirmessage_enable=YES (NO)----进入目录显示消息
    message_file=.message
    listen=YES (NO)---------服务启动方式
    pasv_enable=YES (NO)------支持数据流的被动式联机方式
    use_localtime=YES (NO)
    write_enable=YES (NO)-----允许用户上传
    connect_timeout=60-----数据连接主动模式下,服务端连接客户端请求超时时间
    accept_timeout=60------被动模式下
    data_connection_timeout=300-------数据链路传输超时时间
    idle_session_timeout=300--------控制链路待机超时时间
    max_clients=0------独立服务模式,同时联机数
    max_per_ip=0-------同一IP的联机数
    pasv_min_port=0, pasv_max_port=0------被动联机模式端口号设置
    ftpd_banner
    banner_file=/path/file
    与实体用户较相关的设定值:
    guest_enable=YES (NO)-----设置所有用户使用guest身份登录
    guest_username=ftp------指定guest身份所使用的用户权限
    local_enable=YES (NO)
    local_max_rate=0-------限制用户传输速度,单位比特每秒
    chroot_local_user=YES (NO)-----限制在用户家目录
    chroot_list_enable=YES (NO)-------启用chroot_list文件
    chroot_list_file=/etc/vsftpd.chroot_list
    userlist_enable=YES (NO)------启用userlist文件
    userlist_deny=YES (NO)-------拒绝该文件用户登陆
    userlist_file=/etc/vsftpd/user_list
    匿名者登入的设定值:
    anonymous_enable=YES (NO)
    anon_world_readable_only=YES (NO)-----仅具有下载可读文件的权限
    anon_other_write_enable=YES (NO)-----写权限 ,若此为NO,则下面两个设置无效
    anon_mkdir_write_enable=YES (NO)------建立目录的权限
    anon_upload_enable=YES (NO)-------上传权限
    deny_email_enable=YES (NO)-----特殊email address抵挡
    banned_email_file=/etc/vsftpd/banned_emails
    no_anon_password=YES (NO)------NO的时候登入时会检查输入的email
    anon_max_rate=0-------限制传输速度
    anon_umask=077------上传档案的权限
    关于系统安全方面的一些设定值:
    ascii_download_enable=YES (NO)---优先使用ASCII格式下载文件
    ascii_upload_enable=YES (NO)----优先使用ASCII格式上传文件
    one_process_model=YES (NO)-----为每个联机创建一个进程,增加效能,消耗资源。硬件要求高,一般建议设置NO
    tcp_wrappers=YES (NO)-----支持tcp_wrappers控制
    xferlog_enable=YES (NO)-----开启上传下载记录
    xferlog_file=/var/log/xferlog-----设置记录文件位置
    xferlog_std_format=YES (NO)-----是否设定为 wu ftp 相同的登录档格式,需要使用wu ftp登录文件分析软件查看
    dual_log_enable=YES, vsftpd_log_file=/var/log/vsftpd.log-----登录档
    nopriv_user=nobody----运行服务的用户
    pam_service_name=vsftpd------pam 模块的名称,我们放置在 /etc/pam.d/vsftpd 即是这个

    虚拟用户登陆配置:

    一、多用户相同访问目录与权限:

    1.创建可登陆的账号和密码。

    #cat virtual_users.txt

    zhangsan

    123456

    lisi

    123456

    wangwu

    123456

    2.检查系统是否安装已经安装下列软件包,用于创建数据库文件

    #rpm -qa |grep db4

    db4-4.7.25-20.el_7.i686

    db4-cxx-4.7.25-20.el_7.i686

    db4-devel-4.7.25-20.el_7.i686

    db4-utils-4.7.25-20.el_7.i686

    3.使用db_load命令把virtual_users.txt 文件转换成数据库文件,并更改数据库文件的权限

    #db_load -T -t hash -f ./virtual_users.txt /etc/vsftpd/virtual_users.db

    #chmod 600 /etc/vsftpd/virtual_users.db

    4.新建一个虚拟用户的PAM文件,内容如下

    #cat /etc/pam.d/vsftpd.vu

    auth required /lib/security/pam_userdb.so db=/etc/vsftpd/virtual_users  64位用/lib64 替换/lib

    account required /lib/security/pam_userdb.so db=/etc/vsftpd/virtual_users

    5创建虚拟用户。设置该用户所需要访问的目录,并设置虚拟用户的访问权限

    #useradd -d /home/ftp  virtual_user

    #chmod 700 /home/ftp

    6.编辑vsftpd.conf配置文件:

    guest_enable=YES

    guest_username=virtual_user

    pam_sevice_name=vsftpd.vu

    virtual_use_local_privs=YES   虚拟用户和本地用户有相同的权限;

    或者:virtual_use_local_privs=NO时,虚拟用户和匿名用户有相同的权限,默认是NO。

    虚拟用户要么拥用本地用户权限要么拥有匿名权限,匿名权限对于家目录中的身份为其他用户。

    二、多用户不同访问目录与权限。

    1、2、3、4、5不变。

    6.创建ftp用户配制文件目录:/etc/vsftpd/user_conf

      #mkdir /etc/vsftpd/user_conf

    7.在/etc/vsftpd/user_conf目录中创建以用户名命名的配置文件zhangsan、lisi、wangwu

      “zhangsan”内容如下:

        local_root=/home/ftp (当然,你高兴也可以设置成其它,但要注意virtual用户对此目录的权限)

        anon_world_readable_only=NO (使download用户的能下载,也只能下载;写成YES,将不能列出文件和目录)

      “lisi”内容如下:

        local_root=/home/ftp

        anon_world_readable_only=NO

        write_enable=YES (写权限)

        anon_mkdir_write_enable=YES (新建目录权限)

        anon_upload_enable=YES(上传权限)

        anon_other_write_enable=YES(删除/重命名的权限)

       “wangwu”内容如下:

         local_root=/home/virtual_user    

        anon_world_readable_only=NO

        anon_umask=022 (由于web页面的特殊性,故单独设置上传文件权限为755,此掩码值可根据具体情况更改) 

        write_enable=YES (写权限)

        anon_mkdir_write_enable=YES (新建目录权限)

        anon_upload_enable=YES(上传权限)

        anon_other_write_enable=YES(删除/重命名的权限)

    8.在/etc/vsftpd.conf加入或者更改以下配置语句:

      anonymous_enable=NO

       local_enable=YES

      guest_enable=YES

      guest_username=virtual_user

      pam_service_name=ftp.vu

      user_config_dir=/etc/vsftpd/user_conf

       ==============================================

    用户1有上传,下载,创建文件,目录的权限;用户2只能下载;用户3可以上传下载,但不能删除目录 和文件;三个用户的家目录 为同一个。

    [root@test5 user_conf]# cat user1
    local_root=/home/ftp
    anon_world_readable_only=NO
    write_enable=YES
    anon_mkdir_write_enable=YES
    anon_upload_enable=YES
    anon_other_write_enable=YES

    [root@test5 user_conf]# cat user2
    local_root=/home/ftp
    anon_world_readable_only=NO


    [root@test5 user_conf]# cat user3
    local_root=/home/ftp
    anon_world_readable_only=NO
    write_enable=YES
    anon_upload_enable=YES

      ==============================================

    ftps
    1.检查 vsftpd 有无支持 ssl 模块:ldd $(which vsftpd) | grep ssl
    2.建立专门给 vsftpd 使用的凭证数据:
     cd /etc/pki/tls/certs
     make vsftpd.pem  需要填写证书相关信息
    3.修改 vsftpd.conf 的配置文件
     针对 SSL 所加入的特别参数!每个项目都很重要!
     ssl_enable=YES <==启动 SSL 的支持
     allow_anon_ssl=NO <==但是不允许匿名者使用 SSL
     force_local_data_ssl=YES <==强制实体用户数据传输加密
     force_local_logins_ssl=YES <==同上,但连登入时的帐密也加密
     ssl_tlsv1=YES <==支持 TLS 方式即可,底下不用启动
     ssl_sslv2=NO
     ssl_sslv3=NO
     rsa_cert_file=/etc/vsftpd/vsftpd.pem <==预设 RSA 加密的凭证档案所在


    限制文件大小?
    # cd /usr/local/proftpd/bin/
    # ftpquota -create -type=tally -table-path=/usr/local/proftpd/etc/ftpquota.tallytab
    # ftpquota -create -type=limit -table-path=/usr/local/proftpd/etc/ftpquota.limittab
    # ftpquota --type=limit --table-path=/usr/local/proftpd/etc/ftpquota.limittab --add-record --quota-type=user --name=tom --units=Mb --bytes-

    upload=50 --bytes-xfer=1

    # (上面意思是:限定tom用户空间大小为50M,上传文件大小为1M)

    ftpquota 具体用法参照 ftpquota --help--------------未证实

  • 相关阅读:
    关于有序查找的随笔
    Spring框架(一) 创建bean
    Linux常用命令
    Spring框架(二) bean的歧义性
    java实现图片文字识别的两种方法
    分享基于分布式Http长连接框架代码模型
    分享基于分布式Http长连接框架设计模型
    无限树Jquery插件zTree的使用方法
    分享基于分布式Http长连接框架
    使用vs编译事件来动态发布配置文件
  • 原文地址:https://www.cnblogs.com/guojintao/p/5760989.html
Copyright © 2011-2022 走看看