【网络安全】服务基础第一阶段——第七节:Windows系统管理基础---- Web与FTP服务器

news2024/12/23 15:53:20

将某台计算机中的⽂件通过⽹络传送到可能相距很远的另⼀台计算机中,是⼀项基本的⽹络应⽤,即⽂件传送。

⽂件传送协议FTP (File Transfer Protocol)是因特⽹上使⽤得最⼴泛的⽂件传送协议。

涉及到文件的上传和下载,很多都会使用到文件传输协议。文件传输协议提供了不同主机之间的文件传输能力,允许用户进行文件的上传和下载。 而对于两台主机间的通信,说到底还是两台主机的应用程序在进行通信。

如果你的学习或工作环境是由多台电脑构成的局域网,而且有比较大的文件需要在内部多台电脑之间实现共享,那么将其中一台电脑配置为FTP服务器会使共享变得非常方便。

目录

一、FTP主动与被动模式

1.1 工作原理:两种连接

1.2 控制连接和数据连接分离设计的优势:

1.3 工作模式

1.4 客户机/服务器模式

二、FTP命令简述

2.1 FTP命令

2.2 注意事项:​​​​​​​

实验一、Windows FTP匿名访问

实验二、Windows FTP用户登录访问

实验三、Windows FTP用户隔离


一、FTP主动与被动模式
1.1 工作原理:两种连接

控制连接

  • 端口:默认使用TCP 21 端口
  • 作用:控制连接在整个个FTP会话期间⼀直保持打开,⽤于传送诸如登录、改变⼯作⽬录、列出⽬录内容等FTP命令
  • 特点:此连接始终开放,以保证客户端和服务器之间可以随时交换FTP控制信息

数据连接

  • 端⼝:在主动模式下,默认使⽤TCP 20端⼝。在被动模式下,端⼝号由服务器动态指定,并通知给客户端。
  • 作⽤:数据连接仅在需要传输⽂件(包括上传和下载)或⽬录列表时建⽴。⼀旦⽂件传输任务完成,数据连接就会被关闭。
  • 特点:数据连接的⽣命周期较短,只在需要时建⽴,并在⽤完后⽴即关闭
1.2 控制连接和数据连接分离设计的优势:

1. 命令和数据分离

FTP通过单独的控制连接来处理命令和响应,确保了在进⾏⽂件传输的同时还可以接收和执⾏新的命令。这意味着⽤户可以在⼀个⽂件正在传输时发送额外的FTP命令(例如中断传输、开始另⼀个传输等),⽽不会⼲扰到当前的数据传输。

2. 提⾼效率

由于数据连接只在需要传输⽂件时才建⽴,并在传输完成后关闭,这种动态连接的管理⽅式可以更⾼效地使⽤⽹络资源。控制连接保持开放状态,以便随时准备接收新的指令,⽽不必每次传输数据时重新进⾏整个登录和认证过程。

3. 增强兼容性和配置灵活性

使⽤两种连接的⽅法提⾼了FTP的灵活性,允许服务器和客户端更好地管理⽹络配置如防⽕墙和NAT(⽹络地址转换)。例如,在被动模式中,客户端可以主动连接到服务器上的动态端⼝,这在客户端背后有防⽕墙时尤其有⽤。

4. 安全性考虑

将命令和数据传输分离也提⾼了FTP的安全性,因为控制连接可以加密命令传输,避免敏感信息(如⽤户名和密码)在⽹络中明⽂传输。尽管传统FTP本身不包括加密,但其设计允许通过扩展(如FTPS或与SSH隧道结合的SFTP)来提供这种安全性。

5. 错误处理和控制

在两个独⽴的通道中,⼀个⽤于命令和控制,另⼀个⽤于数据传输,使得错误处理更加简洁明了。如果数据传输出现问题,控制连接仍然保持开放,⽤户可以通过发送控制命令来解决问题或调整设置,⽽不会影响到控制流本身。

1.3 工作模式

FTP可以在两种模式下工作:主动模式和被动模式

1. 主动模式(Active Mode): 默认

  • 客户端从任意⾮特权端⼝(端⼝号⼤于1023)发送FTP命令到服务器的命令端⼝,即21端⼝
  • 当服务器收到命令后,它从端⼝20发起⼀个到客户端命令所来⾃的端⼝的连接。
  • FTP客户端⾸先先会随机开启⼀个⼤于1024的端⼝N(1032)进⾏监听,并与服务端的21号端⼝建⽴连接,然后开放N+1端⼝(1033)进⾏监听, 同时时向服务器发出PORT 1033命令通知服务器⾃⼰的在接收数据时所使⽤的端⼝号。
  • 服务器在传输数据的时候,服务端通过⾃⼰的20端⼝去连接客户端的1033端⼝。当不需要传输时,此连接会⾃动断开。

2. 被动模式(Passive Mode):

  • 客户端从任意⾮特权端⼝连接到服务器的命令端⼝。
  • 然后服务器会在客户端命令中指定的端⼝上监听数据连接,⽽不是从服务器的20端⼝发起连接
  • FTP客户端随机开启⼀个⼤于1024的端⼝X向服务器的21端⼝发起连接,同时会开启X+1端⼝
  • 然后向服务器发送PASV命令,通知服务器⾃⼰处于被动模式。
  • 服务器收到命令后,会开放⼀个⼤于1024的端⼝Y进⾏监听,然后⽤PORT Y命令通知客户端,⾃⼰的数据端⼝是Y。
  • 客户端收到命令后,会通过X+1号端⼝连接服务器的端⼝Y,然后在两个端⼝之间进⾏数据传输这样就能使防⽕墙知道⽤于数据连接的端⼝号,⽽使数据连接得以建⽴
  • 被动模式更适⽤于客户端位于防⽕墙后的情况,因为它允许客户端初始化所有连接,解决了主动模式中服务器⽆法穿越客户端防⽕墙的问题。
1.4 客户机/服务器模式

FTP采⽤客户机/服务器架构,其中:

  • FTP服务器:运⾏FTP服务软件,负责响应客户端的请求,管理⽂件的存储和访问。
  • FTP客户端:可以是任何⽤来发起连接和⽂件传输请求的软件,如命令⾏⼯具、Web浏览器或专⽤的FTP客户端使用
  • 这也证明了之前说的,对于两台主机间的通信,说到底还是两台主机的应用程序在进行通信

连接模式

FTP可以通过多种⽅式进⾏连接:

  1. 命令⾏⽅式连接:使⽤如 ftp 这样的命令⾏⼯具,在⼤多数操作系统中都内置此类⼯具,允许⽤户执⾏FTP命令来传输⽂件。
  2. Web⽅式连接:通过Web浏览器直接访问FTP服务器,输⼊FTP的URL(如 ftp://ftp.example.com ),浏览器会展示服务器上的⽂件和⽂件夹。
  3. 本地安装FTP客户端软件连接:使⽤专⻔的FTP客户端软件,如FileZilla、WinSCP等,这些客户端提供⽤户友好的界⾯和丰富的配置选项,⽀持⽂件的上传、下载和同步。

登陆方式

FTP⽀持两种基本的登录⽅式:

  1. 匿名登录:⽤户可以通过使⽤ anonymous 作为⽤户名进⾏登录,通常邮箱地址作为密码(尽管不⼀定会被真正验证)。这种⽅式允许⽤户访问公开的⽂件夹和⽂件,⼴泛⽤于公共⽂件的下载。
  2. 授权帐户登录:⽤户需要提供有效的⽤户名和密码才能登录FTP服务器。这提供了更⾼级别的安全性和访问控制,适⽤于需要限制访问权限的场景。

文件传输

FTP的⽂件传输仅表示下列三件事件之⼀:

  • 从服务器把⽂件复制到客户(下载),称为读取⽂件。在RETR命令的监督下完成。
  • 从客户把⽂件复制到服务器(上传),称为存储⽂件。在STOR命令的监督下完成。
  • 从服务器向客户发送⽬录列表或⽂件名。在LIST命令的监督下完成。应注意,FTP把⽬录或⽂件名列表当作⽂件,在数据连接上发送。

安全性

传统的FTP不加密其传输的数据,包括⽤户的认证信息(⽤户名和密码),因此它对窃听特别敏感。为了提供安全的⽂件传输功能,推出了以下⼏种⽅案:

  • FTP over SSL/TLS (FTPS):利⽤SSL或TLS提供加密的通道,以保护数据传输的安全。
  • SSH File Transfer Protocol (SFTP):作为FTP的替代,通过SSH提供加密的传输。

FTP协议虽然有其历史局限性,但因其简单和⼴泛⽀持,在很多环境中仍然是⽂件传输的可⾏选择。然⽽,在安全性是关键考量的环境下,建议使⽤FTPS或SFTP替代传统FTP。

二、FTP命令简述
2.1 FTP命令

1.连接到FTP服务器

在命令提示符中,键⼊以下命令以连接到FTP服务器:

ftp [hostname or IP]
其中 [hostname or IP] 是FTP服务器的域名或IP地址。例如:
ftp example.com
或者
ftp 172.16.130.143

2.输入用户名和密码

连接后,系统会提示你输⼊⽤户名和密码。如果你正在使⽤匿名FTP,通常可以⽤ anonymous 作为⽤户名,密码可以是你的电⼦邮件地址。

3,使用FTP命令

⼀旦连接到FTP服务器,你可以使⽤多种FTP命令来管理⽂件和⽬录。常⽤的命令包括:

  • ls 或 dir :列出当前⽬录的⽂件和⽂件夹。
  • cd [directory] :更改当前⽬录到指定的⽬录。
  • get [filename] :下载⽂件到本地计算机。
  • put [filename] :上传⽂件到服务器。
  • delete [filename] :删除服务器上的⽂件。
  • mkdir [directory] :在当前⽬录下创建新⽬录。
  • rmdir [directory] :删除⽬录。
  • bye 或 quit :断开连接并退出FTP会话。

4.下载和上传文件

例如,要下载⽂件,可以使⽤:

get filename.txt

要上传⽂件,可以使⽤:

put filename.txt

5.退出FTP

完成所有操作后,你可以使⽤ quit 或 bye 命令退出FTP会话:

quit
2.2 注意事项:
  • 命令提示符中的FTP客户端不⽀持被动模式(passive mode)。这可能导致在某些服务器配置或⽹络环境中遇到问题。
  • 对于需要更⾼安全性的FTP连接(如FTPS或SFTP),命令提示符的FTP客户端可能不⾜够,你可能需要使⽤更⾼级的⼯具如WinSCP或FileZilla。
  • 在 Windows 7 上,默认的 FTP 客户端(如命令⾏中的 FTP)通常会使⽤ 被动模式,⽽不是 主动模式。

如何切换到主动模式:

如果需要在 Windows 7 上强制使⽤ 主动模式,可以按照以下步骤操作:

1)在命令⾏ FTP 客户端中设置主动模式:

  1. 打开命令提示符,输⼊ ftp 命令进⼊ FTP 客户端。
  2. 连接到 FTP 服务器,例如:
bash
复制代码
open [ftp服务器地址]

3.在登录成功后,输入以下命令切换到主动模式:

bash
复制代码
quote PASV

4.现在,FTP会话将会尝试使用主动模式来传输数据

2)在第三方FTP客户端中设置主动模式:

⼤多数图形化的 FTP 客户端(如 FileZilla、WinSCP 等)都有显式的设置选项来切换 FTP 传输模式:

  1. FileZilla:打开,进入编辑->设置,在左侧菜单中选择FTP->传输模式,选择主动
  2. WinSCP:打开,点击新建会话,在会话窗口中点击高级->FTP,将模式切换为主动模式,然后保存

3)控制面板

实验一、Windows FTP匿名访问

1.安装FTP服务器(不同系统有差异)

首先,需要在Windows Server上安装FTP服务器组件:前面的步骤和前面的实验一样,在“服务器角色”页面出现差异,有的系统在此处直接可以看到“FTP服务器”选项,那么这一步就可以直接选择;有的系统在这一步没有,那么就需要先选择“Web服务器(IIS)”,在角色服务页面再选择“FTP服务器”


2.配置FTP站点

安装FTP服务器之后,需要配置FTP站点并启用匿名访问:

打开IIS管理器->在“连接”窗口中,右键“网站”,选择“添加FTP站点”->为FTP站点命名,并指定FTP站点的本地路径(这是匿名用户将访问的目录)

配置IP地址,选择要绑定的IP地址或者保留“全部未分配”->在SSL页面,根据需求选择,在本实验中不需要SSL加密,所以我选择No SSL->点击下一步,在身份验证部分选择“匿名”->在授权部分选择“匿名用户”,权限根据需求选择,我选择了读取(下载文件)和写入(上传文件)


3.配置匿名用户的权限

要让匿名用户能够访问FTP站点,你需要确保匿名用户(通常是IUSR账户)有权访问FTP根文件夹:

  1. 在你创建ftp文件夹的位置,右键点击你为FTP站点设置的文件夹
  2. 选择属性->“安全”选项
  3. 点击编辑->添加
  4. 输入“IUSR”->检查名称
  5. 在权限部分,根据需要选择适当的权限,如读取、执行等


4.测试FTP访问

通过浏览器访问FTP站点,测试是否可以成功进行匿名访问

注意:新建站点时无需选择基于主机名的配置。主机名是用来配置有多个域名时,同一个IP地址且同一个端口号是来对应不同的FTP站点

实验二、Windows FTP用户登录访问

1.创建FTP站点

此实验在上个实验的基础上进行,前面的步骤和上个实验相同,你可以一直自主进行到身份验证阶段

2.配置认证和授权信息

  1. 身份验证设置:在“身份验证”页面,勾选“基本”(基本身份验证要求用户名和密码),如果环境要求更高的安全性,考虑启用SSL
  2. 授权设置:在授权页面,选择“制定的角色或用户”->输入允许访问的用户或用户组名称->设置权限


4.创建或配置FTP用户

  1. 如果还没有用户和组,按照我们之前说的方法创建,我这里创建了FTPgroup组
  2. 设置NTFS权限:确保FTP目录对指定的用户或用户组有适当的NTFS权限,右键FTP文件夹,选择属性->安全->添加用户或用户组,并设置适当的权限。和之前的方法是一样的


5.测试FTP访问

使用资源管理器测试访问

  1. 输入服务器的IP地址或域名、用户名、密码以及端口(默认21),尝试连接
  2. 验证是否可以上传和下载文件


实验三、Windows FTP用户隔离

需求:有3个用户,每个用户都可以登录并且用户登录后只能在自己的目录中,不可访问其他的用户目录。每个用户的权限都是可读可写

方法一:本地用户账户隔离

1.准备用户目录

首先,为每个用户创建一个单独的目录,这些目录可以在服务器的任何位置,但最好集中管理

  1. 在服务器上选择或创建一个父目录,例如 D:\FTP\localuser\localuser
  2. 在这个父目录下,为每个用户创建一个子目录

2.创建或配置用户账户

确保服务器上存在响应的用户账户,并设置密码:

  1. 打开计算机管理器,导航到“本地用户和组”->用户
  2. 创建或确认存在用户,为每个用户设置一个安全的密码

3.设置目录权限

对于每个用户目录设置适当的NTFS权限,确保用户只能访问自己的目录

  1. 右键选择user1文件夹,属性->安全
  2. 添加用户user1并设置其权限为“修改”(允许读取和写入)
  3. 确保删除或修改其他可能的用户或组权限,使得只有user1可以访问此文件夹
  4. 一样的步骤为2、3设置

4.配置FTP站点

和之前一样的步骤,在身份验证页面,启用“基本身份验证”,在授权页面选择“指定的角色或用户”,添加user1、2、3,权限设置为“读取和写入”

5.启用用户隔离

  1. 在IIS管理器中选择FTP站点,双击“FTP用户隔离”
  2. 选择“用户名称目录(隔离用户)”,这会使每个用户登录时自动定向到其用户命名的子目录

6.测试FTP访问

测试每个用户的登录

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2108789.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2024 RustChinaConf 赞助商介绍

2024 RustChinaConf 得到了行业各界的广泛支持,在此向以下赞助商表示感谢! 非凸科技 非凸科技是一家全栈使用Rust的金融科技公司,致力于为券商、私募、公募等金融机构及个人投资者提供一站式数智交易领域服务解决方案。作为本次大会的钻石赞助…

常见概念 -- 色度色散与偏振模色散

色度色散(CD) 由于光纤中不同波长对应不同的传输速度,不同波长到达相同距离的光纤的时间不同,从而导致光脉冲展宽。 偏振模色散(PMD) 由于光纤的随机性双折射,不同相位状态的光传播速度不同,使光脉冲展宽。 色散对系统的影响 C…

【办公效率】Axure会议室预订小程序原型图,含PRD需求文档和竞品分析

作品说明 作品页数:共50页 兼容版本:Axure RP 8/9/10 应用领域:中小型企业的会议室在线预订 作品申明:页面内容仅用于功能演示,无实际功能 作品特色 本作品为会议室预订小程序原型图,定位于拥有中大型…

太速科技-VC709E 基于FMC接口的Virtex7 XC7VX690T PCIeX8 接口卡

VC709E 基于FMC接口的Virtex7 XC7VX690T PCIeX8 接口卡 一、板卡概述 本板卡基于Xilinx公司的FPGA XC7VX690T-FFG1761 芯片,支持PCIeX8、两组 64bit DDR3容量8GByte,HPC的FMC连接器,板卡支持各种FMC子卡扩展。软件支持windows&#xf…

提升效率!ArcGIS中创建脚本工具

在我们日常使用的ArcGIS中已经自带了很多功能强大的工具,但有时候遇到个人的特殊情况还是无法满足,这时就可以试着创建自定义脚本工具。 一、编写代码 此处的代码就是一个很简单的给图层更改别名的代码。 1. import arcpy 2. input_fc arcpy.GetParam…

3、无重复字符的最长子串

题目 链接:leetcode链接 思路分析(滑动窗口) 子串是连续的,很容易联想到滑动窗口,处理连续子串问题很方便。 先设置left和right两个指针,从0位置开始移动。 为了去判断窗口里面有没有出现重复的子串&a…

matplotlib可视化学习

单折线图:显示变量随时间变化而发生的变化,也可以增加标签 多折线图,对比差异 散点图:体现数据在一定范围内的分布情况 box箱图:体现数据的分布情况,与散点图不同的是,它还统计了最大/最小值、中…

基于C+++CSV文件存储开发图书管理系统

简介 这是一个简单的拥有图形界面的图书管理系统。 特色 前后端完全分离易于使用的交互界面 功能介绍 主要有图书管理和用户管理两项功能。 默认读取同一目录下的 user.csv 和 book.csv 作为用户和图书数据文件。也可在登录后导入其他数据文件。 在无数据文件的情况下&am…

2024年6月第2套英语四级真题PDF

2024年6月第2套英语四级真题PDF

python 统计文件夹中图片尺寸

python Code import os import matplotlib.pyplot as plt import numpy as np import copy import shutil import cv2 import matplotlib.pyplot as plt def cv_imread(file_path):#imdedcode读取的是RGB图像cv_img cv2.imdecode(np.fromfile(file_path,dtypenp.uint8),-1)re…

基于STM32的RTOS--freertos的使用(HAL实现多任务)

一:STM32cubemx配置 1:工程建立 (1)打开stm32cubemx 点击进入芯片选择页面 (2)选择对应的芯片型号双击 2:调试接口配置 3:时钟设置 使用的开发板没有外部晶振不选择外部使用内部设置…

MacOS---IDEA快捷键:生成get/set方法

介绍 在苹果电脑使用快捷键快速生成get/set方法。 快捷键 Cmdn

【大规模语言模型:从理论到实践】Transformer中PositionalEncoder详解

书籍链接:大规模语言模型:从理论到实践 第15页位置表示层代码详解 1. 构造函数 __init__() def __init__(self, d_model, max_seq_len80):super().__init__()self.d_model d_model # 嵌入的维度(embedding dimension)d_mode…

Echart 环形图 特殊字体 富文本

注&#xff1a;特殊字体需要UI人员提供一下 .ttf 文件 完整代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0">&…

QAM星座图平均功率能量

文章目录 引言结论计算&推导推导公式数值结果验证参考文献 引言 本文主要参考了博客1&#xff0c;文章写的比较漂亮。但可惜推导过程是错误的 结论 先说结论&#xff0c;对于M-QAM调制而言&#xff0c;QAM符号的平均能量 E s E_{s} Es​ 可以由下式计算得到 E s ( M …

使用Qt this->pos,和event->pos 实现界面跟随鼠标移动

对比 this->pos() 表示当前窗口左上角相对于整个桌面屏幕的位置。 如下图所示 event->globalPos() 是当前鼠标点击的位置相对于桌面的位置。 想要做到鼠标界面跟随鼠标左键移动&#xff0c;就需要计算他们的相对位置。 最后让鼠标移动到新的位置的时候&#xff0c;使用…

【SRC挖掘】越权漏洞——burp插件被动检测越权漏洞,一个插件让挖洞效率翻倍!Autorize

越权与未授权漏洞 越权漏洞什么是越权漏洞&#xff1f;Autorize插件安装使用步骤拦截过滤器 越权漏洞 什么是越权漏洞&#xff1f; 越权漏洞是指应用程序未对当前用户操作的身份权限进行严格校验&#xff0c;导致用户可以操作超出自己管理权限范围的功能&#xff0c;从而操作…

硬件工程师笔试面试——继电器

目录 6、继电器 6.1 基础 继电器原理图 继电器实物图 6.1.1 概念 6.1.2 结构组成及工作 6.1.3 应用场景 6.1.4 优点与缺点 6.1.5 继电器工作原理 6.2 相关问题 6.2.1 如何选择合适的继电器满足特定的应用需求 6.2.2 继电器在汽车电子系统中通常承担那些角色 6.2.3…

Android调整第三方库PickerView宽高--回忆录

一、效果 // 时间选择implementation com.contrarywind:Android-PickerView:4.1.9 多年前&#xff0c;使用到事件选择器&#xff0c;但是PickerView默认宽度使满屏的&#xff0c;不太符合业务需求&#xff0c;当时为此花了许多时间&#xff0c;最终找到了解决方案&#xff0c;…

二维高斯函数的两种形式

第一种形式很常见 多元正态分布 多元正态分布&#xff08;Multivariate Normal Distribution&#xff09;&#xff0c;也称为多变量正态分布或多维正态分布&#xff0c;是统计学中一种重要的概率分布&#xff0c;用于描述多个随机变量的联合分布。 假设有 n n n 个随机变量…