操作系统 CentOS6.4 x86_64
iptables限定只能连接指定的IP和MAC的目标是:主机连接外面的设备时,要指定IP和MAC,防止外面入侵交换机,将包转发到另外一台不同MAC的设备。
首先要理解iptables的state四种状态
NEW,ESTABLISHED,RELATED,INVALID。
NEW状态:主机连接目标主机,在目标主机上看到的第一个想要连接的包
ESTABLISHED状态:主机已与目标主机进行通信,判断标准只要目标主机回应了第一个包,就进入该状态。
RELATED状态:主机已与目标主机进行通信,目标主机发起新的链接方式
INVALID状态:无效的封包,例如数据破损的封包状态
配置方式:
1、屏蔽默认的-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
因为此语句表示所有已经建立连接的包都可以进来,那么主机连接外面的IP之后,如果因为攻击,实际连接到错误的设备上,主机是无法知道的,此时却能正常通信。
而iptables不能指定目标的MAC地址,因为目标MAC地址是由二层处理的,上层发送包,只能限定发送的目的IP
2、添加与目标设备之间的防火墙规则
-A INPUT -m state --state NEW,ESTABLISHED,RELATED -s 目标IP -m mac --mac-source 目标MAC -j ACCEPT
此种方式设置之后,主机与外部所要通信的设备,都要在防火墙里面配置,否则无法建立连接