zoukankan      html  css  js  c++  java
  • Proftp最简匿名访问配置

    前言

    每一次做ftp的配置都要弄半天,找文档,各种权限控制的坑,折腾半天,这次还是准备记录下来,以备不时之需,这里不配置什么高级的功能,就去实现一个最简单的配置

    匿名用户的上传和下载

    配置proftp过程

    配置过程尽量少的动原配置文件,需要共享的为/share/a目录,首先修改默认的目录

    DefaultRoot                     ~ !adm
    

    修改为:

    DefaultRoot                     /share
    

    让默认的根目录为 /share,默认的为用户的根目录,匿名用户对应的ftp用户的根目录

    修改匿名用户的目录

    <Anonymous ~ftp>
    

    修改为

    <Anonymous /share>
    

    修改原匿名用户ftp的用户目录为/share

    修改默认屏蔽权限WRITE

        <Limit WRITE SITE_CHMOD>
          DenyAll
        </Limit>
    

    改成

        <Limit  SITE_CHMOD>
          DenyAll
        </Limit>
    

    默认会屏蔽掉写的操作,就没法上传了

    配置访问的目录
    默认启用了vroot,所以写路径的时候写相对路径即可,添加如下:

        <Directory "/*">
            AllowOverwrite          no
            <Limit ALL>
                DenyAll
            </Limit>
            <Limit DIRS>
                AllowAll
            </Limit>
        </Directory>
        <Directory "/a">
            AllowOverwrite          no
            <Limit ALL>
                AllowAll
            </Limit>
        </Directory>
    

    /a就代表的是/share/a

    开启匿名
    修改配置vim /etc/sysconfig/proftpd

    PROFTPD_OPTIONS=""
    

    改成:

    PROFTPD_OPTIONS="-DANONYMOUS_FTP"
    

    给目录访问权限

    chown ftp:ftp /share/a
    chmod 755  /share/a
    

    启动proftp服务

    systemctl restart proftpd
    

    完整配置文件

    ServerName			"ProFTPD server"
    ServerIdent			on "FTP Server ready."
    ServerAdmin			root@localhost
    DefaultServer			on
    DefaultRoot			~ !adm
    AuthPAMConfig			proftpd
    AuthOrder			mod_auth_pam.c* mod_auth_unix.c
    UseReverseDNS			off
    User				nobody
    Group				nobody
    MaxInstances			20
    UseSendfile			off
    LogFormat			default	"%h %l %u %t "%r" %s %b"
    LogFormat			auth	"%v [%P] %h %t "%r" %s"
    LoadModule mod_ctrls_admin.c
    LoadModule mod_vroot.c
    ModuleControlsACLs		insmod,rmmod allow user root
    ModuleControlsACLs		lsmod allow user *
    ControlsEngine			on
    ControlsACLs			all allow user root
    ControlsSocketACL		allow user *
    ControlsLog			/var/log/proftpd/controls.log
    <IfModule mod_ctrls_admin.c>
      AdminControlsEngine		on
      AdminControlsACLs		all allow user root
    </IfModule>
    <IfModule mod_vroot.c>
      VRootEngine			on
    </IfModule>
    <IfDefine TLS>
      TLSEngine			on
      TLSRequired			on
      TLSRSACertificateFile		/etc/pki/tls/certs/proftpd.pem
      TLSRSACertificateKeyFile	/etc/pki/tls/certs/proftpd.pem
      TLSCipherSuite		ALL:!ADH:!DES
      TLSOptions			NoCertRequest
      TLSVerifyClient		off
      TLSLog			/var/log/proftpd/tls.log
      <IfModule mod_tls_shmcache.c>
        TLSSessionCache		shm:/file=/var/run/proftpd/sesscache
      </IfModule>
    </IfDefine>
    <IfDefine DYNAMIC_BAN_LISTS>
      LoadModule			mod_ban.c
      BanEngine			on
      BanLog			/var/log/proftpd/ban.log
      BanTable			/var/run/proftpd/ban.tab
      BanOnEvent			MaxLoginAttempts 2/00:10:00 01:00:00
      BanMessage			"Host %a has been banned"
      BanControlsACLs		all allow user ftpadm
    </IfDefine>
    <IfDefine QOS>
      LoadModule			mod_qos.c
      QoSOptions			dataqos throughput ctrlqos lowdelay
    </IfDefine>
    <Global>
      Umask				022
      AllowOverwrite		yes
      <Limit ALL SITE_CHMOD>
        AllowAll
      </Limit>
    </Global>
    <IfDefine ANONYMOUS_FTP>
      <Anonymous /share/>
        User			ftp
        Group			ftp
        AccessGrantMsg		"Anonymous login ok, restrictions apply."
        UserAlias			anonymous ftp
        MaxClients			10 "Sorry, max %m users -- try again later"
        DisplayLogin		/welcome.msg
        DisplayChdir		.message
        DisplayReadme		README*
        DirFakeUser			on ftp
        DirFakeGroup		on ftp
        <Limit  SITE_CHMOD>
          DenyAll
        </Limit>
        <IfModule mod_vroot.c>
           <Directory "/*">
    	       AllowOverwrite          no
            <Limit ALL>
            DenyAll
            </Limit>
            <Limit DIRS>
            AllowAll
            </Limit>
           </Directory>
           <Directory "/a">
                  AllowOverwrite          no
            <Limit ALL>
              AllowAll
            </Limit>
           </Directory>
        </IfModule>
        WtmpLog			off
        ExtendedLog			/var/log/proftpd/access.log WRITE,READ default
        ExtendedLog			/var/log/proftpd/auth.log AUTH auth
      </Anonymous>
    </IfDefine>
    

    总结

    最简配置就完成了,也可以根据需要再去做更复杂的配置,这里就不做过多的介绍,比较容易错误的点就是容易出现权限问题无法访问,或者是上下的设置关联错误,可以开启调试模式进行调试

    proftpd   -n -d 10 -c /etc/proftpd.conf -DANONYMOUS_FTP
    

    变更记录

    Why Who When
    创建 武汉-运维-磨渣 2016-09-01
  • 相关阅读:
    搜狗图片抓取,主要以图集类进行抓取
    使用mongo进行去重操作
    爬虫实战01_淘宝模拟登录
    Linux常用命令02(远程管理)
    Linux常用命令01(文件和目录)
    Linux终端命令格式
    常用Linux命令的基本使用
    闭包与私有变量
    三栏布局的几种方法
    redux和react-redux小记
  • 原文地址:https://www.cnblogs.com/zphj1987/p/13575365.html
Copyright © 2011-2022 走看看