iptable学习

参考文档

朱双印个人日志

netfilter/iptables架构

位置 钩子函数/规则链 说明
数据包刚刚进入网络层的位置 PREROUTING 在这里处理目标地址转换
经过路由判断,数据包从内核流入本机用户空间的位置 INPUT 在这里处理INPUT包过滤
数据包从本机用户空间进程发出的位置,后接路由判断出口的网络接口 OUTPUT 在这里处理OUTPUT包过滤
经过路由判断,数据包不进入本机用户空间,只是进行转发的位置 FORWARD 在这里处理FORWARD包过滤
数据包将通过网络接口出去的位置 POSTROUTING 在这里处理源地址转换

为了方便管理钩子函数(黄色模块链),iptables按照钩子函数实现的功能,将其分别存储于4张表中(蓝色模块),类似于编程中指向链表的指针数组,链表存在优先级顺序

功能 涉及链
Filter 数据包的过滤 INPUT、OUTPUT、FORWARD
NAT 网络地址的转换 PREROUTING(DNAT)、POSTROUTING(SNAT)
Mangle 修改数据包的原始数据,一般用于防火墙标记 PREROUTING、INPUT、OUTPUT、FORWARD、POSTROUTING
Raw 配置免除 PREROUTING、OUTPUT

iptables命令语法

# iptables [-t table] command [chain] [rules] [-j target]

规则查询

### 查询filter表规则
# iptables -t filter -L
### 查询filter表INPUT链规则
# iptables -t filter -L INPUT
### 查询filter表INPUT链详细规则
# iptables -t filter -vL INPUT
### 查询filter表INPUT链详细规则,并显示规则编号
# iptables -t filter --line-number -vL INPUT
### 查询filter表INPUT链规则以及默认规则
# iptables -t filter -nL INPUT

### 说明
 pkts: 对应规则匹配到的报文个数
 bytes: 对应规则匹配到的报文包的大小总和
 target: 匹配到对应规则时的动作
 prot: 表示规则对应的协议
 opt: 表示规则对应的选项
 in: 表示需要进行规则匹配的数据包流入的网卡
 out: 表示需要进行规则匹配的数据包流出的网卡
 source: 表示规则对应的源地址(IP/网段)
 destination: 表示规则对应的目标地址(IP/网段)
 policy:表示当前链的默认策略
posted @ 2017-10-14 11:14  银魔术师  阅读(880)  评论(0编辑  收藏  举报