FTP服务器开启防火墙相关配置

    由于工作需要公司最近的一台服务器需要开启启用FTP服务,用来传输文件。

    但是考虑到该服务器是在公网,基于安全的考虑一般都是要开启防火墙的。而公司内部的FTP服务器,一般情况下我都是关闭防火墙的。

    下面我就将有关防火墙的配置流出如下:

    OS:windows server 2003、2008 FTP:Filezilla Server 0.9.41

    首先是安装FTP服务器,在此我使用时开源FTP服务器Filezill Server。有关Filezilla Server的安装与使用,你可以去百度,网上的文章比较多。在此我就不多介绍。

    FTP协议的传输比较特别,不像其他协议使用一个端口。FTP协议需要使用两个端口,一个是21号端口,用来传输相关的命令。一个是数据端口,默认是20端口,用来传输文件数据。

    所以我们需要在防火墙上开放两个端口21和20端口。

    毕竟是公网传输,所以我们不得不考虑到安全,在此我们把FTP对应的端口修改为2121和6650。除此之外,我们还限制只有指定的IP地址才能连接FTP服务器。

  如下图:

FTP服务器开启防火墙相关配置

FTP服务器开启防火墙相关配置

    现在防火墙是开启状态,我们先来远程连接下。

FTP服务器开启防火墙相关配置

FTP服务器开启防火墙相关配置

FTP服务器开启防火墙相关配置

    可以看到无法连接FTP服务器。

    现在我们在防火墙上开放2121和6650端口,如下:

FTP服务器开启防火墙相关配置

FTP服务器开启防火墙相关配置

    现在我们在此连接FTP服务器,如下图:

FTP服务器开启防火墙相关配置

    通过上图可以看到,目前FTP客户端已经成功连接FTP服务器。

    以上防火墙是在windows server 2003 上进行操作的,下面我们来看看windows server 2008上的防火墙设置。

FTP服务器开启防火墙相关配置

    在防火墙的规则选项中,我们只需要配置入站规则即可。如下图:

FTP服务器开启防火墙相关配置

FTP服务器开启防火墙相关配置

FTP服务器开启防火墙相关配置

FTP服务器开启防火墙相关配置

FTP服务器开启防火墙相关配置

FTP服务器开启防火墙相关配置

入站规则中,以同样的方法开放6650端口。

FTP服务器开启防火墙相关配置

    以上是有关如何在防火墙上开放相应的端口,下面我们来配置指定的IP地址来连接FTP服务器。

    其实有两种方法我们来指定IP地址来连接FTP服务器,一种是在Filezilla Server上进行设置,另外一种就是我们本文的重点防火墙。

    首先,我们来看看Filezilla Server上边如何设置。打开Filezilla Server选择全局配置项,其中IP Filter是非常重要的。

IP Filter中上半部分填入禁止连接的IP地址,下半部分允许连接FTP服务器的IP地址。在此我们默认是所有的IP都不能连接FTP服务器,所以上半部分我们填入“*”。如下图:

FTP服务器开启防火墙相关配置

    现在我们来连接试试,我本地的公网IP为:

FTP服务器开启防火墙相关配置

FTP服务器开启防火墙相关配置

    通过上图可以我本地是无法连接FTP服务器的。那么被允许的IP地址能不能连接呢?如下图:

FTP服务器开启防火墙相关配置

    可以很明显的看到是可以连接的。

    以上是Filezilla Server本身有关IP地址过滤的设置。下面我们不使用Filezilla Server的设置,使用防火墙的设置。

    打开防火墙配置的2121和6650端口选项,如下图:

FTP服务器开启防火墙相关配置

点击“更改范围”—“自定义列表”,在自定义列表中填入允许访问的IP地址。如下图:

FTP服务器开启防火墙相关配置

FTP服务器开启防火墙相关配置

    以上防火墙设置完毕后,我们再来连接测试。

FTP服务器开启防火墙相关配置

    可以看到我本地还是不能连接FTP服务器的,那么被允许的IP地址呢?如下图:

FTP服务器开启防火墙相关配置

    可以看到被允许的IP地址是可以连接FTP服务器的。

    通过以上实验,我们可以知道。如果我们有特殊需要,比如开放服务器的80端口只能被指定的IP地址访问,这样就提高了相关应用程序的安全性。

    特别是对于开放了3389端口的服务器,我们完全可以通过这种方法来降低服务器被攻击的可能性。

    PS:Filezilla Server从0.9.42版本以后就不在支持windows Server 2003 操作系统。

上一篇:经常被遗忘的 iOS 源码仓库 - Code4App


下一篇:个人用户如何手动在ECS实例上部署Java web项目?