arp防火墙 防火墙软件下载
网络隔离是最常用也是最基本的安全防护手段,通过把服务器相互之间隔离起来,避免当一台服务器被黑客攻破后影响到其它服务器。一般网络隔离主要分物理层隔离、链路层隔离以及网络层隔离:
物理层隔离
在物理层面上进行隔离,对不同的业务使用完全不同的一套网络,包括使用不同的网络设备以及网络出口,在物理上完全切断网络之间的通信。对安全性要求比较高的业务系统,或有保密需求的政府机构都会采用这种隔离方式。
链路层隔离
我们知道,在ISO模型的数据链路层,数据帧根据MAC地址进行数据转发,两个IP之间要通信首先需要通过ARP学习到对方的MAC地址,然后再以该MAC地址为目的地址构建帧并由交换机转发到相应端口。所以,我们可以通过限制ARP查询的方式来阻止IP之间的通信,从而达到网络隔离的目的。一般云平台上的网络隔离大多使用这种方式,可以在交换机上使用MAC访问控制列表实现,或使用ARP防火墙实现。
网络层隔离
网络层隔离即网段隔离,通常的做法是使用VLAN隔离不同的网段,在不同的网段之间使用IP访问控制列表基于IP地址对流量进行限制。
如何使用arptables进行网络隔离
arptables是Linux内核自带的ARP防火墙,是iptables的亲兄弟,它通过过滤ARP数据包的方式进行流量控制。大家对arptables的了解应该没有iptables那么多,下面我将通过一个实例演示如何使用arptables实现链路层的网络隔离。
在下面的拓扑中,192.168.30.0/24网段内有192.168.30.11/192.168.30.21(Kali)/192.168.30.23(Centos7)三台服务器,我们的目的是只允许192.168.30.21访问网关及192.168.30.11,即禁止192.168.30.23跟192.168.30.21进行通信。
第一步,限制INPUT方向的ARP数据包:
以上命令在192.168.30.21上在INPUT方向限制除192.168.30.254(网关)及192.168.30.11外的所有ARP数据包。即使23使用arp -s命令手动绑定21的MAC地址,它也无法访问21,因为由于arptables的限制121无法学习到23的MAC地址,所以也就无法给23发数据包:
虽然到这里已经切断了21与23的网络,但是21还无法对23完全隐藏,因为21还会对外发送ARP广播包:
第二步,限制OUTPUT方向的数据包
了达到更好的隔离效果,我们需要限制21对外除到网关254及11外的所有ARP流量:
至此,在192.168.30.0/24网段中,已经把主机21同除网关254以及11外的其它主机完全隔离开来,其它主机在本网段内完全察觉不到21的存在。
总结一下,这篇文章的重点不在于介绍arptables的用法,而是向大家介绍链路层隔离的思路,相对于成本较高的物理层隔离以及配置更复杂的网络层隔离,链路层隔离的综合效果要更好。采用这种隔离方式,将对网络安全防护水平有很大的提升。
觉得有用请点赞并加关注,我将持续给大家分享信息安全方面的知识,谢谢!