基于LinuxARP检测与防御系统

基于LinuxARP检测与防御系统

摘 要:ARP协议,即地址解析协议,由于协议存在的漏洞导致ARP欺骗几乎无法避免。为探讨如何解决这一问题,通过理论研究和实证,论文从主动和被动两个模块提出了ARP检测与防御的方法。主要思路是利用基于Linux的开源路由器系统OpenWRT定制路由器,对网络流量进行监测,一旦主机网络流量达到一定阈值时,通过对其进行检查来判断源主机是否遭受ARP欺骗,以维护局域网的安全运行。

关键词:ARP检测与防御;主动检测;被动检测与防御;Netfilter;OpenWRT

中图分类号:TP393 文献标识码:A

ARP detection and defense system based on Linux

Abstract: ARP, the Address resolution protocol, owing to the loopholes of the protocol, leads to ARP spoofing almost impossible to avoid. In order to explore how to solve this problem, through theoretical research and empirical analysis, this paper puts forward ARP detection and defense methods from two modules of active and passive. The main idea is to use the open source router system customized OpenWRT router based on Linux, monitoring the network traffic.Once the host network traffic reaches a certain threshold,,we will examine and determine whether the host is deceived, to maintain the safe operation of LAN.

Key words: ARP detection and defense; active detection; passive detection and defense; netfilter; openWRT

1 引言

在局域网中,每台计算机都拥有两个地址,即IP地址和MAC地址。实际应用时,若想根据一台机器(主机或路由器)的IP地址找出该台机器相应的硬件地址(MAC地址),则需要使用地址解析协议ARP。对于每台装有TCP/IP协议的计算机,均存在一个ARP缓存表,表里存放着对应的IP地址和MAC地址。同时,计算机中的ARP缓存表是动态变化的,会根据所收到的ARP应答不断地进行更新,以保存最近的IP地址和MAC地址。然而,对于大多数操作系统,它不会去判断自己是否发送了ARP请求,而会根据所有接收到的ARP应答对ARP缓存进行更新,这便对计算机造成了潜在的安全威胁。攻击者利用这一漏洞,并伪造IP和MAC进行ARP欺骗,对攻击目标(受害方)实施恶意攻击,截获通信过程传输的信息。因此,为了更好地保障网络的安全,需要在攻击者对源主机成功实施ARP欺骗之前,检测到ARP欺骗并采取防御措施。

2 ARP欺骗

2.1 ARP欺骗原理

数据包在以太网中传输,寻址依据是计算机的物理地址(MAC地址)。ARP协议就是通过目的主机的IP地址查询其MAC地址,动态生成ARP缓存表,从而使通信顺利进行。因此,若想要得到目的主机的MAC地址,首先,需要知道其IP地址。而ARP协议是一种无状态协议,源主机收到ARP应答包之后,不会主动验证它的真实性,而是直接将其中的MAC地址更新到ARP缓存表中。因此,攻击者可以通过发送大量的ARP欺骗报文来淹没正常的ARP报文,使得源主机在接收ARP应答包后,将欺骗报文中的MAC地址更新到源主机ARP缓存表中,以达到后续实现ARP欺骗的目的。

2.2 ARP欺骗实现

假设主机C已经知道主机B的IP地址,则主机C可通过伪造成主机B的IP对主机A发起ARP欺骗。假设当前情况下,主机A的ARP缓存记录中没有主机B的记录,则主机A将在局域网中广播包含主机B IP的ARP请求,此时事先将自己的IP伪造成主机B的IP的主机C也能接收到ARP请求包,并对主机A做出应答,主机A在接收到?碜杂谥骰?C的ARP响应报文时,不会对该报文的正确性进行核实,而会直接将ARP应答包里的MAC地址更新到自己的ARP缓存表中。此后

linux 系统arp检测工具,基于LinuxARP检测与防御系统.doc相关推荐

  1. 光纤检测标准是什么?如何使用光纤检测工具进行光纤检测?

    为满足高速率的网络需求现今的数据中心与接入网都大量铺设部署光纤线缆,随之而来的便是各种光纤故障,光纤产生故障后会出现卡顿.丢包等情况,甚至断网,且光纤作为损耗品日常的检测与维护也必不可少.那么你知道光 ...

  2. java网上报名系统源码_基于jsp的网上报名系统-JavaEE实现网上报名系统 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的网上报名系统, 该项目可用各类java课程设计大作业中, 网上报名系统的系统架构分为前后台两部分, 最终实现在线上 ...

  3. 网上选课系统java工程_基于jsp的网上选课系统-JavaEE实现网上选课系统 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的网上选课系统, 该项目可用各类java课程设计大作业中, 网上选课系统的系统架构分为前后台两部分, 最终实现在线上 ...

  4. linux硬盘检测工具,CrazyDiskInfo 硬盘检测工具 Linux版 | 厘米天空

    之前本站介绍过CrystalDiskInfo这款windows下的硬盘检测工具,今天来看看Linux下的版本CrazyDiskInfo.CrazyDiskInfo是一款用于Unix类系统的交互式TUI ...

  5. 路由器被黑linux检测工具,路由器漏洞检测工具有哪些

    如果路由器存在漏洞势必会危害自己的个人信息,那么我们该如何检测路由器漏洞呢?路由器漏洞检测工具有哪些?下面请大家跟随小编的脚步来佰佰安全网寻找答案吧. 路由器漏洞检测工具有哪些?小编总结如下: 1.J ...

  6. 好用的系统检测工具与硬盘检测工具

    CrystalDiskInfo.8.2.4: 硬盘查看器 Speccy系统信息查看: 硬盘检测工具(HD Tune Pro)5.75汉化专业版: 上面有收集:https://download.csdn ...

  7. android漏洞检测工具,Android漏洞检测——模糊测试

    前言 Android在目前的市场上占有率很高,用户数量庞大,而在该平台下的应用程序开发成本低,开发难度低,发布容易,缺少监管和审查,导致大量低质量App流入市场,这些App由于开发者缺乏安全编程技能或 ...

  8. windows11配置检测工具-win11配置检测工具

    由于许多人都想尝试win 11,为此微软公司就推出了windows11配置检测工具,又名电脑健康状况检查,这是一款能够快速检测计算机硬件配置的系统检测软件,同时只要安装了该软件即可轻松的帮助用户获取到 ...

  9. Linux下的parted工具的使用 GPT分区安装系统

    安装系统是安装前时候ctrl+atl+F2 fdisk -l parted select /dev/sdb mklabel msdos # 将GPT磁盘格式化为MBR磁盘 对大硬盘进行分区 xfs 和 ...

最新文章

  1. 使用next_permutation()的坑,你中招了么?
  2. java双层for循环
  3. 如何在虚拟机上安装wsus服务器,如何在Hyper-V虚拟机上安装WSUS服务器技巧
  4. 从 0 到 1,看我玩弄千万日志于股掌
  5. Loadrunner11录制过程中报错:由于另一个程序正在运行中,此操作无法完成
  6. 树梅派输入法黑块问题
  7. 1 1 2 2 3 ...java_java 接收一个键盘输入的整数,计算1-1/2!+1/3!-1/4!.....1/n!
  8. mac 生成公私钥key
  9. 动作捕捉用于蛇运动分析及蛇形机器人开发
  10. 星际争霸 虚空之遗 人族5BB 操作流程
  11. 鸿蒙系统推送表,【前沿】华为P40首发鸿蒙系统?| 附EMUI 10正式版推送时间表
  12. 小米商城网页制作大全之搜索引擎(input,Font Awesome)
  13. cocos2d-x Tile Map 教程(一)
  14. PT生存法则(不断补充中)
  15. HCIE-2204-BGP
  16. relative和absolute的使用(详细+案例)
  17. 【咸鱼】有关origin下载速度过慢解决措施
  18. 使用WPF开发文件加密解密软件
  19. 「我只是认真」聊聊工匠情怀
  20. 荣之学浅谈跨境电商选品!

热门文章

  1. mysql group by与order by的研究--分类中最新的内容
  2. Windows2003下面的批量创建随机用户程序(.NET多线程)
  3. mini2440的时钟
  4. UML建模之部署图(Deployment Diagram)
  5. Spring.NET学习笔记——前言
  6. aliyun 阿里云Maven仓库地址 不管是自建私服还是maven构建 必备 结束了几kb的历史
  7. Left join后用and和where的区别
  8. 【Redis学习】Redis数据类型及存储结构
  9. [ZOJ 4024] Peak
  10. 自然语言交流系统 phxnet团队 创新实训 个人博客 (五)