iptables防火墙
iptables概述
Linux系统的防火墙:IP信息包过滤系统,它实际上由两个组件netfilter和iptables组成。
主要工作在网络层,针对IP数据包。体现在对包内的IP地址、端口等信息的处理上。
iptables基础:规则概念
规则(rules)其实就是网络管理员预定义的条件,规则一般的定义为“如果数据包头符合这样的条件,就这样处理这个数据包”。规则存储在内核空间的信息 包过滤表中,这些规则分别指定了源地址、目的地址、传输协议(如TCP、UDP、ICMP)和服务类型(如HTTP、FTP和SMTP)等。
当数据包与规则匹配时,iptables就根据规则所定义的方法来处理这些数据包,如放行(accept),拒绝(reject)和丢弃(drop)等。配置防火墙的主要工作是添加,修改和删除等规则。
iptables和netfilter
iptables只是Linux防火墙的管理工具而已,位于/sbin/iptables。真正实现防火墙功能的是 netfilter,它是Linux内核中实现包过滤的内部结构
netfilter/iptables关系:
- netfilter:属于“内核态”(Kernel Space,又称为内核空间)的防火墙功能体系
是内核的一部分,由一些数据包过滤表组成,这些表包含内核用来控制数据包过滤处理的规则集。 - iptables:属于“用户态”(User Space,又称为用户空间)的防火墙管理体系。
是一种用来管理Linux防火墙的命令程序,它使插入、修改和删除数据包过滤表中的规则变得容易,通常位于/sbin/iptables目录下。 - netfilter/iptables后期简称为iptables。iptables是基于内核的防火墙,其中内置了raw、mangle、nat和 filter四个规则表。表中所有规则配置后,立即生效,不需要重启服务。
ptables的规则表和链:四表五链
-
规则表的作用:容纳各种规则链
-
规则链的作用:容纳各种防火墙规则
总结:表里有链,链里有规则
四表:
表(按照优先级排序) | 作用及相关链 |
---|---|
raw表: | 确定是否对该数据包进行状态跟踪。包含两个规则链,OUTPUT、PREROUTING。 |
mangle表: | 修改数据包内容,用来做流量整形的,给数据包设置标记。包含五个规则链,INPUT、OUTPUT、FORWARD、POSTROUTING。 |
nat表: | 负责网络地址转换,用来修改数据包中的源、目标IP地址或端口。包含三个规则链,OUTPUT、PREROUTING、POSTROUTING。 |
filter表: | 负责过滤数据包,确定是否放行该数据包(过滤)。包含三个规则链,INPUT、FORWARD、OUTPUT。 |
#在iptables的四个规则表中,mangle表和raw表的应用相对较少。
五链:
链 | 说明 |
---|---|
INPUT: | 处理入站数据包,匹配目标IP为本机的数据包。 |
OUTPUT: | 处理出站数据包,一般不在此链上做配置。 |
FORWARD: | 处 |