Linux防火墙基础
防火墙是只设置在不同网络与网络安全与之间的一系列部件的场合,也是不同安全与之间信息的唯一出口。通过监测、限制并更改跨越防火墙的数据流,尽可能的对外屏蔽网络内部的信息、结构和运行状态,且有选择地接受外部网络访问。在内外网之间架起一道屏障,以避免发生不可预知或潜在的入侵。从传统意义上来说防火墙技术分为三类:包过滤(Packet Filtering)、应用代理(Application Proxy)、状态检测(Stateful Inspection)。
Linux的防火墙体系主要工作网络层,针对TCP/IP数据包实施过滤和限制,属于典型的包过滤防火墙(或称为网络层防火墙)。Linux系统的防火墙体系基于内核编码实现,具有非常稳定的性能和高效率,也因此获得广泛的应用。在CentOS7系统中几种防火墙共存:firewalld、iptables、ebtables,默认是用firewalld来管理netfilter子系统。
netfilter:指的是Linux内核中实现包过滤防火墙的内部结构,不以程序或文件的形式存在,属于“内核态”(Kernel Space,又称为内核空间)的防火墙的功能体系。
firewalld:指用于管理Linux防火墙的命令程序,属于“用户态”(User Space,又称为用户空间)的防火墙管理体系。
- firewalld概述
- firewalld简介
firewalld的作用是为包括过滤机制提供匹配规则(或称为策略),通过各种不同的规则,告诉netfilter对来自指定源,前往指定目的或具有某些协议特征的数据包采取何种处理方式。为了更方便地组织和管理防火墙,firewalld提供了支持网络区域链接以及接口安全等级的动态防火墙管理工具。它支持IPv4、IPv6防火墙设置以及以太网桥,并拥有两种配置模式:运行时配置与永久配置。它还支持服务或应用程序直接添加防火墙规则接口。 - firewalld网络区域
firewalld将所有的网络数据流量划分为多个区域,从而简化防火墙的管理。根据数据包的源IP地址或传入网络接口等条件,将数据流量传入相应的区域的防火墙规则。对于进入系统的数据包,首先检查的就是其源地址。
(1)若源地址关联到特定的区域,则执行该区域所制定的规则。
(2)若源地址未关联特定的区域,则使用传入网络接口的区域并执行该区域所制定的规则。
(3)若网络接口未关联到特定的区域,则使用默认区域执行该区域所制定的规则。
firewalld的预定义区域说明
- firewalld简介
区域 | 说明 |
---|---|
trusted(信任区域) | 可接受所有的网络连接 |
public(公共区域) | 除非与传出流量相关,或与ssh或dhcpv6-client预定义服务匹配,否则拒绝流量传入,在公共区域内,不能相信网络内的其他计算机不会对计算机造成危害,只能接受经过选择的连接。并且,该区域时薪添加网络接口的默认区域。 |
work(工作区域) | 除非与传出流量相关,或与ssh、ipp-client、dhcpv6-client预定义服务匹配,否则拒接流量传入,用于工作区。相信网络中的其他计算机不会危害计算机,仅接受经过选择的连接。 |
home(家庭区域) | 除非与传出流量相关。或与ssh、ipp-client、mdns、samba-client、dhcpv6-client预定义匹配,否则拒绝流量传入,用于家庭网络。信任网络内的其他计算机不会危害计算机,仅接受经过选择的连接。 |
internal(内部区域) | 除非与传出流量相关,或与ssh、ipp-client、mdns、samba-client、dhcpv6-client预定义服务匹配,否则拒绝流量传入,用于内部网络。信任网络内的其他计算机不会危害计算机,仅接收经过选择的连接。 |
external(外部区域) | 除非与传出流量相关,或与ssh预定义服务匹配,否则拒绝流量传入,通过此区域转发的IPV4传出流量将进行地址伪装。可用于为路由器启用了伪装功能的外部网络。 |
dmz(隔离区也称为非军事区域) | 除非与传出的流量相关,或与ssh预定义服务匹配,否则拒绝流量传入。 |
block(限制区域) | 除非与传出流量相关,否则拒绝所有传入流量。 |
drop(丢弃区域) | 除非与传入流量相关,否则丢弃所有传入流量,并且不产生包含ICMP的错误响应。 |
- firewalld防火墙的配置方法
配置firewalld的三种方式:
① firewall-config图