zoukankan      html  css  js  c++  java
  • CentOS配置FTP服务器

    vsftpd

    主动模式 由服务器创建连接

      命令

        Client <PORT> ---> Server 21/tcp

      数据

        Server 20/tcp ---> Client <PORT> + 1

    被动模式 由客户端发起连接

      命令

        Client <PORT> ---> Server 21/tcp

      数据

        Client <PORT> + 1 ---> Server <random PORT>

     ftp服务器软件

    Server
    
        wu-ftpd
    
        proftpd
    
        pureftp
    
        vsftpd
    
        ServU
    
        File Zilla Server
    
    Client
    
        ftp
    
        lftp lftpget
    
        wget 
    
        curl
    
        filezilla
    
        gftp
    
        flashfxp
    
        cuteftp

    响应吗

    1XX 信息
    
    2XX 成功
    
    3XX 提示命令未完整
    
    4XX 客户端错误
    
    5XX 服务端错误

    用户认证

    虚拟用户
    
        仅用于访问某特定服务中的资源
    
        nsswitch 名称解析框架
    
            配置文件  /etc/nsswitch.conf
    
            模块  /lib64/libnss*, /usr/lib64/libnss*
    
        pam  用户认证框架
    
            配置文件 /etc/pam.conf, /etc/pam.d/*
    
            模块 /lib64/security/
    
    系统用户
    
        /etc/passwd
    
    匿名用户
    
        anonymous

    软件包文件

    用户认证配置文件
    
        /etc/pam.d/vsftpd
    
    服务脚本
    
        /etc/rc.d/init.d/vsftpd
    
    主配置文件
    
        /etc/vsftpd/vsftpd.conf
    
    用户权限控制
    
        /etc/vsftpd/ftpusers
    
        /etc/vsftpd/user_list
    
    主应用程序
    
        /usr/sbin/vsftpd
    
    匿名用户资源路径
    
        /var/ftp
    
        # vsftpd不允许更改此目录权限
    
    系统用户资源路径
    
        ~/
    
    虚拟用户资源路径
    
        指定映射某个系统用户的家目录

    vsftpd配置文件解析

    # man vsftpd.conf
    
    vim /etc/vsftpd/vsftpd.conf
    
        # 是否启动匿名用户
        anonymous_enable=YES
    
        # 默认不允许匿名用户上传
        #anon_upload_enable=YES
    
        # 默认不允许匿名用户创建文件、文件夹
        #anon_mkdir_write_enable=YES
    
        # 默认不允许匿名用户删除文件、文件夹
        #anon_other_write_enable=YES
    
        # 是否允许系统用户
        local_enable=YES
    
        # 默认允许本地用户拥有写权限
        write_enable=YES
    
        # 本地用户上传文件的默认权限
        local_umask=022
    
        # 默认不限制本地用户只能在家目录活动
        #chroot_local_user=YES
    
        # 默认不限制本地用户列表中的所有用户只能在家目录活动
        #chroot_list_enable=YES
    
        # 指定本地用户列表路径
        #chroot_list_file=/etc/vsftpd/chroot_list
    
        # 默认开启用户进入目录下会发出提示信息
        # 在指定目录下编辑 .message,将指定信息分行填入
        dirmessage_enable=YES
    
        # 默认打开FTP上传下载日志记录
        xferlog_enable=YES
    
        # 传输日志是否开启默认记录格式
        xferlog_std_format=YES
    
        # 默认日志文件路径
        #xferlog_file=/var/log/xferlog
    
        # 是否更改用户上传文件后的属主属组
        #chown_uploads=YES
        #chown_username=whoever
    
        # 定义空闲回话超时时长
        #idle_session_timeout=600
    
        # 定义数据连接超时时长
        #data_connection_timeout=120
    
        # 是否更改默认上传下载以二进制传输
        #ascii_upload_enable=YES
        #ascii_download_enable=YES
    
        # 是否开启ftp登录欢迎信息
        #ftpd_banner=Welcome to blah FTP service.
    
        # pam用户认证使用哪个文件名
        # 默认/etc/pam.d/目录下
        pam_service_name=vsftpd
    
        # auth       required     pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
        # 是否启用用户登录列表文件
        userlist_enable=YES
    
        # YES代表黑名单、NO代表白名单
        userlist_deny=YES|NO
    
        # 最大并发连接数
        max_clients xxx
    
        # 每个IP可同时发起的并发请求数
        max_per_ip x.x.x.x
    
        # 匿名用户的最大传输速率,Byte/s
        anon_max_rate
    
        # 本地用户的最大传输速率
        local_max_rate
    
        # 虚拟用户会映射为指定的系统账号,目录为系统账号家目录
    
        # 虚拟用户能定义不同的访问权限
    
            # 通过匿名用户的权限控制参数进行指定
    
        # 虚拟用户账号的存储方式
    
            # 文件
    
                # 奇数行为用户名
    
                # 偶数行为密码
    
                # 需要被编译成二进制文件
    
            # 关系型数据库表
    
                # 查找数据库完成用户认证
    
                # 如果使用mysql,则依赖于pam-mysql模块,需要自己编译安装
    
                # yum install pam_mysql
    
                # 如下文配置

    ftp服务器 + pam_mysql 模块做用户认证

      FTP服务器和mysql服务器不在一个节点上

        ftp 192.168.180.128

        mysql 192.168.180.130

    1. 准备数据库及相关表
    
        create database vsftpd;
    
        grant select on vsftpd.* to vsftpd@192.168.180.128 identified by '123456';
    
        flush privileges;
    
        use vsftpd;
    
        create table users (
            -> id int AUTO_INCREMENT NOT NULL;
            -> name char(20) binary NOT NULL;
            -> password char(64) binary NOT NULL;
            -> primary key(id)
            -> );
    
    
    2. 添加测试的虚拟用户
    
        # 密码为了安全,使用password函数加密后存储
    
        insert into users(name, password) values('tom', password('123456'));
    
        insert into users(name, password) values('bob', password('123456'));
    
    
    3. 配置vsftpd
    
        # 建立pam认证所需文件
    
        vim /etc/pam.d/vsftpd.mysql 
    
            auth requried /lib/security/pam_mysql.so user=vsftpd passwd=123456 host=192.168.130 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=0
    
            account requried /lib/security/pam_mysql.so user=vsftpd passwd=123456 host=192.168.130 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=0
    
        # 修改vsftpd的配置文件,使其适应mysql认证
    
        # 建立虚拟用户映射的系统用户对应的目录
    
        useradd -s /sbin/nologin -d /var/ftproot vuser
    
        chmod go+rx /var/ftproot
    
        # 修改vsftpd配置文件参数
    
        anonymous_enable=YES
    
        local_enable=YES
    
        write_enable=YES
    
        anon_upload_enable=NO
    
        anon_mkdir_write_enable=NO
    
        chroot_local_user=YES
    
        guest_enable=YES
    
        guest_username=vuser
    
        pam_service_name=vsftpd.mysql
    
    
    4. 启动vsftpd服务
    
        service vsftpd start 
    
        chkconfig vsftpd on 
    
    
    5. 验证
    
        ftp 127.0.0.1
    
    
    6. 配置虚拟用户具有不同的访问权限
    
        vim vsftpd.conf
    
            user_config_dir=/etc/vsftpd/vusers_config
    
        mkdir /etc/vsftpd/vusers_config
    
        cd /etc/vsftpd/vusers_config
    
        touch tom bob
    
        vim tom 
    
            # 默认不允许匿名用户上传
            anon_upload_enable={YES|NO}
    
            # 默认不允许匿名用户创建文件、文件夹
            anon_mkdir_write_enable={YES|NO}
    
            # 默认不允许匿名用户删除文件、文件夹
            anon_other_write_enable={YES|NO}

    axel工具使用

      axel是通过打开多个 HTTP/FTP 连接来将一个文件进行分段下载,从而达到加速下载的目的的软件

    下载源码包编译安装

    tar xvzf axel-2.4.tar.gz
    
    cd axel-2.4
    
    ./configure --strip=0
    
    make 
    
    make install
    
    cp axel /bin

    简单使用

    1 axel -n 3 -o /root <OBJ_URL>

    安全ftp服务器(密文传输)(未完待续)

    ftps SSL
    
    sftp SSH
  • 相关阅读:
    hdu 1084(水题)
    hdu 1872(稳定排序)
    NOI 2008 志愿者招募 / bzoj 1061 (最小费用最大流)
    hdu 1019(LCM)
    hdu 1876(dp)
    Codeforces Round #171 (Div. 2)
    poj 3422(最小费用最大流)
    poj 3264(简单线段树)
    Codeforces Round #156 (Div. 2)
    Codeforces Round #169 (Div. 2)
  • 原文地址:https://www.cnblogs.com/cq146637/p/8780186.html
Copyright © 2011-2022 走看看