配置防火墙安全策略之前,在《防火墙基础——安全区域、安全策略》一文的基础上,还需要对状态检测和会话进行了解。
目前的防火墙多是以状态检测技术为基础的,而状态检测技术是包过滤技术的改进(两者在《包过滤与状态检测防火墙的区别浅述》中有过简单的比较),状态检测是基于连接状态的检测机制——将属于通信双方同一个连接的所有交互报文作为一个数据流看待,对这个数据流进行检查时会考虑数据报文之间的联系。
而这个连接状态则是用会话来体现——如果安全策略允许,状态检测防火墙会为通信双方同一个连接的第一个报文建立一个会话并暂存在会话表中,后继报文将会直接匹配该会话而进行转发,不再进行安全策略检查,示意如图1。防火墙中的这个会话表就是快速、准确配置防火墙安全策略的关键。
图1
下面通过图2所示的拓扑进行模拟实验:
实验场景是:在某单位的出口防火墙FW2(USG5500)上配置安全策略:仅允许内网的特定计算机Client1(10.1.1.1)可以ping通和访问外网中的特定Web服务器(1.1.1.1)。
图2
一、配置防火墙的接口IP地址
[FW2]interface GigabitEthernet 0/0/0
[FW2-GigabitEthernet0/0/0]ip address 10.1.1.254 24
[FW2-GigabitEthernet0/0/0]interface GigabitEthernet 0/0/1
[FW2-GigabitEthernet0/0/1]ip address 1.1.1.254 24
[FW2-GigabitEthernet0/0/1]quit
二、将防火墙的接口加入安全区域
将连接内网的G0/0/0口加入trust区域,连接外网的G0/0/1口则加入untrust区域。
[FW2]firewall zone trust
[FW2-zone-trust]add interface GigabitEthernet 0/0/0
[FW2-zone-trust]firewall zone untrust
[FW2-zone-untrust]add interface GigabitEthernet 0/0/1
[FW2-zone-untrust]quit
此时,因为防火墙缺省安全策略是禁止,所以内网的Client1还无法ping通和访问外网的Web服务器。
三、将防火墙的缺省安全策略从禁止临时修改为允许
[FW2]firewall packet-filter default permit all
注:
此时防火墙将放行所有数据报文,因此为安全计,建议尽量在测试环境中调试好,再转移到生产环境中。
此时,内网的Client1可以ping通和访问外网的Web服务器。
四、查看防火墙会话表
(一) 用内网的Client1访问外网的Web服务器
操作如图3
图3
注:
Web服务器返回的HTTP的状态是404,这应该是模拟器的原因,不影响实验效果。
(二) 查看防火墙的会话表
[FW2]display firewall session table
显示如图4
图4
可以看到内网的Client1访问外网的Web服务器时,防火墙为其建立的会话。其中使用的协议:http;(Client1的)源IP地址:10.1.1.1,源端口:2050;(Web服务器的)目的IP地址:1.1.1.1,目的端口:80,IP地址和端口之间的“-->”代表的是Client1主动访问Web服务器——数据请求方向从安全区域trust 到 untrust。这几个就是配置Client1访问web服务器所需安全策略的要素。
注:
其中源端口是随机的,因此在配置安全策略时需要忽略。
因为会话表中的会话有老化时间,超时后会自动删除,而在eNSP中访问Web需要传输的数据很少所需时间很少,为了能看到会话,可以先将命令输入后不敲回车键,接着用Client1访问web,然后及时切换回防火墙命令界面按回车键。
不同协议/服务的会话默认具有不同的老化时间,可以手动调整这个时间,一般情况下默认就可以正常工作。
(三) 用内网的Client1 ping 外网的Web服务器
操作如图5
图5
可以看到ping发了10次测试包,均成功。
(四) 再次查看防火墙的会话表
[FW2]display firewall session table
显示如图6
图6
可以看到Client1 ping Web服务器时,防火墙也为其建立了会话。其中使用的协议:icmp;(Client1的)源IP地址:10.1.1.1,源端口:256;(Web服务器的)目的IP地址:1.1.1.1,目的端口:2048,IP地址和端口之间的“-->”代表的是Client1 ping Web服务器。这几个则是配置ping所需安全策略的要素。
注:
ICMP工作在传输层以下,报头中并没有端口字段,因此在会话表中用ICMP报头中的标识符字段值代表源端口,用固定的值2048代表目的端口,来标识ping的数据流。
其它有些协议也存在报头中没有端口字段的情况,处理方式和ICMP类似。
对于TCP连接来说首个报文的标志是SYN,因此对于TCP协议,防火墙只有收到SYN报文且配置的规则允许通过才会建立会话。由此在路径不一致的环境中,如果防火墙没有收到SYN报文,只收到SYN+ACK的及后继报文将无法建立会话(使用undo firewall session link-state check命令关闭状态检测功能后则可以建立会话,如无必须不建议关闭)。
UDP协议是没有连接状态的协议,因此只要防火墙上配置的规则允许UDP报文通过,防火墙就会建立会话。
对于ICMP协议,其中Ping报文,防火墙只有收到Ping回显请求报文且配置的规则允许通过,才会建立会话(关闭状态检测功能后只收到Ping回显应答报文也可以建立会话);其他类型的ICMP报文,只要防火墙上配置的规则允许通过,防火墙就会转发报文,但不建立会话。
五、 配置防火墙的安全策略
[FW2]policy interzone trust untrust outbound
[FW2-policy-interzone-trust-untrust-outbound]policy 1
[FW2-policy-interzone-trust-untrust-outbound-1]policy source 10.1.1.1 0
[FW2-policy-interzone-trust-untrust-outbound-1]policy destination 1.1.1.1 0
[FW2-policy-interzone-trust-untrust-outbound-1]policy service service-set http i
cmp
[FW2-policy-interzone-trust-untrust-outbound-1]action permit
[FW2-policy-interzone-trust-untrust-outbound-1]quit
[FW2-policy-interzone-trust-untrust-outbound]quit
注:
安全区域方向从区域trust 到untrust ,源地址仅为10.1.1.1,目的仅为1.1.1.1,服务集则有http icmp分别代表了使用的协议和目的端口,动作为permit——允许。
与包过滤不同,不用再配置Web服务器响应Client1的数据报文方向的策略。
只能Client1 ping和主动访问 Web,Web不能 ping通和主动访问 Client1。
对于多通道协议如FTP,以及QQ之类的协议,仅像上面那样配置还不行,还需要开启ASPF功能,以后有机会专门进行实验。
六、将防火墙的缺省安全策略修改为禁止
[FW2]firewall packet-filter default deny all
七、验证配置
(一) 用Client1访问Web服务器
图7
结果如图7,访问成功。
(二) 用Client1 、 Web服务器相互ping
图8
Client1 ping Web服务器,结果如图8,可以ping通。
图8
Web ping Client1服务器,结果如图8,不能ping通。
综上,安全策略配置正确。
以上输入和描述可能有疏漏、错误,欢迎大家在下方评论区留言指正!
另以上文字如有帮助,望不吝转发!
联系客服