zoukankan      html  css  js  c++  java
  • Linux中的FTP服务

    FTP服务

    Image

    文件传输协议

    FTPFile Transfer Protocol 早期的三个应用级协议之一

    基于C/S结构

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

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

    两种模式:服务器角度主动(PORT style):服务器主动连接

    主动模式(PORT)--进行tcp三次握手

    FTP 客户端首 先和服务器的TCP 21端口建立连接,用来发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。PORT命令包含了客户端用什么端口接收数据。在传送数据的时 候,服务器端通过自己的TCP 20端口连接至客户端的指定端口发送数据。FTP server必须和客户端建立一个新的连接用来传送数据。

    如下图所示,用户主机直接暴露在互联网中,用户连接FTP SERVER使用主动模式遵循以下一个过程:

    1

    用户主机一个随机端口连接FTP SERVER的TCP21端口进行协商;

    用户主机告诉FTP SERVER,我的XXXX端口已经打开,你可以放心大胆的连过来;

    然后FTP SERVER就用TCP20端口连接用户主机的XXXX端口,数据传输开始。

    被动模式(PASV)--进行tcp三次握手

    建立控制通道和Standard模式类似,但建立连接后发送Pasv命 令。服务器收到Pasv命令后,打开一个临时端口(端口号大于1023小于65535)并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务 器此端口,然后FTP服务器将通过这个端口传送数据。

    很多防火墙在 设置的时候都是不允许接受外部发起的连接的,所以许多位于防火墙后或内网的FTP服务器不支持PASV模式,因为客户端无法穿过防火墙打开FTP服务器的 高端端口;而许多内网的客户端不能用PORT模式登陆FTP服务器,因为从服务器的TCP 20无法和内部网络的客户端建立一个新的连接,造成无法工作。

    当用户主机前端多了一道防火墙(客户机使用地址转换接入互联网),事情就变的复杂了,首先,主动模式是FTP SERVER连接客户机,防火墙肯定不干;即便乐意干客户机与服务器协商的XXXX端口也是随机端口,你让迷茫的防火墙情何以堪,这时就需要客户端软件使用被动模式主动连接防火墙,这么一来正合防火墙的胃口。

    客户端使用被动模式遵循以下过程:

    2

    首先用户使用随机端口连接FTP SERVER的TCP 21端口进行协商;

    FTP SERVER告诉客户机:我的XXXX端口开放了,你连过来吧;

    客户机使用一个随机端口连接FTP SERVER的XXXX端口传输数据。

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

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

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

    FTP软件介绍

    FTP服务器:

    Wu-ftpd,Proftpd,Pureftpd,ServU,IIS

    vsftpd:Very Secure FTP Daemon,CentOS默认FTP服务器

    高速,稳定,下载速度是WU-FTP的两倍

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

    客户端软件:

    ftp,lftp,lftpget,wget,curl
    
    ftp -A ftpserver port -A主动模式 –p 被动模式
    
    lftp –u username ftpserver
    
    lftp username@ftpserver
    
    lftpget ftp://ftpserver/pub/file 
    
    gftp: GUI centos5 最新版2.0.19 (11/30/2008)
    
    filezilla,CuteFtp,FlashFXP,LeapFtp
    
    IE ftp://username:password@ftpserver

    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
  • 相关阅读:
    Linux 的硬链接与软链接
    Django补遗(一)
    Django之Form组件
    Django进阶(三)
    Django进阶(二)
    Web请求提交页面--防重提交
    Lucene的搭建(3)
    Lucene的搭建(2)
    Redis-cluster集群搭建
    Redis安装
  • 原文地址:https://www.cnblogs.com/OrochWang/p/9492667.html
Copyright © 2011-2022 走看看