Iptables简介
2020-03-01
工作流
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:日志记录。
参考: