📄 857.html
字号:
</font></div>
</td>
</tr>
<tr>
<td noWrap>
<div align="center">
<input maxlength=100 size=30 name=keyword2>
</div>
</td>
</tr></tbody>
</table>
</form>
</TD>
<TD rowSpan=2><IMG src="images/header_r1_c7.gif" tppabs="http://www.linuxhero.com/docs/images/header_r1_c7.gif" width=26 border=0 name=header_r1_c7></TD>
<TD><IMG height=83 src="images/spacer.gif" tppabs="http://www.linuxhero.com/docs/images/spacer.gif" width=1 border=0></TD></TR>
<TR>
<TD background="images/bgline.gif" tppabs="http://www.linuxhero.com/docs/images/bgline.gif"><IMG height=22
src="images/header_r2_c1.gif" tppabs="http://www.linuxhero.com/docs/images/header_r2_c1.gif" width=296 border=0
name=header_r2_c1></TD>
<TD background="images/bgline.gif" tppabs="http://www.linuxhero.com/docs/images/bgline.gif" colSpan=5>
<DIV align=right><FONT class=normalfont>当前位置:
<A href="index.html" tppabs="http://www.linuxhero.com/docs/index.html">本站首页</A>
<font color="#FF6699">>></font>
<A href="type11.html" tppabs="http://www.linuxhero.com/docs/type11.html">网络配置</A> | <A href="copyright.html" tppabs="http://www.linuxhero.com/docs/copyright.html">版权说明</A></font></DIV>
</TD>
<TD><IMG height=22 src="images/spacer.gif" tppabs="http://www.linuxhero.com/docs/images/spacer.gif" width=1
border=0></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=10 cellPadding=0 width="100%" bgColor=#ffffff
border=0>
<TR>
<TD>
<TABLE cellSpacing=0 cellPadding=3 width="100%" border=0>
<TR>
<TD vAlign=top align=middle width="60%">
<TABLE cellSpacing=0 cellPadding=0 width="100%"
background="images/back.gif" tppabs="http://www.linuxhero.com/docs/images/back.gif" border=0>
<TBODY>
<TR>
<TD vAlign=top width="80%">
<DIV align=center>
<FORM action="search.html" tppabs="http://www.linuxhero.com/docs/search.html" method=get>
</FORM>
<TABLE cellSpacing=0 cellPadding=0 width="95%"
border=0><TBODY>
<TR>
<TD background="images/bgi.gif" tppabs="http://www.linuxhero.com/docs/images/bgi.gif"
height=30></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=3 width="95%"
align=center border=0>
<TBODY>
<TR>
<TD>
<TABLE cellSpacing=0 cellPadding=3 width="100%"
border=0>
<TBODY>
<TR>
<TD vAlign=top>
<p><FONT class=normalfont><B><font color=blue>有关MAC/IP原理浅析及解决方法</font></B></FONT><BR><FONT class=smallfont color=#ff9900>2004-04-23 15:18 pm</FONT><BR><FONT class=normalfont>作者:作者<br>来自:Linux知识宝库<br>联系方式:无名<br><br>回了两篇关于MAC/IP的帖子,发现有研究的价值,发个帖子,滥竽充数一下<br>
<br>
首先,学习一下理论<br>
<br>
(大家不要着急,慢慢来,不过不要睡着了)<br>
<br>
IP/MAC捆绑原理及ARP<br>
<br>
链路层用mac,网络层用ip:<br>
<br>
网络中传输的是IP地址--三层32位地址,终端需要的是MAC地址--两层48位地,<br>
<br>
ARP(RARP)都属于3层协议<br>
<br>
<br>
网络通信中,两个节点想要通信,必须先知道源与目标的MAC地址。为了让系<br>
<br>
统能快速地找到远程节点的MAC,每一个本地的内核都保存有一个即时的查询表<br>
<br>
(ARP缓存)。<br>
<br>
ARP中有映射远程主机的IP--->对应的MAC地址的一个列表。地址解析协议<br>
<br>
(ARP)缓存是一个TSR的数据结构,由本地的内核来管理的。Default ARP缓<br>
<br>
存中留有last 10 mins本地系统与之通信的节点的IP地址(和对应的MAC地址)。<br>
<br>
当一个远程MAC存在于本地ARP 缓存中,转换远程节点的IP地址为MAC地址<br>
<br>
no problem。然而,系统在知道一个远程IP,但MAC不在本地ARP缓存中时,是这<br>
<br>
样来获取远程MAC的:本地主机发送一个Broadcast package,询问各节点是否有对<br>
<br>
应的IP。回应是唯一的。在回应包中就包含此MAC。在收到返回包后,本地节点就<br>
<br>
会在本地ARP缓存中记录远程MAC。<br>
<br>
如果将IP/MAC对应关系中那些合法IP地址建立静态的MAC/IP绑定,那么即使<br>
<br>
非法用户盗用IP地址,linux路由器在回应这些IP发出的连接请求时则不会通过arp协<br>
<br>
议询问其MAC,而是使用Linux建立的静态MAC, 发出应答数据,这样.......<br>
<br>
<br>
两种方法<br>
1.<br>
建立/etc/ether,指定正确的IP/MAC对应关系:<br>
<br>
168.192.12.6 XX:AS:YOUR:MAC:WISH:XX<br>
<br>
在/etc/rc.d/rc.local中加:<br>
<br>
arp -f<br>
<br>
<br>
2.<br>
<br>
# arp -i eth0 -s 168.192.12.6 XX:AS:YOUR:MAC:WISH:XX<br>
<br>
_____________________________________________________<br>
<br>
<br>
理智告诉我们:缺憾同优点孪生<br>
<br>
IP/MAC捆绑缺陷<br>
<br>
这种方法本意是用来管理内网的IP,但无心插柳........不过,<br>
<br>
缺陷随之表现:即router对发出的包不检查,即使网卡MAC 是未登记的,也可以向外发数据包,而且<br>
<br>
可以用伪造的IP,(有的路由器检查源IP范围), 这时候伪造的IP也必须属于子网内的IP.<br>
<br>
还有的server是这样做的:把没有登记的IP对应的MAC一致设为XXXXXXXXXX,这种方法很危险,只要<br>
<br>
把网卡的MAC改成XXXXXXXXXX, 就能以任何没有登记的IP出去.......<br>
<br>
采用IP/MAC来防止IP盗用不是根本办法:因为不仅所有的网卡MAC都可以修改,而且网卡发<br>
<br>
出包的源MAC地址并不是网卡本身write的,而由驱动或APP提供的:他们先从网卡上得到了MAC地址,<br>
<br>
每次发送包的时候用此MAC地址,所以等于没有!配置程序修改MAC仅仅靠修改其driver就可以<br>
<br>
(Win下利用NDIS就可以).<br>
<br>
注:但基于Link的TCP来说,伪造IP就不是"太"容易,需要TCP连接序号的预测的知识--大有学问呀.<br>
<br>
如有兴趣,到安全网站上去看看,尤其是国外的<br>
<br>
_____________________________________________________<br>
<br>
<br>
软件修改MAC的原理<br>
<br>
<br>
MAC写在ROM中,在网卡组帧时需要将MAC写入帧中,其并不是直接从ROM中写入帧的,<br>
<br>
而是从网卡的ARegs中读出,然后由硬件写入帧中,ARegs的内容是Driver在网卡<br>
<br>
初始化时从ROM中读入的.<br>
<br>
So,我们可以截取NC Driver中相关代码,进而修改MAC.<br>
<br>
在linux下简单实现<br>
<br>
#/sbin/ifconfig eth0 down<br>
<br>
#/sbin/ifconfig eth0 hw ether 00:AS:YOU:WISH:00<br>
<br>
#/sbin/ifconfig eht0 up<br>
<br>
_____________________________________________________<br>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -