思科ASA放行主/被动FTP

实验环境:

 

 

设备说明:

  internet是一台windows10,用于模拟外网客户

  ASA是思科ASA防火墙

  FTP-SERVER是Centos7,Centos7上安装了vsftpd

 

实验说明:

  本文章共有两个案例

  第一个案例:演示FTP-SERVER配置为主动模式的ftp,然后网络防火墙(ASA)与主机防火墙(firewalld)该如何放行。

  第二个案例:演示FTP-SERVER配置为被动模式的ftp,然后网络防火墙(ASA)与主机防火墙(firewalld)该如何放行。

 

基本配置:

 

先配置一下ASA接口IP地址并划分区域,internet与FTP-SERVER接口地址的配置这里就不做演示了。

  ciscoasa(config)# int g0/0

  ciscoasa(config-if)# ip add 172.16.10.254 255.255.255.0

  ciscoasa(config-if)# nameif dmz

  ciscoasa(config-if)# security-level 50

  ciscoasa(config-if)# no shutdown

 

  ciscoasa(config)# int g0/1

  ciscoasa(config-if)# ip add 1.1.1.1 255.255.255.0

  ciscoasa(config-if)# nameif outside

  ciscoasa(config-if)# no shutdown

 

现在所有设备的接口地址已经配置完毕,ASA也为接口划分了区域,接下来进入正题,配置第一个案例。

第一步:我们是对公网提供FTP服务,为了数据的安全性,我们使用证书加密FTP传输的数据,接下来创建用于加密FTP数据的自签名证书。

 

第二步:在FTP-SERVER上安装vsftpd,然后进入vsftpd的配置文件,只需要添加一些有关FTP数据加密的配置(第三个截图)vsftpd默认就是主动模式的FTP,之后重启vsftpd,在firewalld放行FTP的21号端口,我们知道主动的FTP会使用到两个端口,20与21,为什么我们在firewalld只放行了21号端口,关于这个问题我们之后在做解释。

 

 

 

 

第三步:

1.将FTP-SERVER的21号端口映射出去。

ciscoasa(config)# object network ftp-server

ciscoasa(config-network-object)# host 172.16.10.1

ciscoasa(config-network-object)# nat (dmz,outside) static interface service tcp ftp ftp

2.放行从outside到dmz的FTP流量,到这里端口映射就做好了,你可能会疑惑,为什么没有映射20号端口,我们之后再做解释。

ciscoasa(config)# access-list outside-dmz extended permit tcp any host 172.16.10.1 eq ftp

ciscoasa(config)# access-group outside-dmz in interface outside

3.配置nat地址转换,让FTP-SERVER可以访问公网,为什么要让FTP-SERVER可以访问公网呢?这跟主动模式的FTP服务有关,之后在做解释。

ciscoasa(config)# object network ftp-server-snat

ciscoasa(config-network-object)# host 172.16.10.1

ciscoasa(config-network-object)# nat (dmz,outside) dynamic interface

 

第四步:

使用工具FileZilla(注意:使用ssl加密的FTP需要使用一些工具才能连接,windows与linux自带的ftp客户端无法连接ssl加密的FTP),测试实验是否成功,在internet上连接FTP,步骤如下图。

1.设置连接服务器的信息。

 

2.使用主动模式去连接,默认就是主动。

 

3.点击connect之后成功连接上了FTP。

 

理解FTP的主动模式:

现在我们通过理解FTP的主动模式来回应之前提到的三个问题吧,如下图所示,主动模式的FTP实际上是经过了两次TCP三次握手完成的。这两次TCP三次握手,一次是由客户端主动发起到FTP服务器的连接,FTP客户端以大于等于1024的源端口向FTP服务器的21号端口发起连接。一次是由FTP服务器通过20号源端口向客户端大于1024的目的端口发起连接。从FTP主动模式的原理我们得知,当第一次TCP三次握手完成以后,我们的FTP-SERVER会使用20号源端口主动向客户端发起连接,配置NAT地址转换就是为了FTP-SERVER可以向客户端发起连接,而客户端不会主动去连接FTP-SERVER的20号端口,所以网络防火墙和主机防火墙才不用放行20端口。

 

 

 

 

第二个案例,配置vsftpd为被动模式,配置放行网络防火墙与主机防火墙。

第一步:我们还是使用上面的环境,现在来配置vsftpd为被动模式。

其他配置不变,添加上以下内容即可,之后重启vsftpd。

 

 

在原有的基础上放行firewalld端口即可,被动模式的FTP服务端会使用随机大于1024的端口来传输数据,vsftpd可以将这个随机端口配置为不小于10的端口范围。

 

 

第二步:网络防火墙ASA的配置。

1.为outside-dmz再添加一条访问控制条目。

ciscoasa(config)# access-list outside-dmz extended permit tcp any host 172.16.10.1 range 10000 10010

2.取消为FTP-SERVER配置的nat地址转换与端口映射。

ciscoasa(config)# no object network ftp-server-snat

ciscoasa(config)# no object network ftp-server

3.添加一条新的端口映射,将172.16.10.1直接映射到公网IP,由于访问控制列表的存在,所以不用担心安全方面的问题。

ciscoasa(config)# object network ftp-server

ciscoasa(config-network-object)# host 172.16.10.1

 ciscoasa(config-network-object)# nat (dmz,outside) static interface

 

第三步:将FTP客户端工具FileZilla修改为被动模式,连接即可。

 

 

看图理解FTP的被动模式:

 

posted @ 2020-11-02 23:32  sec_j  阅读(864)  评论(0编辑  收藏  举报