抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

结构

iptables -> Tables -> Chains -> Rules. 简单地讲,tables由chains组成,而chains又由rules组成。

如下图所示:

五张表

这五张表是对 iptables 所有规则的逻辑集群且是有顺序的,当数据包到达某一条链时会按表的顺序进行处理,表的优先级为:

1
raw > mangle > nat > filter > security
  • filter 表:iptables的默认表,用于控制到达某条链上的数据包是继续放行、直接丢弃(drop)还是拒绝(reject)。
  • nat 表:network address translation 网络地址转换,用于修改数据包的源地址和目的地址。
  • mangle 表:用于修改数据包的 IP 头信息。
  • raw 表:iptables 是有状态的,其对数据包有链接追踪机制,连接追踪信息在 /proc/net/nf_conntrack 中可以看到记录,而 raw 是用来去除链接追踪机制的。
  • security 表:最不常用的表,用在 SELinux 上。

大多数情况下仅需要使用 filternat 表。

五条链

  • PREROUTING 链:数据包进入路由之前,可以在此处进行 DNAT。
  • INPUT 链:一般处理本地进程的数据包,目的地址为本机。
  • FORWARD 链:一般处理转发到其他机器或者 network namespace 的数据包。
  • OUTPUT 链:原地址为本机,向外发送,一般处理本地进程的输出数据包。
  • POSTROUTING 链:发送到网卡之前,可以在此处进行 SNAT。

每条链链与表的关系如下:

  • PREROUTING 链 :raw, mangle, nat
  • INPUT 链 :mangle, nat, filter
  • FORWARD 链 :raw, mangle, nat, filter
  • OUTPUT 链 :mangle, filter
  • POSTROUTING 链 :mangle, nat

iptables 的工作流程如下图所示:

永久生效

Debain

1
2
3
4
5
6
7
8
9
10
11
# 1.配置完iptables策略后,使用iptables-save保存策略文件。
iptables-save > /etc/network/iptables.rule

# 2.配置iptables自启动策略
nano /etc/network/if-pre-up.d/iptables

#!/bin/sh
iptables-restore /etc/network/iptables.rule

# 保存后给/etc/network/if-pre-up.d/iptables文件添加执行权限
chmod +x /etc/network/if-pre-up.d/iptables

常见参数作用

收集各种常见的iptables参数作用

-A PREROUTING -m addrtype –dst-type LOCAL -j DOCKER

-m addrtpe: Address type match扩展模块
--dst-type: 按源地址或目标地址类型去做匹配,地址类型有UNSPEC、UNICAST、LOCAL、BROADCAST、ANYCAST、MULTICAST、BLACKHOLE、UNREACHABLE、PROHIBIT、THROW、NAT

作用:把目标地址类型属于主机系统的本地网络地址的数据包,在数据包进入NAT表PREROUTING链时,都让它们直接jump到一个名为DOCKER的链。

-j MARK –set-xmark 0x40000/0x4000

-j MARK: 执行mark操作
--set-xmark: 简单可理解为设置特殊格式的标签

mark用于标记数据包。在一些不同的table或者chain之间需要协同处理某一个数据包时尤其有用
作用:设置标签为0x40000/0x4000

推荐阅读系列

iptables详解(1):iptables概念

iptables详解(2):iptables实际操作之规则查询

iptables详解(3):iptables规则管理

iptables详解(4):iptables匹配条件总结之一

iptables详解(5):iptables匹配条件总结之二(常用扩展模块)

iptables详解(6):iptables扩展匹配条件之’–tcp-flags’

iptables详解(7):iptables扩展之udp扩展与icmp扩展

iptables详解(8):iptables扩展模块之state扩展

iptables详解(9):iptables的黑白名单机制

iptables详解(10):iptables自定义链

iptables详解(11):iptables之网络防火墙

iptables详解(12):iptables动作总结之一

iptables详解(13):iptables动作总结之二

iptables详解(14):iptables小结之常用套路

iptables入门:iptables构架、基本命令及扩展(功能)简介

iptables: SNAT, DNAT, MASQUERADE的联系与区别

iptables详细教程:基础、架构、清空规则、追加规则、应用实例

iptables应用:NAT、数据报处理、清空iptables规则

iptables常用规则:屏蔽IP地址、禁用ping、协议设置、NAT与转发、负载平衡、自定义链

iptables:阻止SSH字典攻击

评论