ACL主要用于实现流量的过滤,业务中网络的需求不止局限于能够连同。
一、过略工具
你的公司当中有研发部门,包括有财务部门,财务部门的访问是要做到控制的,防止被攻击。
这种的过滤方法为,在设备侧可以基于访问需求来实现特定的流量过滤,其中过滤把最基本的ACL策略到Bt防火墙策略,由简单到复杂有不同的工具,而我们最简单的工具称为ACL实现。
简单来讲,我不希望研发部门和财务部门互通,在现实生活中有很多过滤策略要求非常高,比如要求某些文件不能通过,某些文件达到过滤,某些文件达到检测,这些需要防火墙来实现。
而在基本策略当中,如果仅仅是希望,他们部分网段之间部分部门之间不能互访,那这个需求相对来说比较简单。
过滤工具,比如在现实生活中,管理一个班级,需要指定班规,班规就是策略,班规里会有条文去限制,同样我们的ACL的本质就是写过滤的条文。在里面写好,哪些流量可以通信,哪些不能。
二、ACL实现过滤的方式
不同部门之间不能互通,他们很明显的特征能够代表部门,最终的结果是流量过来我来执行策略,不同部门之间哪些能够代表一个部门的,在传输的IP报文当中,每一层都可以定义,网络层当中有网段,如果收到一个数据包,源地址是192.168.2.x这样2开头IP全部不行,那么研发部门的流量就不能上网了,这个就叫做访问控制。
如果VLAM10的主机原MAC为A,那么就禁止原MAC为A的。同样,如果我不希望你打开某个网站,那么就可以在传输层,假设目标端口为80进行禁止。
其实,写的就是流量特征,实现我们的策略过滤。
#define SOE_MIN 0x6000 //驱动程序处理最小值
#define BANPING 0x6001 //过滤程序和驱动程序对话时禁ping功能编号
#define BANIP 0x6002 //禁ip功能编号
#define BANPORT 0x6003 //禁port功能编号
#define NOWRULE 0x6004 //获取防火墙当前规则功能编号
#define SOE_MAX 0x6100 //驱动程序处理最大值 typedef struct ban_status{int ping_status; //是否禁ping,1禁止,0未设置 int ip_status; //是否禁ip,1禁止,0未设置 int port_status; //是否禁port,1禁止,0未设置 unsigned int ban_ip; //禁ip数值 unsigned short ban_port; //禁port数值
}ban_status;