iptables
文章目录
1 iptables简介
iptables是与最新的3.5版本Linux内核集成的IP信息包过滤系统。如果Linux系统连接到因特网或LAN、服务器或连接LAN和因特网的代理服务器,则该系统有利于在Linux系统上更好地控制IP信息包过滤和防火墙配置。
防火墙在做信息包过滤决定时,有一套遵循和组成的规则,这些规则存储在专用的信息包过滤表中,而这些表集成在Linux内核中。在信息包过滤表中,规则被分组放在我们所谓的链(chain)中。而netfilter/iptables IP信息包过滤系统是一款功能强大的工具,可用于添加、编辑和移除规则。
虽然netfilter/iptables IP信息包过滤系统被称为单个实体,但它实际上由两个组件netfilter和iptables组成。
netfilter组件也称为内核空间(kernelspace),是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。
iptables组件是一种工具,也称为用户空间(userspace),它使插入、修改和除去信息包过滤表中的规则变得容易。除非您正在使用Red Hat Linux 7.1或更高版本,否则需要下载该工具并安装使用它。
2 防火墙介绍
Firewall,防火墙,也称防护墙,,是一种隔离工具。其工作于主机或网络的边缘,对于进出本主机或网络的报文根据事先定义好的检测规则作匹配检测,对于能够被规则匹配到的报文做出相应处理。
防火墙有主机防火墙和网络防火墙,主机防火墙主要用来监测和处理流经本主机的数据包;网络防火墙则是用来监测和处理流经本防火墙的数据包。
与Linux内核各版本集成的防火墙历史版本:
3 iptables的优点
netfilter/iptables的最大优点是它可以配置有状态的防火墙,这是ipfwadm和ipchains等以前的工具都无法提供的一种重要功能。
有状态的防火墙能够指定并记住为发送或接收信息包所建立的连接的状态。防火墙可以从信息包的连接跟踪状态获得该信息。在决定新的信息包过滤时,防火墙使用的这些状态信息可以增加其效率和速度。这里有四种有效状态,名称分别为ESTABLISHED、INVALID、NEW和RELATED。
ESTABLISHED:指出该信息包属于已建立的连接,该连接一直用于发送和接收信息包并且完全有效。
INVALID:指出该信息包与任何已知的流或连接都不相关联,它可能包含错误的数据或头。
NEW:意味着该信息包已经或将启动新的连接,或者它与尚未用于发送和接收信息包的连接相关联。
RELATED:表示该信息包正在启动新连接,以及它与已建立的连接相关联。
netfilter/iptables的另一个重要优点是,它使用户可以完全控制防火墙配置和信息包过滤。用户可以定制自己的规则来满足特定需求,从而只允许想要的网络流量进入系统。
另外,netfilter/iptables是免费的,这对于那些想要节省费用的人来说十分理想,它可以代替昂贵的防火墙解决方案。
4 iptables四表五链
4.1 iptables四表及其对应的功能
iptables四表分别是filter、nat、mangle和raw。四表各自的功能如下:
4.2 iptables五链
iptables五链分别是PREROUTING、INPUT、FORWARD、OUTPUT、POSTROUTING
数据包的处理方式不同,流经的链也不同:
各功能的分别实现位置:
5 iptables数据包过滤匹配流程
5.1 iptables添加规则的考量点
添加规则的考量点:
a) 要实现哪种功能:判断添加在哪张表上
b) 报文流经的路径:判断添加在哪个链上
5.2 iptables处理的优先级次序
链:链上规则的次序,即为检查的次序,因此隐含一定的法则
a) 同类规则(访问同一应用),匹配范围小的放上面
b)不同类规则(访问不同应用),匹配到报文频率较大的放上面
c) 将那些可由一条规则描述的多个规则合并为一个
d) 设置默认策略
功能的优先级次序:raw --> mangle --> nat --> filter