文章目录
- 一、iptables
- 1、iptables与Netfilter
- 2、四表五链(重要)
- 3、iptables语法格式
一、iptables
1、iptables与Netfilter
iptables是Linux的防火墙管理工具而已,真正实现防火墙功能的是Netfilter,我们配置了iptables规则后Netfilter通过这些规则来进行防火墙过滤等操作
Netfilter模块:
它是主要的工作模块,位于内核中,在网络中的五个位置(也就是防火墙四表五链)注册了一些函数,用来抓取数据包;把数据包的信息拿来匹配各个各个链位置在对应表中的规则:匹配之后,进行相应的处理ACCEPT、DROP等等。
两者间的关系:
2、四表五链(重要)
四表五链:
一个表----->多个链链
一个链------->多个规则
链就是位置:共有五个:进路由(PREROUTING)、进系统(INPUT)、转发(FORWARD)、出系统(OUTPUT)、出路由(POSTROUTING)
进出路由做数据转换时用到,一般用不到
**表就是存储的规则:**数据包到了该链接,会去对应表中查询设置的规则,然后决定是否放行、丢弃、转发还是修改等等操作。
1)、具体的四表
- filter表——涉及FORWARD、INPUT、OUTPUT三条链,多用于本地和转发过程中数据过滤;
- Nat表——涉及PREROUTING、OUTPUT、POSTROUT三条链,多用于源地址/端口转换和目标地址/端口的转换;
- Mangle表——涉及整条链,可实现拆解报文、修改报文、重新封装,可常见于IPVS的PPC下多端口会话保持。
- Raw表——涉及PREROUTING和OUTPUT链,决定数据包是否被状态跟踪机制处理,需关闭nat表上的连接追踪机制。
2)、具体的五链
- INPUT——进来的数据包应用此规则链中的策略
- OUTPUT——外出的数据包应用此规则链中的策略
- FORWARD——转发数据包时应用此规则链路中的策略
- PREROUTING——对数据包作路由选择前应用此链中的规则(所有的数据包进来的时候都先由这个链处理)
- POSTROUTING——对数据包作路由选择后应用此链中的规则(所有的数据包出来的时候都先由这个链处理)
3、iptables语法格式
iptables [-t 表名] 选项 [链名] [条件] [-j 控制类型 ]
iptables常用参数
-P | 设置默认策略 iptable |
-F | 清空规则链 |
-L | 查看规则链 |
-A | 在规则链的末尾加入新规则 |
-I | num 在规则链的头部加入新规则 |
-D | num 删除某一条规则 |
-s | 匹配来源地址 IP/MASK,加叹号“ !”表示除这个IP外 |
-d | 匹配目标地址 |
-i | 网卡名称 匹配从这块网卡流入的数据 入站口 |
-o | 网卡名称 匹配从这块网卡流出的数据 出站口 |
-p | 匹配协议,如tcp,udp,icmp |
–dport num | 匹配目标端口号 |
–sport num | 匹配来源端口号 |