Android iptables防火墙规则

1 原理
iptables对应的是kernel的netfilter模块,主要实现NAT功能;有4个表:filter、nat、mangle和raw。
iptables可以用来修改TCP或者UDP数据包中的IP地址。
iptables可以用来屏蔽网站,譬如只允许访问特定的网站。

PREROUTING:有raw、mangle,nat三个表;路由规则前(ip route前),外网到内网,必须包含-i参数
FORWARD:有mangle、filter二个表;转发,@ /proc/sys/net/ipv4/ip_forward,转发功能默认是关闭的,tethering必须打开转发功能;FORWARD对应到ip route功能
POSTROUTING:,有mangle、nat二个表;路由规则后(ip route后),内网到外网,必须包含-o参数

2 如何使用
编写规则的时候应该先指定表-t(没指定就是默认的filter,其它的为mangle、nat、raw),再指定链-P(Policy,包括PREROUTING、FORWARD、POSTROUTING、INPUT、OUTPUT)。

-A:append
-i:input interface
-I:insert
-j:jump table
-o:output interface
-p:protocol
-P:Policy

iptables -A INPUT -s 192.168.0.0/24 -i eth0 -j NFLOG
iptables -A OUTPUT -s 192.168.0.0/24 -o eth0 -j NFLOG
iptables -A FORWARD -s 192.168.0.0/24 -d 192.168.0.0/24 -i eth0 -o eth0 -j NFLOG

iptables -t nat -L -n -v

3 查看Android已生效的规则 - iptables-save
iptables-save -c:dump已配置的规则,格式是[packets, bytes];可以用“>”重定向到一个文件中
iptables -D xxx:-D与-A对应,表示删除一条规则

4 URLs
IPTables packet traverse map
http://www.adminsehow.com/2011/09/iptables-packet-traverse-map/

5 Abbreviations
masquerade:伪装,源ip地址欺骗,是SNAT的一种
ndc:vold native daemon connector
SNAT:Source Network Address Translation

发布了121 篇原创文章 · 获赞 47 · 访问量 31万+

猜你喜欢

转载自blog.csdn.net/zoosenpin/article/details/103934107