iptables
Posted zh-dream
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iptables相关的知识,希望对你有一定的参考价值。
什么是iptables?
iptables是用于配置Linux 2.4.x和更高版本的数据包过滤规则集的用户空间命令行程序。iptables还可用于从数据包过滤器规则集中配置了网络地址转换。
iptables工作与主机或网络的边缘,对进出主机或网络的报文,根据事先定义好的规则进行检测,对于能被规则所匹配的报文做出相应处理。
依存关系
iptables需要一个具有ip_tables数据包过滤器的内核。这包括所有2.4.x和更高版本的内核。
iptables中的表和链
1、filter表
iptables的默认表,如果没有自定义表,默认使用filter表,它包含以下三个链:
- INPUT – 处理来自外部的数据。
- OUTPUT – 处理向外发送的数据
- FORWARD – 将数据转发到本机的其他网卡设备上。
2、NAT表
NAT表有三种内建链:
- PREROUTING – 处理刚到达本机并在路由转发前的数据包。它会转换数据包中的目标IP地址(destination ip address),通常用于DNAT(destination NAT)。
- POSTROUTING – 处理即将离开本机的数据包。它会转换数据包中的源IP地址(source ip address),通常用于SNAT(source NAT)。
- OUTPUT – 处理本机产生的数据包。
3、 Mangle表
Mangle表用于指定如何处理数据包,工作过程为拆解报文并做出修改,然后重新封装。它能改变TCP头中的QoS位。Mangle表具有5个内建链:
- PREROUTING
- OUTPUT
- FORWARD
- INPUT
- POSTROUTING
4、Raw表
Raw表用于处理异常,它具有2个内建链:
- PREROUTING
- OUTPUT
使用iptables时的注意要点:
(1)实现的功能作用在哪张表上
(2) 经过的报文作用在哪个链上
(3)链上的规则是自上而下一次检查的,所以同一类规则(针对同一应用)匹配范围小的规则应该放在最上面,不同类规则,匹配频率高的放上面
(4)设置默认规则
数据包通过iptables的流程
表的优先级:
raw --------> mangle ---------> nat ---------> filter
以上是关于iptables的主要内容,如果未能解决你的问题,请参考以下文章