zoukankan      html  css  js  c++  java
  • Proftpd快速搭建FTP服务器

    前言

    Linux系统中,FTP服务器软件有很多,都已经成熟,像vsftpd, wu-ftp, Pure-FTPd等。但这些软件安装配置起来都比较麻烦,搭建个人的FTP服务器,还是Proftpd比较简单。

    目录

    1. Proftpd介绍
    2. Proftpd安装
    3. Proftpd配置文件
    4. Proftpd使用场景
    5. 客户端访问

    1. Proftpd介绍

    Proftpd是一款开放源码的FTP服务器软件,它是原来世界范围使用最广泛的wu-ftpd的改进版,它修正了wu-ftpd的许多缺陷,在许多方面进行了重大的改进,其中一个重要变化就是它学习了Apache 的配置方式,使proftpd的配置和管理更加简单易懂。

    有两种运行方式,独立服务器与超级服务器的子服务器。无论从安全性和稳定性,还是可配置性来说都是非常好的选择。

    官方网站:http://www.proftpd.org/

    2. Proftpd安装

    系统环境

    • Linux Ubuntu 12.04.2 LTS 64bit server

    安装Proftpd

    ~ sudo apt-get install proftpd

    <hproftpd-install

    选择“standalone

    查看proftpd状态

    ~ sudo /etc/init.d/proftpd status

    ProFTPD is started in standalone mode, currently running.

     

    ~ ps -aux|grep ftp

    proftpd   6674  0.0  0.1  94648  2092 ?        Ss   16:05   0:00 proftpd: (accepting connections)

     

    #启动端口21

    ~ netstat -nltp|grep 21

    tcp6       0      0 :::21                   :::*                    LISTEN      -

    3. Proftpd配置文件

    配置文件:/etc/proftpd/proftpd.conf

    #配置服务器名

    ServerName            ""blog.fens.me FTP Server"

     

    #设置服务器运行模式,独立服务,或者被监管

    ServerType            standalone

     

    #设置为默认服务器

    DefaultServer            on

     

    #设置服务器进程运行使用的用户

    User                proftpd

     

    #设置服务器进程运行使用的组

    Group                    nogroup

     

    #设置关闭IPv6支持

    UseIPv6                    off

     

    #设置服务器接受请求的端口

    Port                21

     

    #设置被动模式使用的端口范围

    PassivePorts             60000 65535

     

    #设置用户上传文件的权限掩码

    Umask                022

     

    #设置用户被chroot锁定到的各自的Home目录

    DefaultRoot            /ftp

     

    #关闭欢迎信息显示

    DeferWelcome            off

     

    #如果显示欢迎信息,则指定显示的文件

    DisplayLogin            welcome.msg

     

    #指定切换文件夹时,显示的欢迎信息

    DisplayChdir            .message

     

    #设置日志

    SystemLog                       /var/log/proftp.log

    TransferLog                     /var/log/proftp-transfer.log

    #限定操作

    <Limit SITE_CHMOD>

    DenyAll

    </Limit>

    #设置匿名用户资源

    <Anonymous "/ftp/c">

    ...

    </Anonymous>

    #配置存储目录权限

    <Directory "/ftp/a/" >

    <Limit ALL>

    AllowUser x

    AllowUser a1

    DenyAll

    </Limit>

     

    <Limit CWD READ RETR DIRS>

    AllowAll

    </Limit>

    </Directory>

    Limit权限说明:

    • CWD Change Working Directory 进入该目录
    • MKD Make Directory 创建目录
    • RNFR Rename from 更名
    • DELE Delete 删除文件
    • RMD Remove Directory 删除目录
    • READ : 可读
    • WRITE: 可写
    • STOR : 可上传
    • RETR : 可下载
    • DIRS : 允许列出目录
    • LOGIN: 允许登录
    • ALL : 全部

    4. Proftpd使用场景

    场景描述:某公司建立统一的FTP服务器(/ftp),公司有a部门(/ftp/a)b两个部门(/ftp/b),有独立的存储空间。

    a1a部门经理有对(/ftp/a)操作权限,a2a部门员工只能读文件。

    b1b部门经理有对(/ftp/b)操作权限,b2b部门员工只能读文件。

    x为公司总经理,有对(/ftp)操作权限。

    操作权限:

    /ftp    -- x所有操作

    /ftp/a  -- a1所有操作, a2只读

    /ftp/b  -- b1所有操作, b2只读

    命令操作:

    # 创建FTP目录

    sudo mkdir /ftp

    sudo mkdir /ftp/a

    sudo mkdir /ftp/b

     

    # 创建用户组

    sudo groupadd a

    sudo groupadd b

    Ubuntu系统配置nologin,与其他Linux稍有不同

    ~  sudo vi /etc/shells

     

    # /etc/shells: valid login shells

    /bin/sh

    /bin/dash

    /bin/bash

    /bin/rbash

    /usr/bin/tmux

    /usr/bin/screen

    /usr/sbin/nologin

    最后一行增加/usr/sbin/nologin

    创建用户并设置nologin, 禁止FTP账户登陆

    sudo useradd a1 -g a -s /usr/sbin/nologin

    sudo useradd a2 -g a -s /usr/sbin/nologin

    sudo useradd b1 -g b -s /usr/sbin/nologin

    sudo useradd b2 -g b -s /usr/sbin/nologin

    sudo useradd x -G a,b -s /usr/sbin/nologin

     

    #设置账户密码

    echo -e "a1:123" | sudo chpasswd

    echo -e "a2:123" | sudo chpasswd

    echo -e "b1:123" | sudo chpasswd

    echo -e "b2:123" | sudo chpasswd

    echo -e "x:123" | sudo chpasswd

     

    #设置目录权限

    sudo chown x /ftp

    sudo chown a1:a /ftp/a

    sudo chmod 770 /ftp/a

    sudo chmod g+s /ftp/a

    sudo chown b1:b /ftp/b

    sudo chmod 770 /ftp/b

    sudo chmod g+s /ftp/b

    修改配置文件:/etc/proftpd/proftpd.conf

    ~ sudo vi /etc/proftpd/proftpd.conf

     

    ServerName "blog.fens.me FTP Server"

    ServerType standalone

    DefaultServer on

    Port 21

    Umask 022

    MaxInstances 30

    User proftpd

    Group nogroup

    DefaultRoot /ftp

    AllowOverwrite on

     

    SystemLog /var/log/proftp.log

    TransferLog /var/log/proftp-transfer.log

     

    <Directory "/ftp/*">

    <Limit CWD READ>

    AllowAll

    </Limit>

    </Directory>

     

    <Directory "/ftp/a/" >

    <Limit ALL>

    AllowUser x

    AllowUser a1

    DenyAll

    </Limit>

     

    <Limit CWD READ RETR DIRS>

    AllowAll

    </Limit>

    </Directory>

     

    <Directory "/ftp/b/" >

    <Limit ALL>

    AllowUser x

    AllowUser b1

    DenyAll

    </Limit>

     

    <Limit CWD READ RETR DIRS>

    AllowAll

    </Limit>

    </Directory>

     

    <Limit SITE_CHMOD>

    DenyAll

    </Limit>

    重新服务器

    ~ sudo /etc/init.d/proftpd restart

     * Stopping ftp server proftpd        [ OK ]

    * Starting ftp server proftpd

    5. 客户端访问

    客户端命令行:Win7 64bit Command

    模拟a1用户登陆:

    ~ ftp

     

    #建立连接

    ftp> open 192.168.1.201

    连接到 192.168.1.201

    220 ProFTPD 1.3.4a Server (blog.fens.me FTP Server) [::ffff:192.168.1.201]

    用户(192.168.1.201:(none)): a1

    331 Password required for a1

    密码:

    230 User a1 logged in

     

    #查看目录

    ftp> dir

    200 PORT command successful

    150 Opening ASCII mode data connection for file list

    drwxrws---   2 a1       a            4096 Nov  3 12:59 a

    drwxrws---   2 b1       b            4096 Nov  3 12:25 b

    226 Transfer complete

    ftp: 收到 116 字节,用时 0.00 58.00千字节/秒。

     

    ftp> cd a

    250 CWD command successful

     

    ftp> pwd

    257 "/a" is the current directory

     

    ftp> dir

    200 PORT command successful

    150 Opening ASCII mode data connection for file list

    -rw-r--r--   1 a2       a           55723 Nov  3 12:56 36kryunjiasu.docx

    -rw-r--r--   1 a1       a               4 Nov  3 12:24 test.txt

    226 Transfer complete

    ftp: 收到 139 字节,用时 0.00 69.50千字节/秒。

     

    #上传文件

    ftp> put c:22.log

    200 PORT command successful

    150 Opening ASCII mode data connection for 22.log

    226 Transfer complete

    ftp: 发送 120 字节,用时 0.06 2.18千字节/秒。

     

    #下载文件

    ftp> get test.txt

    200 PORT command successful

    150 Opening ASCII mode data connection for test.txt (4 bytes)

    226 Transfer complete

    ftp: 收到 5 字节,用时 0.00 5000.00千字节/秒。

     

    #尝试访问B目录,出错

    ftp> cd ../b

    550 ../b: No such file or directory

     

    #退出

    ftp> bye

    221 Goodbye.

    模拟a2用户登陆:

    ~ ftp

     

    #建立连接

    ftp> open 192.168.1.201

    连接到 192.168.1.201

    220 ProFTPD 1.3.4a Server (blog.fens.me FTP Server) [::ffff:192.168.1.201]

    用户(192.168.1.201:(none)): a2

    331 Password required for a2

    密码:

    230 User a2 logged in

     

    #查看目录

    ftp> dir

    200 PORT command successful

    150 Opening ASCII mode data connection for file list

    drwxrws---   2 a1       a            4096 Nov  3 13:09 a

    drwxrws---   2 b1       b            4096 Nov  3 12:25 b

    226 Transfer complete

    ftp: 收到 116 字节,用时 0.00 116.00千字节/秒。

     

    #上传文件,出错

    ftp> put c:11.log

    200 PORT command successful

    550 11.log: Operation not permitted

     

    #下载文件

    ftp> get 22.log

    200 PORT command successful

    150 Opening ASCII mode data connection for 22.log (114 bytes)

    226 Transfer complete

    ftp: 收到 120 字节,用时 0.00 120000.00千字节/秒。

    Proftpd我们快速建立了一个公司内部的FTP服务器,比wu-ftpd要方便。

    转载请注明出处:
    http://blog.fens.me/linux-ftp-proftpd/

     





  • 相关阅读:
    android开发中如何开启用户安装的应用程序?
    丑数查找算法
    session.save_path目录大量session临时文件带来的服务器效率问题
    MOSS点滴(1):如何开发和部署feature
    如何将Excel中两个单元格或两列中的数据合并
    如何在 MOSS 2007 启用 Session
    MOSS LIST的一些属性说明
    国外广播电台
    Excel 导出 按钮
    在文档库或 Windows SharePoint Services SharePoint Portal Server 中创建一个新的文件夹或新文档时,您会收到一个"指定的文件或文件夹名太长"错误消息
  • 原文地址:https://www.cnblogs.com/sanyuanempire/p/6182888.html
Copyright © 2011-2022 走看看