zoukankan      html  css  js  c++  java
  • centos7安装配置proftp(ftp安装for-linux)

    环境:centos7

    1、关于linux下ftp介绍

    Linux常用哪几种FTP服务器?Linux常用FTP服务器有哪几种?几种FTP服务器之间有什么区别?
    oftpd、ftpd、vsftpd、pure-ftpd、proftpd、wu-ftpd、glftpd
    
    Linux 下有好几款很不错的 ftp server,各有特点,适用于不同的应用场合。根据其可配置性大概可以分为三类:弱、中等、高。
     1、功能比较简单的有ftpd和oftpd,前者与ftp客户端工具ftp类似,只有标准的功能,此外支持SSL。oftpd是一款非常小巧的匿名ftp服务器。
    2、可配制型居中的主要是vsftpd和pure
    -ftpd。 这两个侧重于安全、速度和轻量级,在大型ftp服务器上用得比较多,尤其是vsftpd,
    这类服务器对用户认证和权限控制比较简单,更注重安全型和速度。 它们都支持虚拟用户,但用户权限依赖于文件的系统权限,不支持针对目录的权限配置,
    在配置依赖于目录的权限时很麻烦。pure-ftpd相对vsftpd 要强大一些,支持的用户认证方式也比较多。 3、配置性强的要数proftpd、wu-ftpd和glftpd。proftpd 的配置方式跟Apache非常类似,支持虚拟服务器,可针对目录、虚拟用户进行权限配制,可继承和覆盖,
    还支持类似于.htaccess的. ftpaccess,此外还有众多的模块可以帮助实现一些特定的功能。wu-ftpd可以说是proftpd的前身,在早期用得比较多,
    proftpd就是针对wu-ftpd一些致命的弱点,重新写的同样定位的ftp服务器,差不多可以取代wu-ftpd。glftpd也是以功能强大著称,可配置性非常强,
    能够完成一些很独特的任务,比如自动CRC校验等,在0day等组织用得很多。由于这几款软件过于强大,存在不少安全隐患,需要常打补丁。

    2、proftpd的安装及简单配置

    1、下载pfofptd
       a、百度云提取:链接: https://pan.baidu.com/s/1_IGnnsmfeZDVmdR_dXWU1A 提取码: z5pa
       b、直接下载:wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.7a.tar.gz
    2、文件解压
       tar -zxvf proftpd-1.3.7a.tar.gz
    3、安装编译依赖包
       yum install gcc gcc-c++ autoconf automake
    4、配置并制定安装和配置文件路径
      cd  cd proftpd-1.3.7a/  && 
      ./configure --prefix=/usr/local/proftpd --sysconfdir=/usr/local/proftpd
    5、编译安装
       make  && make install

    3、启动和错误处理

    1、启动
      /usr/local/proftpd/sbin/proftpd
    2、启动会报错
      这里报错:- Fatal: Group: Unknown group 'nogroup'.
    3、处理修改配置文件
       vi /usr/local/proftpd/proftpd.conf
       --修改前
       # Set the user and group under which the server will run.
      User                             nobody
      Group                            nogroup
      --修改后
      # Set the user and group under which the server will run.
      User                             nobody
      Group                            nobody
    4、再次启动即可
      /usr/local/proftpd/sbin/proftpd

    4、配置用户及目录

    1、建目录和用户
      建立目录 mkdir -p /data/
      建立用户 useradd -d /data/ftp -s /sbin/nologin ftp_user
      配置密码 echo ftp_user|passwd --stdin ftp_user
     修改权限 chown -R ftp_user:ftp_user /data/ftp
    2、添加配置文件,在配置文件末尾添加如下代码
    vi /usr/local/proftpd/proftpd.conf
    <Directory /data/ftp> HideNoAccess off <Limit STOR MKD> Order deny,allow allowUser ftp_user </Limit> </Directory> 3、重启服务 ps -ef|grep proftpd|grep -v grep|awk '{print $2}'|xargs kill -9 #killproftpd进程 /usr/local/proftpd/sbin/proftpd #启动服务 4、登录ftp查看

    5、问题处理ftp登录shell为nologin无法登录

    登陆问题表现:USER ftp_user (Login failed): Invalid shell: '/sbin/nologin'
    处理:echo ‘/sbin/nologin’ >> /etc/shells

    6、Limit权限详情

    #<LIMIT>容器内有以下权限:
    #       CWD:改变所在目录
    #       MKD/XMKD:新建目录
    #       RNFR/RNTO:重命名目录的(一起使用)
    #       DELE:删除文件
    #       RMD/XRMD:删除目录
    #       RETR:下载
    #       STOR:上传
    #       LOGIN:登陆
    #       READ:包括了RETR,SITE,SIZE,STAT
    #       WRITE:包括了APPE, DELE, MKD, RMD, RNTO, STOR, XMKD, XRMD
    #       DIRS:包括了DUP, CWD, LIST, MDTM, NLST, PWD, RNFR, XCUP, XCWD, XPWD
    #       ALL:包括了READ WRITE DIRS
    #以上权限结合动作一起使用:
    #       AllowUser:允许某个用户
    #       DenyUser:禁止某个用户
    #       AllowGroup:允许某个用户组
    #       DenyGroup:禁止某个用户组
    #       AllowAll:允许所有用户
    #       DenyAll:禁止所有用户

     7、配置文件详解

    # cat /usr/local/proftpd/proftpd.conf
    
    ServerName   "babydragon's FTP"   #服务器的名字 
    ServerType   standalone       #proftpd运行的方式,有standalone和inetd 
    DeferWelcome  off   #只有在认证用户之后才显示欢迎信息 
    
    Port         21     #ftp连接端口 
    Umask        002    #新文件的权限掩码 
    TimeoutLogin     120    #登陆时允许idle的时间 
    TimeoutIdle     600    #登陆后允许idle的时间 
    TimeoutNoTransfer  900    #没有数据传输时允许idle的时间 
    
    AllowStoreRestart    on   #允许断点续上传 
    AllowRetrieveRestart  on   #允许断点续下载 
    
    PassivePorts 50000 65534    #指定数据端口的范围 
    
    User          nobody   #以nobody,nogroup的身份运行程序 
    Group          nogroup 
    
    RequireValidShell    no       #用户是否拥有shell,关闭安全 
    
    MaxClientsPerHost    2        #每个ip只能有两个连接 
    MaxClientsPerUser    1        #每个帐号只能有一个连接 
    
    DefaultRoot     ~   #ftp的根目录,~限制用户只能访问自己的目录 
    UseReverseDNS    off  #关闭DNS反向查询,节省连接时间 
    
    TransferLog     /var/spool/syslog/proftpd/xferlog.legacy #数据传输记录 
    
    
    LogFormat    auth  "%v %P %h %t "%r/" %s" 
    LogFormat    write  "%h %l %u %t "%r/" %s %b" 
    # 定义了几种日志格式,可以根据自己的需要定制: 
    #    %a:客户ip 
    #    %A:匿名用户名(就是匿名用户的password) 
    #    %b:发送请求的字节数 
    #    %d:目录名(相对路径) 
    #    %D:目录名(绝对路径) 
    #    %f:上传或下载的文件名(绝对路径) 
    #    %F:上传或下载的文件名(相对路径) 
    #    %h:客户的域名 
    #    %L:本服务器ip 
    #    %m:客户发送的命令 
    #    %p:本服务器的端口 
    #    %P:服务进程的id 
    #    %r:客户发送的整条命令 
    #    %t:本地时间 
    #    %T:传送文件所用的时间(秒) 
    #    %u:客户登陆的用户名 
    
    <Global>                     
                           #设置一些全局参数 
       DisplayLogin        welcome.msg  
    
    #显示~/welcome.msg中的欢迎信息,可以编辑welcome.msg自己制定欢迎信息 
    #    %T 当前的时间 
    #    %F 所在硬盘剩下的空间 
    #    %C 当前所在的目录 
    #    %R:客户的主机名 
    #    %U:客户登陆的帐号 
    #    %M:允许最大连接数 
    #    %N:当前的连接人数 
    #    %E:FTP服务器管理员的email 
    #    %i:本次上传的文件数量 
    #    %o:本次下载的文件数量 
    
       AllowOverwrite       yes     #允许文件可以重新写 
    
       IdentLookups  off   #查找客户的远程用户名,关掉节省连接时间 
    
       ExtendedLog   /var/spool/syslog/proftpd/access.log WRITE,READ write 
                    #以write的日志格式记录READ,WRITE的日志 
    
       ExtendedLog   /var/spool/syslog/proftpd/auth.log AUTH auth 
                    #以auth的日志格式记录AUTH的日志 
    </Global> 
    
    <Anonymous /> 
       User          ftp 
       Group          ftp    
       UserAlias        anonymous ftp  #匿名用户以ftp用户登陆 
       RequireValidShell    no       #用户有没shell也可以使用FTP(安全) 
       MaxClients       20       #最大客户数 
       MaxInstances      30       #连接的间隔时间 
       MaxLoginAttempts    10       #连接的最大次数 
    
       <Limit LOGIN> 
           Order deny,allow 
           Deny from 172.16.0.0/11     #禁止172.16.0.0/11网段访问 
           Allow from all 
       </Limit> 
    
       <Directory pub> 
           <Limit READ> 
               AllowAll        #所有人在pub目录有读权限 
           </Limit> 
           <Limit WRITE> 
               AllowUser ftpadmin       #ftpadmin用户拥有写权限 
               DenyAll             #其他用户无写权限 
           </Limit> 
               <Directory slow> 
           RateReadBPS       1024000     #下载最高速1M/s 
           RateReadFreeBytes    10240000    #下载总速度不超过10M/s 
       </Directory> 
    
       <Directory Incoming> 
           <Limit STOR MKD> 
               AllowAll        #所有人都可以在incoming目录上传文件,新建目录 
           </Limit> 
           <Limit WRITE> 
               AllowUser ftpadmin       #允许ftpadmin用户写 
               DenyAll             #其他用户无写权限 
           </Limit> 
           RateWriteBPS       1024000    #上传最高速1M/s 
           RateWriteFreeBytes    10240000    #上传总速度不超过10M/s 
       </Directory> 
    </Anonymous>
    

      

    做一个决定,并不难,难的是付诸行动,并且坚持到底。
  • 相关阅读:
    python基础语法3 元组,字典,集合
    python基础语法3 整形(进制转换),浮点,字符串,列表
    python基础语法2 流程控制 if,while,for
    python基础语法1 用户交互,基本数据类型,格式化输出,运算符
    编程语言和python介绍, 变量,小整数池,垃圾回收机制
    计算机基础
    python奇闻杂技06 基于百度大脑AI的人工智能,百度颜值检测,语音合成与识别
    python奇闻杂技05 爬虫初步学习+jieba分词+词云库+哔哩哔哩弹幕爬取示例(数据分析pandas)
    python奇闻杂技04 列表,元祖,统计值计算示例,py文件转为EXE文件,爬虫初步学习
    python 基础 字符串格式化
  • 原文地址:https://www.cnblogs.com/wukc/p/13430391.html
Copyright © 2011-2022 走看看