由于工作需要公司最近的一台服务器需要开启启用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服务器。
现在我们在防火墙上开放2121和6650端口,如下:
现在我们在此连接FTP服务器,如下图:
通过上图可以看到,目前FTP客户端已经成功连接FTP服务器。
以上防火墙是在windows server 2003 上进行操作的,下面我们来看看windows server 2008上的防火墙设置。
在防火墙的规则选项中,我们只需要配置入站规则即可。如下图:
在入站规则中,以同样的方法开放6650端口。
以上是有关如何在防火墙上开放相应的端口,下面我们来配置指定的IP地址来连接FTP服务器。
其实有两种方法我们来指定IP地址来连接FTP服务器,一种是在Filezilla Server上进行设置,另外一种就是我们本文的重点防火墙。
首先,我们来看看Filezilla Server上边如何设置。打开Filezilla Server选择全局配置项,其中IP Filter是非常重要的。
IP Filter中上半部分填入禁止连接的IP地址,下半部分允许连接FTP服务器的IP地址。在此我们默认是所有的IP都不能连接FTP服务器,所以上半部分我们填入“*”。如下图:
现在我们来连接试试,我本地的公网IP为:
通过上图可以我本地是无法连接FTP服务器的。那么被允许的IP地址能不能连接呢?如下图:
可以很明显的看到是可以连接的。
以上是Filezilla Server本身有关IP地址过滤的设置。下面我们不使用Filezilla Server的设置,使用防火墙的设置。
打开防火墙配置的2121和6650端口选项,如下图:
点击“更改范围”—“自定义列表”,在自定义列表中填入允许访问的IP地址。如下图:
以上防火墙设置完毕后,我们再来连接测试。
可以看到我本地还是不能连接FTP服务器的,那么被允许的IP地址呢?如下图:
可以看到被允许的IP地址是可以连接FTP服务器的。
通过以上实验,我们可以知道。如果我们有特殊需要,比如开放服务器的80端口只能被指定的IP地址访问,这样就提高了相关应用程序的安全性。
特别是对于开放了3389端口的服务器,我们完全可以通过这种方法来降低服务器被攻击的可能性。
PS:Filezilla Server从0.9.42版本以后就不在支持windows Server 2003 操作系统。