LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1635|回复: 3

用BASH写了个利用ARP欺骗以实现流量控制的小程序

[复制链接]
发表于 2009-10-30 23:07:03 | 显示全部楼层 |阅读模式
自已用起来还挺顺手,所以整理了一下放出来跟大家一起分享,希望能给大家带来方便。
虽然没有什么高深的技术,但却提供了非常实用的功能。
很多事物的诞生都有着双面性,这个程序也不例外。

我称呼她为:arptc
arptc-0.1.tar.gz UTF-8编码
arptc-0.1-gbk.tar.gz  GBK编码
BLOG上的连接
屏幕截图

依赖于:
nmap: 地球上最强大的端口扫描工具。
iproute2:有关TCP/IP网络和流量控制的一系列工具。
arpoison:通常更多地用来防御ARP攻击,但也可以实施ARP攻击。


  1. 用法:arptc [参数] 动作

  2.    参数               说明
  3.    -i 接口            网卡接口(默认:eth0)
  4.    -d 速率           受控主机的下行总带宽(单位:kbps,默认:100)
  5.    -u 速率           受控主机的上行总带宽(单位:kbps,默认:50)
  6.    -f 文件名         从文件读入IP地址(文件格式:每行一个IP)
  7.    -h IP[,IP]        指定目标IP(","号分隔,默认:自己的IP所在的C类网段)
  8.    -e IP[,IP]        排除的IP地址(","号分隔)
  9.    -s 时间            重新扫描存活计算机的时间间隔(单位:秒,默认:120)
  10.    -p 时间            重新配置散列算法的时间间隔(单位:秒,默认:10)
  11.    -g                  只执行控制下行相关操作(只欺骗网关)
  12.    -a                  只执行ARP欺骗相关操作,不修改TC限速规则
  13.    -v                  在受控主机列表显示所有受控主机(默认10个)
  14.    -D                  作为守护进程运行
  15.    -c                  不检查电脑是否已经受到ARP攻击,强制运行。
  16.    -V                  显示版本号

  17.    动作            说明
  18.    start            开始运行
  19.    status        查看程序是否处于运行状态
  20.    stop            停止ARP欺骗并清除TC限速规则("-a" 选项不清除TC限速规则)
  21.    help            此帮助

  22. 示例:
  23. arptc -f ../ipfile -D -u 100 -d 200 -s 300 start
  24. arptc -h 192.168.0.0/24 -e 192.168.0.2,192.168.0.3 start
复制代码


Gentoo 下的安装:

  1.     emerge -av nmap iproute2 arpoison
  2.     wget [url]http://www.rcjun.cn/arptc/arptc-0.1.tar.gz[/url]
  3.     tar xvzf arptc-0.1.tar.gz
  4.     chown root:root arptc/arptc; chmod 755 arptc/arptc
  5.     cp arptc/arptc /usr/local/sbin/
复制代码


Gentoo内核默认不支持TC,需要重新编译内核。
以gentoo-souces-2.6.30为例:

  1.     [ * ] Networking support  --->
  2.        Networking options  --->
  3.            [ * ] QoS and/or fair queueing  --->
  4.                <M>   Hierarchical Token Bucket (HTB)
  5.                <M>   Stochastic Fairness Queueing (SFQ)
  6.                <M>   Universal 32bit comparisons w/ hashing (U32)
复制代码


Debian/Ubuntu 下的安装:
安装NMAP、编译环境、libnet(arpoison需要)

  1.     aptitude install nmap build-essential libnet1
复制代码

libnet1也可以选择自己编译:

  1.     wget "http://downloads.sourceforge.net/project/libnet-dev/libnet-dev/libnet-1.1.4/libnet-1.1.4.tar.gz?use_mirror=nchc"
  2.     tar xvzf libnet-1.1.4.tar.gz
  3.     cd libnet-1.1.4.tar.gz
  4.     ./configure
  5.     make
  6.     make install
  7.     ldconfig
复制代码


安装arpoison:

  1.     wget [url]http://arpoison.sourceforge.net/arpoison-0.6.tar.gz[/url]
  2.     tar xvzf arpoison-0.6.tar.gz
  3.     cd arpoison
  4.     make
  5.     cp arpoison /usr/local/sbin/
复制代码


安装arptc

  1.     wget [url]http://www.rcjun.cn/arptc/arptc-0.1.tar.gz[/url]
  2.     tar xvzf arptc-0.1.tar.gz
  3.     chown root:root arptc/arptc; chmod 755 arptc/arptc
  4.     cp arptc/arptc /usr/local/sbin/
复制代码


可能会遇到的问题:
如何查看受控主机的网络流量?
目前没有这个功能,不过有个不错的选择:iftop
Gentoo: emerge -av iftop
Debian/Ubuntu: aptitude install iftop

怎么控制自己的流量?
因为Linux流量控制控发不控收,所以不能直接控制自己的下行带宽。
我的解决方法是在虚拟机下运行。
如果你有更好的方法,请和我分享:)
发表于 2009-11-3 20:11:35 | 显示全部楼层
感谢楼主分享,之前只写了个简单的防范 ARP 的脚本,现在拿楼主的脚本去试验试验,呵呵
回复 支持 反对

使用道具 举报

发表于 2009-11-22 16:33:11 | 显示全部楼层
在虚拟机试用了下,挺不错的。
开始的时候只装了楼主的ARPTC ..
我这里网速一直很慢,启动之后效果一下很明显。速度快起来了,不过过了很久发现网速还是那么慢,估计是网络中其他人也在启用ARP之类的软件。。。

呵呵,后来无意中自己装了个squid,配置iptables 启用了透明**。在squid的访问日志中,居然看到了网内其他人访问网站的记录。 哈哈。很有意思。。
回复 支持 反对

使用道具 举报

发表于 2009-12-11 13:00:27 | 显示全部楼层
挺不错的.标志一下.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表