网络信息表:
FtpS1:192.168.10.1/24
FtpC1:192.168.10.2/24
Powershell命令化快速安装IIS与FTP服务器:
Install-WindowsFeature web-server,Web-Ftp-Server -IncludeManagementTools
##检测是否安装成功
Get-WindowsFeature -Name Web-Ftp-Server
Get-WindowsFeature -Name Web-Server
Win+R组合打开运行:inetmgr ##打开IIS
cmd配置防火墙放行:
Part 1.
netsh advfirewall set allprofile state off ##不建议全部关掉防火墙
Part 2.
netsh advfirewall firewall add rule name="[new name]" dir=in protocol=tcp localport=20 action=allow ##数据连接端口
netsh advfirewall firewall add rule name="[new name]" dir=in protocol=tcp localport=21 action=allow ##控制连接端口
cmd新增供ftp站点使用目录:
cd C:\ ##切换至C盘
mkdir skills ##新建ftp站点存放目录
icacls "C:\skills" /grant:r Everyone:(F) ##设置新建的文件为everyone完全控制
icacls "skills" ##查看设置的everyone权限是否生效,查看到everyone旁边为(F)即为完全控制
cmd在ftp站点目录新增txt文件
cd C:\skills ##切换至站点目录
echo "hallow world!!!" > skills.txt ##echo若无文件则会创建文件
检测新建的skills文件夹权限F则为已拥有Everyone完全控制权限
C:\Users\Administrator>cd C:\
C:\>icacls skills
skills Everyone:(F)
NT AUTHORITY\SYSTEM:(I)(OI)(CI)(F)
BUILTIN\Administrators:(I)(OI)(CI)(F)
BUILTIN\Users:(I)(OI)(CI)(RX)
BUILTIN\Users:(I)(CI)(AD)
BUILTIN\Users:(I)(CI)(WD)
CREATOR OWNER:(I)(OI)(CI)(IO)(F)
Successfully processed 1 files; Failed processing 0 files
FTP工作模式: 主动模式、被动模式 ##quote USER/PASV切换主被动模式
1. 主动模式(Active Mode):
- 在主动模式下,客户端首先通过 TCP 21 端口与服务器建立控制连接。
- 当客户端请求数据传输时(如 LIST 或 RETR 命令),客户端会监听一个临时的端口(通常是大于 1024 的端口)并告诉服务器这个端口号。
- 服务器会通过 TCP 20 端口发起连接到客户端的这个临时端口来进行数据传输。
2. 被动模式(Passive Mode):
- 在被动模式下,客户端同样通过 TCP 21 端口与服务器建立控制连接。
- 当客户端请求数据传输时,服务器会在一个随机的端口(通常是大于 1024 的端口)上监听数据连接,并将这个端口号通过控制连接告诉客户端。
- 客户端连接到服务器指定的这个端口进行数据传输,而不是服务器连接到客户端的某个端口。
TCP 21:这是 FTP 的控制连接端口,用于客户端与服务器之间的命令交互,例如登录认证、目录列表请求等。
TCP 20:这是 FTP 的数据连接端口,在被动模式(Passive Mode FTP, PASV)下不常用,但在主动模式(Active Mode FTP, PORT)下用于数据传输。在主动模式下,FTP 客户端通过这个端口接收来自服务器的数据。
IIS新增FTP网站:
右键网站(Sites)新增ftp网站
在弹出的Ftp填写网站信息
绑定网站IP,暂时不使用SSL证书
认证授权信息内;身份验证有两个选项 匿名身份验证与基本身份验证
##不需要用户个性化内容用户特定行为(公开内容)使用匿名身份验证,若需要即使用基本身份验证
##匿名(无需用户名和密码即可访问网站);基本(需要用户登录成功才可访问网站)
授权允许访问所有用户并为其赋予读写权限
完成后在右侧网站(Sites)列表内发现新建完毕的ftp网站
##若出现一个白正方形内包含黑正方形表示该网站未开启如下图
##若拥有两个网站这时就需要关闭另未使用的网站开启我们需要的网站
Ftp助于管理与配置的功能:
1. **FTP Authenticated Users**:授权用户,定义哪些用户可以访问 FTP 服务器。
2. **FTP Current Sessions**:当前会话,监控 FTP 服务器的活动会话。
3. **FTP Directory Browsing**:目录浏览,允许用户浏览 FTP 服务器上的文件夹结构。
4. **FTP Firewall Support**:防火墙支持,配置防火墙规则以允许 FTP 流量通过。
5. **FTP IP Address and Domain Restrictions**:IP 地址和域限制,控制哪些 IP 地址或域名可以访问 FTP 服务器。
6. **FTP Logging**:日志记录,记录 FTP 服务器的活动。
7. **FTP Request Filtering**:请求过滤,设置 FTP 请求的筛选规则。
8. **FTP SSL Settings**:SSL 设置,配置 FTP 服务器的 SSL/TLS 加密通信。
9. **FTP User Isolation**:用户隔离,将用户的文件存储在单独的文件夹中,提高安全性。
客户端cmd防火墙放行程序ftp.exe
netsh advfirewall firewall add rule name="[new name]" program="C:\windows\system32\ftp.exe" dir=in out action=allow
客户端cmd进行访问ftp站点:
C:\Users\Administrator>ftp 192.168.10.1
Connected to 192.168.10.1.
220 Microsoft FTP Service
200 OPTS UTF8 command successful - UTF8 encoding now ON.
User (192.168.10.1:(none)): administrator
331 Password required
Password:
230 User logged in.
ftp>quote PASV
##若访问不成功则为Ftp server防火墙为放行Tcp20/Tcp21
ftp> dir
200 PORT command successful.
125 Data connection already open; Transfer starting.
07-27-24 09:03PM 17 skills.txt
226 Transfer complete.
ftp: 54 bytes received in 0.00Seconds 54000.00Kbytes/sec.
ftp> get skills.txt skills_copy.txt
200 PORT command successful.
125 Data connection already open; Transfer starting.
226 Transfer complete.
ftp: 17 bytes received in 0.02Seconds 1.06Kbytes/sec.
##get默认下载至C:\User/Administrator
ftp> put skills_copy.txt skill1.txt
200 PORT command successful.
125 Data connection already open; Transfer starting.
226 Transfer complete.
ftp: 17 bytes sent in 0.02Seconds 1.06Kbytes/sec.
##put上传文件至服务端
ftp> dir
200 PORT command successful.
125 Data connection already open; Transfer starting.
07-27-24 10:35PM 17 skill1.txt
07-27-24 09:03PM 17 skills.txt
226 Transfer complete.
ftp: 105 bytes received in 0.00Seconds 105000.00Kbytes/sec.
FTP的主要作用:
文件传输:允许用户在网络间传输文件,在服务器上传或下载文件
远程文件管理:提供浏览远程文件系统的能力,使用户能够对远程文件进行操作
多用户支持:允许不同用户访问各自文件或共享文件
文件权限管理:支持文件和目录级别的权限管理,管理员控制谁可以访问特定的文件或目录
安全传输:SFTP、FTPS;提供加密传输以保护数据的安全性