一、iptables的基本认识
1、Netfilter组件
- 内核空间,集成在linux内核中
- 扩展各种网络服务的结构化底层框架
- 内核中选取五个位置放了五个hook(勾子) function(INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING),而这五个hook function向用户开放,用户可以通过一个命令工具(iptables)向其写入规则
- 由信息过滤表(table)组成,包含控制IP包处理的规则集(rules),规则被分组放在链(chain)上
2、 三种报文流向:
- 流入本机:PREROUTING –> INPUT–>用户空间进程
- 流出本机:用户空间进程 –>OUTPUT–> POSTROUTING
- 转发:PREROUTING –> FORWARD –> POSTROUTING
二、iptables的组成
1、iptables由五个表和五个链以及一些规则组成
- 五个表table:filter、nat、mangle、raw、security
- filter表:过滤规则表,根据预定义的规则过滤符合条件的数据包
- nat表:network address translation 地址转换规则表
- mangle:修改数据标记位规则表
- Raw:关闭NAT表上启用的连接跟踪机制,加快封包穿越防火墙速度
- Security:此表用于强制访问控制(MAC)网络规则,由Linux安全模块(如SELinux)实现
- 优先级由高到低的顺序为:security –>raw–>mangle–>nat–>filter
2、五个内置链chain
- INPUT
- OUTPUT
- FORWARD
- PREROUTING
- POSTROUTING