iptables 介绍
iptables 和 ip6tables 用于在 Linux 内核中设置、管理和检查 IPv4 和 IPv6 数据包过滤规则的 表(Tables)。每个表都包含了一些内建或者是用户定义的 链(Chains)。每个链都是一个由 规则(Rules)组成的列表,用于匹配一组的数据包。每条规则都指定了如何处理已匹配的数据包,这被称为 目标(Target),例如可以将数据包跳转到同一个表中的用户定义的链中。
| 表 Tables | 内建的链 built-in Chains | 作用 |
|---|---|---|
Filter(未指定 -t 选项时的默认值) |
INPUT | for packets destined to local sockets |
| FORWARD | for packets being routed through the box | |
| OUTPUT | for locally-generated packets | |
| NAT | PREROUTING | for altering packets as soon as they come in |
| OUTPUT | for altering locally-generated packets before routing | |
| POSTROUTING | for altering packets as they are about to go out | |
| Mangle | PREROUTING (kernel 2.4.17+) | for altering incoming packets before routing |
| OUTPUT (kernel 2.4.17+) | for altering locally-generated packets before routing | |
| INPUT (kernel 2.4.18+) | for packets coming into the box itself | |
| FORWARD (kernel 2.4.18+) | for altering packets being routed through the box | |
| POSTROUTING (kernel 2.4.18+) | for altering packets as they are about to go out | |
| Raw | PREROUTING | for packets arriving via any network interface |
| OUTPUT | for packets generated by local processes |
一图概览
local process----------^-----------------------------------------------------------v-----^ || v+--------------+ +---------------+| Filter#input | | Raw#output |+--------------+ +---------------+| |+--------------+ +---------------+| SNAT#input | | Mangle#output |+--------------+ +---------------+| |+--------------+ +---------------+| Mangle#input | | NAT#output |+--------------+ +---------------+^ || +---------------+| | Filter#output || +---------------+| || +----------------+ +----------------+ v+------->| Mangle#forward |----->| Filter#forward |+------->+^ +----------------+ +----------------+ || v+-------------------+ +--------------------+| DNAT#prerouting | | Mangle#postrouting |+-------------------+ +--------------------+| |+-------------------+ +--------------------+| Mangle#prerouting | | SNAT#postrouting |+-------------------+ +--------------------+| |+-------------------+ v| Raw#prerouting | |+-------------------+ |^ || v----------^-----------------------------------------------------------v-----network
