Android iptables相关

作者: 4528283108ee | 来源:发表于2017-05-03 18:34 被阅读153次

1 iptables的原理以及命令

首先linux集成了netfilter库,netfilter工作在tcp/ip协议栈网络层(可以看到tcp头,ip头,mac地址等信息)。然后提供五个hook点,用其他内核模块注册使用,对于iptables内核模块,就注册了这写hook函数,进行工作,iptables工具是提供的操作iptables操作内核模块的工具,前者提供机制,后者指定策略。讲策略写入内核模块,下面是五个hook点的示意图

hook

这五个点就是一个数据包进入主机后要经过的路径,一种是发给本机的包,另一种是需要forward的包,流程图如下所示

2

iptables正式在这五个点根据用户配置的规则进行数据包的处理。大概就是这个原理。

对于数据包的处理可以分为三种类型

1 nat 转发(改变目标地址或源地址)

2 mangle 修改

3 filter 过滤

所以提供了三张表用于保存这些规则,三张表的名字分别是nat,filter和mangle,当请求进入主机的时候,经过的处理流程大致如吐下

iptables表规则执行流程

三张默认的表中包含一些规则链,默认的链有INPUT OUTPUT PREROUTING POSTROUTING FORWARD,分别用于保存五个hook点所执行的操作。


 明白了大致流程后就可以进行规则编写了,就要说说iptables的基本命令

命令大致格式如下

iptables [-t table] command [match] [target/jump]

1  table

-t指定table,默认filter表

2 Commands 名令 

表示要执行的操作,如添加链,增删改规则等

-A 追加

-D 删除

-R 替换(链中根据编号)

-I 指定序号插入,默认序号是1 也就是插入到最前面,注意规则执行时是按照链中规则的顺序执行的

-L 列出

-F 清楚

-Z 计数清0 

-X 删除链(保证不被引用)

-P 默认的target(不符合规则默认的target,见后面target节)

3 match 匹配条件,满足匹配条件的包会执行后面的target,其他的走下链中下一个规则,否则返回父链

-p 协议

-s 源地址

-d 目的地址

-i 进入网卡

-o 出去网卡

-f 分片

-sport 源端口

-dport 目的端口

--tcp-flags 

--limit 限制条件 如每小时三个请求

--limit-burst

--mac-source

--uid-owner

--gid-owner

--pid-owner

--state  (INVALID,ESTABLISHED,NEW 和 RELATED)

--tos

4 Targets/Jumps  后面有不同的参数,请查表

ACCEPT 之后不会匹配这个链的其他

DROP 直接丢弃

REJECT 拒绝,不直接丢弃,返回错误给对方

DNET | SNET 转发

ULOG| NFLOG|LOG

MARK

MASQUEREAD

QUEUE

REJECT

REDIRECT 

RETURN

TOS

TTL

日志记录,iptables提供三种方式,取决于编译选项。包括LOG(打印打/proc/dmesg)

ULOG 通过netlinker将log从内核发送给用户空间,单项

NFLOG通过netlinker将log从内核发送给用户空间,双向

netlinker在内核和用户空间创建socket通信,通过多播的形式将内核log送往用户空间。

对于android中的iptables只提供了ulog和nflog的方式读取log。需要写一个程序从nflog中读取数据,参考

http://www.netfilter.org/projects/libnetfilter_log/doxygen/nfulnl__test_8c_source.html

iptables中文手册

相关文章

  • Android iptables相关

    1 iptables的原理以及命令 首先linux集成了netfilter库,netfilter工作在tcp/ip...

  • 网络控制

    Android iptables 今天小结 http://man.linuxde.net/iptables And...

  • iptables 相关

    一、开放端口 例:开放10000端口的解决步骤如下:1、修改/etc/sysconfig/iptables文件,增...

  • iptables相关

    1.常见防火墙选用 硬件防火墙 开源软件:iptables(默认规则改为INPUT DROP) 云服务器:安全组(...

  • IPTABLES相关

    服务器防DOS攻击:-A INPUT -p tcp -m connlimit --connlimit-above ...

  • CentOS7下防火墙相关

    本文章仅作为个人笔记 iptables相关:(更改完配置需运行/etc/rc.d/init.d/iptables ...

  • iptables相关以及sudo

    (一)、详述iptables五链 iptables: 包过滤型的防火墙 firewall: 防火墙,隔离工具;工作...

  • android iptables小结

    Android上使用iptables一般做代理和app防火墙功能。有几个开源项目,推荐大家去googlecode上...

  • 2017 10-19 防火墙设置2

    一.iptables 命令 (1)iptables相关规则 任何不允许的访问,应该在请求到达时给予拒绝 规则在链接...

  • Linux命令

    tar命令(压缩解压缩): 查看端口占用 iptables(防火墙相关)

网友评论

    本文标题:Android iptables相关

    本文链接:https://www.haomeiwen.com/subject/hohltxtx.html