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

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

⽂件传送协议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.rhkb.cn/news/417198.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

代码随想录 刷题记录-28 图论 (5)最短路径

一、dijkstra(朴素版)精讲 47. 参加科学大会 思路 本题就是求最短路,最短路是图论中的经典问题即:给出一个有向图,一个起点,一个终点,问起点到终点的最短路径。 接下来讲解最短路算法中的 d…

【论文分享】GPU Memory Exploitation for Fun and Profit 24‘USENIX

目录 AbstractIntroductionResponsible disclosure BackgroundGPU BasicsGPU architectureGPU virtual memory management GPU Programming and ExecutionGPU programming modelGPU kernelDevice function NVIDIA PTX and SASSSASS instruction encoding GPU Memory SpacesGlob…

【数据库】MySQL表的基本查询

关于表的增删查改主要分为CRUD:Create(创建), Retrieve(读取),Update(更新),Delete(删除) 目录 1.Creat(增加内容) 1.1指定列插入 1.2全列插入 1.3多行插入 1.4插入冲突更新 1.5替换 2.R…

【算法每日一练及解题思路】判断字符串是否包含数字

【算法每日一练及解题思路】判断字符串是否含数字 一、题目:给定一个字符串,找出其中不含重复字符的最长子串的长度 二、举例: 比如"abcdefgh",不含数字;比如"1",含数字;比如"a1s",含…

fl studio24.1.1.4285中文版怎么破解?FL Studio 2024安装破解使用图文教程

fl studio24.1.1.4285中文破解版是一款功能强大的编曲软件,也就是众所熟知的水果软件。它可以编曲、剪辑、录音、混音,让您的计算机成为全功能录音室。除此之外,这款软件功能非常强大,为用户提供了许多音频处理工具,包…

单点登录问题【拼多多0905一面】

说一些今晚情况,7点腾讯音乐笔试,因为8点拼多多一面,哪个都拒不了。硬着头皮50分钟写了1.2题然后去面试。刚开始状态真的很差,大脑思考不动,面试中2个手撕,做出来一个,两个项目问题,…

notepad++将换行替换成空

将多行里的换行置为一行,例如将下面的6行置为3行 crrlH打开替换框, 替换目标为【,\r\n】,替换成空,勾选循环查找和 正则表达式,全部替换即可。 替换后的效果

【Git】本地仓库操作

Part1 基础概念 git作用:管理代码版本,记录,切换,合并代码 git仓库:记录文件状态内容和历史记录的地方(.git文件夹) git的三个区域:1)工作区:实际开发时的文…

IP 协议详解

一、认识 IP 地址与网络层的职责 网络层是OSI七层模型中的第三层,也是TCP/IP四层模型中的网络接入层。在这一层,数据包被封装并加上IP层的头部信息,以便在网络之间传输。网络层的主要功能包括路由选择、分段与重组、拥塞控制以及IP地址管理等…

视频技术未来展望:EasyCVR如何引领汇聚融合平台新趋势

随着科技的飞速发展,视频技术已成为现代社会不可或缺的一部分,广泛应用于安防监控、娱乐传播、在线教育、电商直播等多个领域。本文将探讨视频技术的未来发展趋势,并深入分析TSINGSEE青犀EasyCVR视频汇聚融合平台的技术优势,展现其…

ArcGIS展线/投线教程

1 制作CSV文件 必要字段:起始经度,起始纬度,终止经度,终止纬度4列,其他列可以选填。 2 加载表格数据 点击号在当前地图加载表格。 3 使用工具箱 找到工具箱 - 数据管理工具 - 要素 - XY转线。 填空即可。当然&…

16 C语言连接

使用c语言连接mysql,需要使用mysql官网提供的库,可以在官网下载 准备工作: 保证mysql服务有效 官网下载合适的mysql connect库 也可以直接安装mysql服务 yum install -y mysql-devel Connector/C使用 库格式如下: [hbMiWiFi-R1…

监控平台之nodejs模拟后端接口

github:可以下载进行实验 https://github.com/Mr-Shi-root/sdk-platform/tree/master 1.配置node环境,安装express cors body-parser babel/cors body-parser - node.js 中间件,用于处理 JSON, Raw, Text 和 URL 编码的数据。cookie-parse…

VR虚拟驾驶未来发展_vr自动驾驶汽车所带来的改变

在自动驾驶汽车的基础上,VR虚拟现实技术的应用也让自动驾驶汽车更加智能化,能够实现更高级的驾驶体验,今天这篇文章就和大家一起探讨一下 VR虚拟驾驶未来发展的趋势,以及虚拟现实自动驾驶汽车所带来的几个改变。 一、VR 虚拟驾驶未…

UnityShaderGraph 卡通水面效果

效果预览: 原理: 使用三张噪声贴图,结合UV偏移制作水面波纹混合的假象效果 噪声图1: 噪声图2: 噪声图3: 三次采样都是同样的方法,使用step函数来二分噪声 三张噪声采样结果相乘得到最终的波纹…

深度学习与大模型第1课环境搭建

文章目录 深度学习与大模型第1课环境搭建1. 安装 Anaconda2. 修改环境变量2.1 修改 .condarc 文件2.2 使用 Anaconda Prompt 修改环境变量 3. 新建 .ipynb 文件 机器学习基础编程:常见问题: 深度学习与大模型第1课 环境搭建 1. 安装 Anaconda 首先&am…

Ai Illustrator 取消吸附到像素点,鼠标拖动的时候只能到像素点

Ai Illustrator 取消吸附到像素点,鼠标拖动的时候只能到像素点 在做图的时候无意间变成吸附到像素点了,导致无法更细致的移动点。 像这样: 关闭的方法是打开上面菜单中的 【视图】取消勾选【对齐像素】 即可。 结果就是:

新160个crackme - 048-monkeycrackme1

运行分析 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/8e7c9973721b4df1997cc9a83e0ef2b6.png 500x) 点击注册无反应 PE分析 Delphi程序,32位,无壳 静态分析&动态调试 使用DeDeDark进行分析,发现Register按钮事件地址入口…

容性负载箱如何测量电容器的容量、电压、泄漏电流和ESR等参数?

容性负载箱是用于测量电容器参数的重要设备。它的主要功能是通过向电容器施加不同的负载,从而测量电容器的容量、电压响应、损耗等关键参数。 具体来说,容性负载箱可以通过以下方式测量电容器的各项参数: 1. 测量电容器的容量:容…

Java项目:139 springboot基于SpringBoot的论坛系统设计与实现

项目介绍 论坛系统设置的角色有管理员,版主,用户等。 管理员管理论坛,主要是对论坛帖子增删改查以及对论坛帖子回复进行查看,对版主和用户进行管理,管理新闻等。 版主可以发布帖子,可以查询论坛帖子&…