很早之前写过一篇关于FTP服务器相关博客:FTP服务器主动被动模式详解。直到最近生产环境需要搭建一个FTP服务,才发现一些细节还需注意。
生产环境搭建ftp服务器,如果有外部用户需要连接ftp服务器下载文件,一般用的是Passive (PASV,被动方式),因为Standard (PORT方式,主动方式)需要让ftp服务器的20端口去连接用户的一个随机端口,这样很不切合实际(外部用户去开一个服务端口)!
Passive 也存在一个问题:ftp服务器除了命令通道(21端口的服务连接)外,还需要一个数据通道,该数据通道的目的端口(ftp服务器端)如果不加以限制,理论上ftp服务端则会随机开放一个 1025 ~ 65535 之间的端口。这样在出口防火墙配置策略方面会存在严重问题。最好的方法就是将ftp服务端开放的端口限定在一个很小的区域内,如:50055-50055,这种配置会使得服务端会开放一个特定的50055端口来用于数据通道传输,极大程度的提高了系统的网络安全。幸运的是无论是windows server 自带的 ftp 服务器 还是 filezilla server软件都可以配置被动模式的端口范围。
windows server 服务器搭建 ftp 服务器网上教程较多,这里就不再赘述。主要记录一下两个问题:1、设置被动模式端口;2、使其生效。
如上图:数据通道端口范围是设置ftp服务端数据通道的端口范围,但是必须点击注释1处才可以编辑,注释2处是灰色的,不允许编辑。
使其生效笔者尝试了在如下位置 重启服务器好几次,也不起作用。抓包发现数据通道还是随机端口。
经查阅,通过命令行重启,就能生效,如下:
抓包发现数据通道确实变成了特定的端口,如下:
windows server 搭建ftp所需注意问题已全部解决。filezilla server相对简单,配置界面可以设置,重启之后生效,如下:
自此,问题得以基本圆满解决。