linux路由器下如何限制某几个IP连接互联网而同时防止IP盗用
在有些系统中有这样的需求希望内部网中的某几个IP地址连接互联网而又希望这些IP地址不被非法用户盗用可以通过下面的解决办法实现
方法一
首先使用ipchains或者iptables来设定只允许合法的IP地址连出
对于合法IP建立IP/Mac捆绑要讨论这个问题我们首先需要了解ARP协议的工作原理arp协议是地址解析协议(AddressResolutionProtocol)的缩写其作用及工作原理如下
在底层的网络通信中两个节点想要相互通信必须先要知道源与目标的MAC地址为了让系统能快速地找到一个远程节点的MAC地址每一个本地的内核都保存有一个即时的查询表(称为ARP缓存)ARP中有影射远程主机的IP地址到其对应的MAC地址的一个列表地址解析协议(ARP)缓存是一个常驻内存的数据结构其中的内容是由本地系统的内核来管理和维护的默认的情况下ARP缓存中保留有最近十分钟本地系统与之通信的节点的IP地址(和对应的MAC地址)
当一个远程主机的MAC地址存在于本地主机的ARP缓存中转换远程节点的IP地址为MAC地址不会遇到问题然而在许多情况下远程主机的MAC地址并不存在于本地的ARP缓存中系统会怎么处理呢?在知道一个远程主机的IP地址但是MAC地址不在本地的ARP缓存中的时候以下的过程用来获取远程节点的MAC地址本地主机发送一个广播包给网络中的所有的节点询问是否有对应的IP地址一个节点(只有一个)会回答这个ARP广播信息在回应的信息包里就会包含有这个远程主机的MAC地址在收到这个返回包后本地节点就会在本地ARP缓存中记录远程节点的MAC地址
如果我们将IP/MAC对应关系建立为固定的也就是对那些合法IP地址建立静态的MAC对应关系那么即使非法用户盗用了IP地址linux路由器在回应这些IP发出的连接请求时则不会通过arp协议询问其mac地址而是使用Linux建立的静态MAC地址发出应答数据这样盗用IP者则不会得到应答数据从而不能使用网络服务
建立静态IP/MAC捆绑的方法是建立/etc/ethers文件其中包含正确的IP/MAC对应关系格式如下
::E:B::
然后再/etc/rcd/rclocal最后添加
arpf
即可
方法二
内核的iptables可以对IP和Mac同时进行限定使用该功能对合法IP的规则同时限定IP地址和Mac地址即可