linux学习46-文件共享服务FTP

本文详细介绍了文件传输协议FTP,包括DAS、NAS、SAN的区别,FTP服务的双通道协议,主动与被动模式,以及如何配置具有连接跟踪功能的防火墙。接着,文章深入讨论了vsftpd服务,包括其安装、配置,如被动模式端口、用户认证、日志管理、匿名用户设置等。此外,还讲解了如何实现基于SSL的FTPS和基于文件、MYSQL验证的vsftpd虚拟用户,提供了详细的配置步骤和示例。
摘要由CSDN通过智能技术生成

文件共享服务FTP

1 FTP服务简介

  • DAS 、NAS、SAN区别
    在这里插入图片描述

    1. DAS(Direct-Attached Storage):SCSI,FC
      1. 连接方式
        直连式存储服务器中的一部分,将外置存储通设备通过SCSI或FC接口直接连接到应用服务器上,其他主机不能使用这个存储设备
      2. 缺点
        可管理性差,弹性扩展能力弱
    2. NAS(Network-Attached Storage):FC Switch
      FTP、NFS、SAMBA都属于NAS存储
      1. 连接方式
        网络接入存储NAS存储就是存储设备通过标准的网络拓扑结构(比如以太网)添加到一群计算机上,是文件级的存储方法,它的重点在于帮助工作组和部门级机构解决迅速增加存储容量的需求用户通过网络支持协议可进入相同的文档,因而NAS设备无需改造即可用于混合Unix/Windows NT局域网内,同时NAS的应用非常灵活
      2. 优点
        部署灵活,成本低
      3. 缺点
        备份过程中的带宽消耗,不便于实时修改
    3. SAN(Storage Attached Network):Enternet ,Switches
      1. 连接方式
        存储区域网络:采用网状通道(简称FC)技术,通过FC交换机连接存储阵列和服务器主机,建立专用于数据存储的区域网络
      2. 优点
        SAN允许企业独立地增加他们的存储容量
        SAN允许任何服务器连接到任何存储阵列
      3. 缺点
        成本高,较为复杂
  • 文件传输协议FTP
    FTP(File Transfer Protocol )早期的三个应用级协议之一,基于基于C/S结构

  • FTP传输协议采用双通道协议
    双通道协议:数据和命令连接,会分别建立2个tcp协议来进行

    1. 数据端口
      如果知道FTP服务器的IP地址,客户端默认链接的就是,数据命令端口tcp21
    2. 传输端口
      确认连接后,传输数据会新开一个tcp端口,数据传输格式默认为二进制,可以转换为文本格式,此端口以服务器为角度分为主动模式和被动模式,用那种模式由客户端定义
      1. 主动(PORT style):
        服务器主动连接客户端,使用固定的tcp20端口,客户端使用的随机端口,会通过命令端口执行PORT命令告知FTP服务器,FTP传输数据通道是一次性的,服务器不主动传输数据,就会自动断开
        1. 缺点
          可能因为客户端使用的是随机端口,可能被防火墙拦截,导致连接失败
        2. 端口使用
          命令(控制):客户端:随机port —服务器:tcp21
          数据:客户端:随机port —服务器:tcp20
      2. 被动(PASV style):
        客户端主动连接服务器,客户端与服务器都是用随机端口,通过命令端口,告知客户端服务器数据接口随机接口
        1. 缺点
          服务器端随机端口可能会被防火墙拒绝访问
        2. 端口使用
          命令(控制):客户端:随机port —服务器:tcp21
          数据:客户端:随机port —服务器:随机port
        3. 防火墙拦截解决方法
          配置具有连接跟踪功能的防火墙,可以识别专有的网络应用协议,例如FTP协议,防火墙会分析命令端口报文,得到协商的随机端口,进而在需要通信时打开对应端口
        4. 服务器被动模式数据端口
          227 Entering Passive Mode (172,16,0,1,224,59)
          172.16.0.1为ip地址,224,59为端口运算值
          服务器数据端口为:224*256+59
    3. 示例
      [root@hai7-7 ~]$ftp 172.20.0.1
      Connected to 172.20.0.1 (172.20.0.1).
      220 (vsFTPd 2.2.2)                  <==220为状态码,输入一次命令都回返回一个状态码
      Name (172.20.0.1:root): ftp         <==ftp为匿名账户
      331 Please specify the password.
      Password:          					<==匿名账户密码随便敲都可以登入
      230 Login successful.
      Remote system type is UNIX.
      Using binary mode to transfer files. <==默认以二进制模式连接,
      ftp> pwd
      257 "/"        						 <==刚连接所处位置,为ftp系统账号的家目录/var/ftp
      ftp> ls       						 <==列出文件列表,需要得到数据,就要走数据通道
      227 Entering Passive Mode (172,20,0,1,24,126).   <==被动模式,随机端口为24.126
      ftp> passive 					 	<==模式切换命令
      Passive mode off.   			    <==显示关闭被动模式
      ftp> get winxp_ghost.iso     	    <==下载一个文件
      200 PORT command successful. Consider using PASV.      <==使用主动模式
      
  • FTP软件介绍

    1. FTP服务器
      1. 产品
        Wu-ftpd,Proftpd,Pureftpd,ServU,IIS,vsftpd
      2. CentOS默认FTP的服务器
        vsftpd(VerySecure FTP Daemon)高速,稳定,下载速度是WU-FTP的两倍,单机最多可支持15000个并发
    2. 客户端软件
      ftp(支持windows),lftp(增加颜色,支持补全),lftpget,wget,curl
      1. 交互式登录
        ftp -A ftpserverport -A主动模式–p 被动模式
        lftp  -u username ftpserver
        lftp   username@ftpserver
        
      2. 非交互式下载ftp文件
        1. lftpget
          lftp  get  ftp://ftpserver/pub/file
          
        2. wget下载,并且显示下载信息
          [root@hai7-7 ~]$wget ftp://172.20.0.1/pub/getty
          
        3. curl默认为输出到屏幕,-o可以重命名保存为文件
          [root@hai7-7 ~]$ curl -o a.html ftp://172.20.0.1/pub/getty
          
        4. filezilla:windows较流行的免费软件
        5. IE登录: ftp://username:password@ftpserver
      3. ftp常用命令
        1. get :下载一个文件
        2. mget:下载多个文件
        3. put:上传一个文件
        4. mput:上传多个文件
        5. !:表示执行本机操作
        6. cd:切换服务端路径
        7. lcd:切换客户端路径
  • ftp登录状态码

    常用状态码 常见状态码
    1XX:信息类 125:数据连接打开
    2XX:成功类状态 200:命令OK, 230:登录成功
    3XX:补充类 331:用户名OK
    4XX:客户端错误 425:不能打开数据连接
    5XX:服务器错误 530:不能登录
  • 用户认证
    分为三类用户

    1. 匿名账户:ftp,anonymous
      对应Linux系统用户ftp,命令行需要提供密码(随便敲),图形化不需要手动填写
      共享文件位置:/var/ftp
      修改默认目录,即修改ftp账号的家目录
      usermod -d /data/ftp ftp
      
    2. 系统用户
      Linux用户,/etc/passwd文件中的用户,密码/etc/shadow
      共享文件位置:用户家目录
    3. 虚拟用户
      特定服务的专用用户,独立的用户/密码文件
      共享文件位置:为其映射的系统用户的家目录

2 vsftpd服务

  • 安装
    [root@hai7-7 ~]$yum install -y vsftpd
    
  • 程序包文件
    1. 主程序
      /usr/sbin/vsftpd
    2. 用户认证配置文件
      /etc/pam.d/vsftpd
    3. 服务脚本
      /usr/lib/systemd/system/vsftpd.service(不支持reload)
      /etc/rc.d/init.d/vsftpd
    4. 配置文件(man 5 vsftpd.conf)
      /etc/vsftpd/vsftpd.conf
      1. 格式:option=value
      2. 注意:= 前后不要有空格
    5. 命令端口
      listen_port=21
      '命令行连接非标准端口方式,2121为指定的端口'
      ftp 192.168.50.97 2121
      '图形界面连接'
      ftp://192.168.50.97:2121
      
    6. 日志文件
      /var/log/xferlog
    7. 日志滚动策略
      /etc/logrotate.d/vsftpd
  • 配置文件常见修改内容
    1. 主动模式端口(windows默认模式)
      connect_from_port_20=YES   <==主动模式端口为20
      ftp_data_port=20 (默认)   <==指定主动模式的端口
      
    2. 被动模式端口范围(linux默认模式)
      开的太少并发连接会受限,例如最大最小都6000,那么被动接口就会固定为6000,也就只能有一个用户访问
      pasv_min_port=6000  <==0为随机分配
      pasv_max_port=6010
      
    3. 使用当地时间
      修改后Chrome浏览器时间会推后1个时区,火狐浏览器正常
      不修改Chrome浏览器正常,火狐浏览器不正常
      use_localtime=YES   <==使用当地时间(默认为NO,使用GMT)
      
    4. 匿名用户
      anony
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值