• FTP服务(1)


    文件传输协议(FTP)

    文件传输协议(英文:File Transfer Protocol,缩写:FTP)早期的三个应用级协议之一,是用于在网络上进行文件传输的一套标准协议,使用客户/服务器模式,即基于C/S结构。它属于网络传输协议的应用层。

    双通道协议:数据和命令连接

    数据传输格式:二进制(默认)和文本

    两种模式:服务器角度

      主动(PORT style):服务器主动连接

    • 命令(控制):客户端:随机port → 服务器:tcp21
    • 数据:客户端:随机port ← 服务器:tcp20

      被动(PASV style):客户端主动连接

    • 命令(控制):客户端:随机port → 服务器:tcp21
    • 数据:客户端:随机port ← 服务器:随机port

    服务器被动模式数据端口示例:

      227 Entering Passive Mode (192,168,175,138,224,59)

      服务器数据端口为:224*256+59

    FTP软件介绍

    FTP服务器:

    vsftpd:Very Secure FTP Daemon,

    CentOS默认FTP服务器,高速,稳定,下载速度是WU-FTP的两倍

    ftp.redhat.com数据:单机最多可支持15000个并发

    其他ftp服务器

    Wu-ftpd,Proftpd,Pureftpd,ServU,IIS

    FTP服务

    状态码:

    1XX:信息      125:数据连接打开

    2XX:成功类状态   200:命令OK 230:登录成功

    3XX:补充类     331:用户名OK

    4XX:客户端错误   425:不能打开数据连接

    5XX:服务器错误   530:不能登录

    用户认证:

    匿名用户:ftp,anonymous,对应Linux用户ftp

    系统用户:Linux用户,用户/etc/passwd,密码/etc/shadow

    虚拟用户:特定服务的专用用户,独立的用户/密码文件

    nsswitch:network service switch名称解析框架

    pam:pluggable authentication module 用户认证

    /lib64/security /etc/pam.d/ /etc/pam.conf

    vsftpd服务

    由vsftpd包提供,不再由xinetd管理

    用户认证配置文件:

    /etc/pam.d/vsftpd

    服务脚本: 

    /usr/lib/systemd/system/vsftpd.service
    /etc/rc.d/init.d/vsftpd

    配置文件:

    /etc/vsftpd/vsftpd.conf
    man 5 vsftpd.conf
    格式:option=value
    注意:= 前后不要有空格

    匿名用户(映射为系统用户ftp )共享文件位置:

    /var/ftp

    系统用户共享文件位置:用户家目录

    虚拟用户共享文件位置:为其映射的系统用户的家目录

    vsftpd服务配置

    命令端口

    listen_port=21

    主动模式端口

    connect_from_port_20=YES  主动模式端口为20
    ftp_data_port=20       指定主动模式的端口

    被动模式端口范围

    pasv_min_port=6000   0为随机分配
    pasv_max_port=6010

    linux     客户端默认使用被动模式
    windows    客户端默认使用主动模式

    使用当地时间

    use_localtime=YES 使用当地时间(默认为NO,使用GMT)

    匿名用户

    anonymous_enable=YES        支持匿名用户
    no_anon_password=YES       (默认NO) 匿名用户略过口令检查
    anon_world_readable_only     (默认YES)只能下载全部读的文件
    anon_upload_enable=YES       匿名上传,注意:文件系统权限
    anon_mkdir_write_enable=YES
    anon_umask=077           指定匿名上传文件的umask
    anon_other_write_enable=YES   可删除和修改上传的文件

    指定上传文件的默认的所有者和权限

    chown_uploads=YES(默认NO)
    chown_username=wang
    chown_upload_mode=0644

    Linux系统用户

    guest_enable=YES      所有系统用户都映射成guest用户
    guest_username=ftp    配合上面选项才生效,指定guest用户
    local_enable=YES     是否允许linux用户登录
    write_enable-YES     允许linux用户上传文件
    local_umask=022      指定系统用户上传文件的默认权限
    local_root=/ftproot   非匿名用户登录所在目录
    禁锢所有系统用户在家目录中
      chroot_local_user=YES(默认NO,不禁锢)禁锢系统用户
    禁锢或不禁锢特定的系统用户在家目录中,与上面设置功能相反
      chroot_list_enable=YES
      chroot_list_file=/etc/vsftpd/chroot_list
      当chroot_local_user=YES时,则chroot_list中用户不禁锢
      当chroot_local_user=NO时,则chroot_list中用户禁锢

    wu-ftp日志:默认启用

    xferlog_enable=YES            (默认)启用记录上传下载日志
    xferlog_std_format=YES         (默认)使用wu-ftp日志格式
    xferlog_file=/var/log/xferlog     (默认)可自动生成
    vsftpd日志:默认不启用
    dual_log_enable=YES           使用vsftpd日志格式,默认不启用
    vsftpd_log_file=/var/log/vsftpd.log (默认)可自动生成

    登录提示信息

    ftpd_banner=“welcome to mage ftp server"
    banner_file=/etc/vsftpd/ftpbanner.txt 优先上面项生效

    目录访问提示信息

    dirmessage_enable=YES  (默认)
    message_file=.message  (默认)信息存放在指定目录下.message

    使用pam(Pluggable Authentication Modules)完成用户认证

    pam_service_name=vsftpd
        pam配置文件:/etc/pam.d/vsftpd
        /etc/vsftpd/ftpusers 默认文件中用户拒绝登录

    是否启用控制用户登录的列表文件

    userlist_enable=YES 默认有此设置
    userlist_deny=YES(默认值)黑名单,不提示口令,NO为白名单
    userlist_file=/etc/vsftpd/users_list 此为默认值

    连接限制

    max_clients=0 最大并发连接数
    max_per_ip=0 每个IP同时发起的最大连接数

    vsftpd服务指定用户身份运行

    nopriv_user=nobody

    传输速率:字节/秒

    anon_max_rate=0 匿名用户的最大传输速率
    local_max_rate=0 本地用户的最大传输速率

    连接时间:秒为单位

    connect_timeout=60 主动模式数据连接超时时长
    accept_timeout=60 被动模式数据连接超时时长
    data_connection_timeout=300 数据连接无数据输超时时长
    idle_session_timeout=60 无命令操作超时时长

    优先以文本方式传输

    ascii_upload_enable=YES
    ascii_download_enable=YES

    配置FTP服务以非独立服务方运行:listen=NO,默认为独立方式

    cat /etc/xinetd.d/vsftpd
    service ftp
    {
    flags = REUSE
    socket_type = stream
    wait = no
    user = root
    server = /usr/sbin/vsftpd
    log_on_failure += USERID
    disable = no
    }
  • 相关阅读:
    JDK1.7签名APK异常
    tomcat设置虚拟目录
    java runtime.exec() 的讲解(转贴)
    linux 下 .sh 文件语法
    Maven基础-配置远程仓库
    jdk工具keytool和jarsigner帮助Part2(jdk keytool&jarsigner tool manual)
    jdk工具keytool和jarsigner帮助Part1(jdk keytool&jarsigner tool manual)
    spring mvc + freemarker 引入静态文件(css,img,js)
    FilterDispatcher 的作用
    Struts2 过滤器与拦截器
  • 原文地址:https://www.cnblogs.com/Gmiaomiao/p/9226236.html
Copyright © 2020-2023  润新知