android iptables小结
来源:互联网 发布:node schedule 文档 编辑:程序博客网 时间:2024/06/05 18:21
先在此谢谢一朋友,他的博客:http://fonter.iteye.com/blog/search?query=iptables
关于iptables的常用命令,请参考我朋友的博客。
android上使用iptables一般做代理和app防火墙功能。
有几个开源项目,推荐大家去googlecode上去找找:
droidwall:app网络防火墙;
proxydroid:代理app,支持多种网络协议;
gaeproxy:代理app,自己有python的服务端,貌似可以翻墙哦亲。
以上软件都需要root权限。
app网络防火墙实现思路:
通过iptables命令设置filter表,针对OUTPUT链,来源是wifi或是2g/3g的做REJECT或是DROP操作。
REJECT 拦阻该封包,并传送封包通知对方。
DROP 丢弃封包不予处理,进行完此处理动作后,将不再比对其它规则,直接中断过滤程序。
REJECT和DROP其效果都可以使app无法联网,所以两个任你选择使用。
如何区分是wifi或是2G/3G?
我们需要使用-o参数来区分是封包来源是wifi还是gprs,
参数 -o, --out-interface
范例 iptables -A FORWARD -o eth0
说明 用来比对封包要从哪片网卡送出,设定方式同上。
其中wifi有三种(参考droidwall Api.java):tiwlan+, wlan+, eth+
gprs有六种:rmnet+,pdp+,ppp+,uwbr+,wimax+,vsnet+"
下面还剩下一个问题,如何区分封包来自哪个app?
由于iptables处于7层协议下三层,应该是无法区分应用的。
这里要使用扩展模式-m 操作owner表
范例:iptables -A OUTPUT -m owner --uid-owner 500
说明:用来比对来自本机的封包,是否为某特定使用者所产生的,这样可以避免服务器使用 root 或其它身分将敏感数据传送出去,可以降低系统被骇的损失。可惜这个功能无法比对出来自其它主机的封包。
下面给出一个完整的实例:
iptables -t filter -A OUTPUT -o wlan+ -m owner --uid-owner 10042 -j DROP
说明:操作filter(-t filter可以省略,默认操作filter表)的OUTPUT链,封包来源是wlan+,并且来源是uid为10042的,丢弃数据包。
执行过程如果出现:No chain/target/match by that name, 可能就是你的rom不支持该操作了。
iptables需1.4+版本
内核支持iptables操作,所以并不是所有root的rom都支持的。
今天先说app防火墙,改天再讲代理(提前说明,代理操作nat表)。
代码可参考droidwall,下载地址:http://download.csdn.net/detail/luck_apple/4549925
转自:http://blog.csdn.net/luck_apple/article/details/7929751
- android iptables小结
- android iptables小结
- android iptables小结
- android iptables小结
- iptables小结
- iptables 小结
- Iptables小结
- iptables小结
- netfilter/iptables 小结
- iptables命令小结
- Linux iptables小结
- Android iptables使用
- Android iptables的应用
- Android中iptables应用
- Android网络安全:Netfilter与iptables
- android 小结
- android小结
- Android小结
- sqlite3操作
- gsoap使用方法及心得
- java书中小例子1
- Zstack杂乱笔记2
- oarcle10g ORA-01033: ORACLE 正在初始化或关闭 解决方法
- android iptables小结
- “2012年度IT博客大赛”获奖感言--梦想、学习、坚持、自信、淡定
- 绑定变量及其优缺点
- Open Inventor学习资源
- Eclipse下jQuery文件报错解决方案
- 2013年 谷歌欲在云计算市场战胜微软
- .net上传文件时同时将数据存入数据库
- c语言中的函数间的跳转函数setjmp和longjmp
- 单亲母亲教育小孩的方式