Linux笔记-iptables规则原理和组成

x33g5p2x  于2022-03-24 转载在 Linux  
字(1.0k)|赞(0)|评价(0)|浏览(385)

Netfilter

Netfilter:是Linux操作系统内核层内部的一个数据包处理模块。

Hook point:数据包在Netfilter中的挂载点(PRE_ROUTING、INPUT、OUTPUT、FORWARD、POST_ROUTING)。

用通俗的话解释下:数据包通过网卡,走到操作系统内核后,就会进入Netfilter中这5个挂载点。

可以在这5个挂载点进行Hook,修改数据包。

Netfilter与iptables

iptables规则组成

组成部分:四张表 + 五条链(Hook point) + 规则

四张表:filter表、nat表、mangle表、raw表。

五条链:INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING。

每个链的功能都有一个表对应。

一般最关键的表为filter,nat表。

Managle表:修改数据包,改变包头中的内容(TTL,TOS,MARK)。

Filter表:访问控制、规则匹配。

Nat表:地址转发。

iptables规则组成

数据包访问控制:ACCEPT、DROP、REJECT。

数据包改写:SNAT、DNAT。

信息记录:LOG。

其中:SNAT是源地址改写,DNAT是目标地址改写。

规则:

| | table | command | chain | Parament & | target |
| iptables | -t filter<br>     nat | -A<br> -D<br> -L<br> -F<br> -P<br> -I<br> -R<br> -n | INPUT<br> FORWARD<br> OUTPUT<br> PREROUTING<br> POSTROUTING | -p tcp<br> -s<br> -d<br> --sport<br> --dport<br> --dports<br> -m tcp<br>      state<br>      multiport | -j ACCEPT<br>    DROP<br>    REJECT<br>    DNAT<br>    SNAT |

相关文章