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相关

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