文章目录
- 防火墙概述
- 一、硬件防火墙
- 二、软件防火墙
- 1. iptables
- 2. firewalld
- 3. ufw
- iptables概述
- netfilter/iptables关系
- 四表五链
- 规则表的作用:
- 规则链的作用:
- 四表:
- 五链:
- 数据包到达防火墙时的处理顺序:
防火墙概述
防火墙是网络安全的重要组成部分,它根据安全策略控制网络数据包的进出,以保护内部网络免受外部威胁。防火墙可以分为硬件防火墙和软件防火墙两大类,而软件防火墙中,iptables、firewalld和ufw是Linux系统常用的几种。
一、硬件防火墙
- 功能强大:硬件防火墙在硬件级别实现部分防火墙功能,另一部分功能基于软件实现。这种设计使得硬件防火墙在处理网络数据包时具有更高的效率和更强的处理能力。
- 性能好:由于硬件防火墙通常采用专门的硬件加速技术,因此其性能通常优于软件防火墙,能够处理更高的网络流量和更复杂的网络协议。
- 成本高:硬件防火墙的制造成本和维护成本相对较高,适合对网络安全要求极高且预算充足的场景。
二、软件防火墙
1. iptables
- 定义:iptables是Linux系统中的一个包过滤防火墙工具,主要工作在网络层,通过对IP数据包的IP地址、端口、协议等信息进行过滤和限制来实现安全防护。
- 特点:
- 应用场景:iptables是CentOS 7以前版本系统的默认防火墙,广泛应用于Linux服务器的安全防护中。
2. firewalld
- 定义:firewalld是CentOS 7及以后版本系统的默认防火墙管理工具,它提供了一个动态管理的防火墙框架,支持网络区域(zones)的概念,可以对网络连接以及相关的防火墙规则进行分组管理。
- 特点:
- 易用性:firewalld提供了图形界面和命令行界面两种管理方式,使得防火墙的配置和管理更加直观和方便。
- 灵活性:firewalld支持网络区域的概念,可以根据不同的网络环境和安全需求进行灵活的配置。
- 兼容性:firewalld与iptables兼容,可以导入和导出iptables规则。
- 应用场景:firewalld是CentOS 7及以后版本系统的推荐防火墙管理工具,适用于需要动态管理防火墙规则的场景。
3. ufw
- 定义:ufw(Uncomplicated Firewall)是Ubuntu系统提供的一个iptables的接口,它简化了iptables的配置和管理过程,使得用户可以通过简单的命令来配置和管理防火墙规则。
- 特点:
- 易用性:ufw提供了简洁明了的命令和选项,使得用户可以轻松地进行防火墙的配置和管理。
- 安全性:通过配置ufw规则,可以有效地保护Ubuntu系统免受恶意攻击和未经授权的访问。
- 兼容性:ufw与iptables兼容,可以导入和导出iptables规则。
- 应用场景:ufw是Ubuntu系统的推荐防火墙管理工具,适用于Ubuntu系统的安全防护中。
综上所述
硬件防火墙在性能和安全性方面具有优势,但成本较高;
软件防火墙则具有灵活性高、成本低的特点,适用于不同场景下的安全防护需求。
iptables概述
Linux系统的防火墙:IP信息包过滤系统,主要工作在网络层,针对IP数据包进行处理,如IP地址、端口、协议等信息。
netfilter/iptables关系
-
netfilter:
- 属于“内核态”(Kernel Space)的防火墙功能体系。
- 是内核的一部分,包含数据包过滤表和规则集,用于控制数据包过滤处理。
-
iptables:
- 属于“用户态”(User Space)的防火墙管理体系。
- 是一种命令程序,用于管理Linux防火墙,插入、修改和删除数据包过滤表中的规则。
- 通常位于
/sbin/iptables
文件下。
后期,netfilter和iptables常被简称为iptables。iptables是基于内核的防火墙,内置了raw、mangle、nat和filter四个规则表。配置后规则立即生效,无需重启服务。
四表五链
规则表的作用:
容纳各种规则链。
规则链的作用:
容纳各种防火墙规则。
总结:表里有链,链里有规则。
四表:
-
raw表:
- 确定是否对该数据包进行状态跟踪。
- 包含两个规则链:OUTPUT、PREROUTING。
-
mangle表:
- 修改数据包内容,用于流量整形,给数据包设置标记。
- 包含五个规则链:INPUT、OUTPUT、FORWARD、PREROUTYING、POSTROUTING。
-
nat表:
- 负责网络地址转换,修改数据包中的源、目标IP地址或端口。
- 包含三个规则链:OUTPUT、PREROUTING、POSTROUTING。
-
filter表:
- 负责过滤数据包,确定是否放行该数据包。
- 包含三个规则链:INPUT、FORWARD、OUTPUT。
注:在iptables的四个规则表中,mangle表和raw表的应用相对较少。
五链:
-
INPUT:
- 处理入站数据包,匹配目标IP为本机的数据包。
-
OUTPUT:
- 处理出站数据包,匹配从本机发出的数据包。
-
FORWARD:
- 处理转发数据包,匹配流经本机的数据包。
-
PREROUTING链:
- 在进行路由选择前处理数据包,用于修改目的地址(DNAT)。
-
POSTROUTING链:
- 在进行路由选择后处理数据.orging链,用于修改源地址(SNAT)。
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/080557fbff5340b48bb32e3543b3abeb.png
数据包到达防火墙时的处理顺序:
规则表之间的优先顺序:
raw > mangle > nat > filter
规则链之间的匹配顺序:
- 主机型防火墙:
- 入站数据:PREROUTING --> INPUT --> 本机的应用程序
- 出站数据:本机的应用程序 --> OUTPUT --> POSTROUTING
- 网络型防火墙:
- 转发数据:PREROUTING --> FORWARD --> POSTROUTING
规则链内的匹配顺序:
自上向下按顺序依次进行检查,找到相匹配的规则即停止(LOG策略例外)。若在该链内找不到相匹配的规则,则按该链的默认策略处理(未修改的状况下,默认策略为允许)。
总结:
功能 | 表 | 链 |
---|---|---|
过滤入站数据包 | filter | INPUT |
过滤出站数据包 | filter | OUTPUT |
过滤转发数据包 | filter | FORWARD |
修改内网转发到外网数据包的源IP地址 | nat | POSTROUTING |
修改外网转发到内网数据包的目的IP地址 | nat | PREROUTYING |