MAC本遭遇ARP攻击的处理办法
windows环境下,如果遭遇ARP攻击,解决方法很简单:“360安全卫士”或"QQ软件管理"的实时防护里,都有ARP防护功能(默认是关闭的),只要启用就行了。 但是Mac本上,就没这么方便了,先大概说下ARP攻击的原理: 我们在局域网中访问外网时,总是要经过网关才能出去,IP设置里网关设置的是一个具体的ip4地址(比如192.168.1.1),但是IP地址每台机器通常是可以随便设置的(只要不跟局域网中的其它机器冲突),这是一个逻辑上的虚拟地址,只有网络设备(比如网卡)本身的静态MAC地址,这个才是物理真实地址,所有对IP的访问,最终必须定位到MAC物理地址,才能直接跟物理设备通讯。OSI 7层网络模型里,IP处于第3层,MAC地址处于第2层,这二层并不能直接打交道,所以才需要ARP (Address Resolution Protocol) 地址解析协议来充当翻译。 ARP攻击时,就是通过伪装网关的MAC地址来达到欺骗的目的,更通俗的点,当你的机器访问网关(比如192.168.1.1)时,正常情况下,应该定位到网关路由器的真实物理地址(比如A),但是被攻击后,会被误导到其它假MAC地址(B),相当于你根本没通过网关正常访问,上不了网也就不奇怪了。 明白原理后,解决问题的思路就有了: 1、先找出网关的真实物理地址(即路由器的mac地址) 在mac本上安装虚拟机,然后在虚拟机里安装windows(开启ARP防护功能),这样环境就回到熟悉的windows了(或者找一台windows机器也行-前提是这台机器上安装有ARP防火墙,能正常上网),在windows的命运行中,输入 arp -a C:Usersjimmy.yang>arp -a 接口: 192.168.1.120 --- 0xb Internet 地址 物理地址 类型 192.168.1.1 14-e6-e4-9b-38-aa 动态 192.168.1.255 ff-ff-ff-ff-ff-ff 静态 224.0.0.2 01-00-5e-00-00-02 静态 224.0.0.252 01-00-5e-00-00-fc 静态 239.255.255.250 01-00-5e-7f-ff-fa 静态 255.255.255.255 ff-ff-ff-ff-ff-ff 静态 从返回的结果中,就能知道192.168.1.1网关的物理地址是 14-e6-e4-9b-38-aa 2、回到mac环境中,将网关地址与物理地址绑定 在终端窗口中,输入:sudo arp -s 192.168.1.1 14:e6:e4:9b:38:aa pub 注:上面的物理地址,各节之间是用":"分隔的,不是"-" 一般情况下,这样就可以上网了,如果还不行,建议不要用DHCP动态获取IP,改成手动指定IP地址
- 分享WordPress显示评论者IP的归属地及运营商信息的2种方案
- 解决dos2unix/unix2dos报错,并在家目录下生成u2dtmp*文件问题
- 【前沿】TensorFlow Pytorch Keras代码实现深度学习大神Hinton NIPS2017 Capsule论文
- Nginx通过二级目录(路径)映射不同的反向代理,规避IP+端口访问
- MySQL中批量初始化数据的对比测试(r12笔记第71天)
- Golang语言--包的概念、导入与可见性
- MySQL中的change,modify和自增列的关系(r12笔记第70天)
- Golang 值得注意的地方
- MySQL数值类型在binlog中需要注意的细节(r12笔记第69天)
- WordPress评论滑动/拉链解锁myQaptcha修改为自动提交的方法
- MySQL root用户登录的几个小问题(r12笔记第67天)
- Java实现生产者消费者的两种方式(r12笔记第66天)
- Golang语言的函数调用信息
- mysqldump的一点使用总结(r12笔记第81天)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- SSM第五讲 动态SQL与高级查询
- SSM第六讲 MyBatis的高级特性
- SSM第七讲 SpringMVC概述和基础知识详解
- SSM第八讲 SpringMVC高级特性
- SSM第九讲 Spring+SpringMVC+MyBatis框架整合
- 大型项目技术栈第一讲 Vue.js的使用
- springBoot 入门(五)—— 使用 纯注解方式 的springboot+ mybatis+junit4 整合
- 常见加载类错误分析
- 常用的ClassLoader分析
- 如何实现自己的ClassLoader
- Hacking with iOS: SwiftUI Edition - 潜力客户名单项目(三)
- 大型项目技术栈第四讲 SQL语句构建器
- redis 入门(一)——Linux环境安装测试以及基本命令演示
- 大型项目技术栈第五讲 富文本编辑器
- weblogic 11g StuckThreadMaxTime 问题解决 以及 线程池、数据库连接池参数调优