Iptables简介

Iptables简介

2020-03-01
tips
iptables

工作流

alt

Iptables由表、链和规则组成,从任何网络端口进来的每一个IP数据包都要从上到下的穿过这张图,在大多数使用情况下都不会用到raw和mangle表

表包含链,链包含规则。

表和链

filter:默认的表,如果不指明表则使用此表。其通常用于过滤数据包。内建链包括:

  • INPUT,输入链。
  • OUTPUT,输出链。
  • FORWARD,转发链。

nat:用于地址转换操作。内建链包括:

  • PREROUTING,路由前链,通常用于目的地址转换(DNAT)。
  • POSTROUTING,路由后链,通常用于源地址转换(SNAT)。
  • OUTPUT,输出链,类似PREROUTING,但是处理本机发出的数据包。

mangle:用于处理数据包。其和nat表的主要区别在于,nat表侧重连接而mangle表侧重每一个数据包

raw:用于处理异常

规则

规则由一个目标(数据包包匹配所有条件后的动作)和很多匹配(导致该规则可以应用的数据包所满足的条件)指定。

iptables (选项) (参数)

iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> --sport 源端口 <-d 目标IP/目标子网> --dport 目标端口 -j 动作

选项:

-A 在指定链的末尾添加(append)一条新的规则
-D  删除(delete)指定链中的某一条规则,可以按规则序号和内容删除
-I  在指定链中插入(insert)一条新的规则,默认在第一行添加
-R  修改、替换(replace)指定链中的某一条规则,可以按规则序号和内容替换
-L  列出(list)指定链中所有的规则进行查看
-E  重命名用户定义的链,不改变链本身
-F  清空(flush)
-N  新建(new-chain)一条用户自己定义的规则链
-X  删除指定表中用户自定义的规则链(delete-chain)
-P  设置指定链的默认策略(policy)

动作:

ACCEPT:接收数据包。
DROP:丢弃数据包。
REDIRECT:重定向、映射、透明代理。
SNAT:源地址转换。
DNAT:目标地址转换。
MASQUERADE:IP伪装(NAT),用于ADSL。
LOG:日志记录。

参考: