扩展:https://pan.baidu.com/s/1e-X379CO3jImpW78oPfp2A
简介
防火墙是设置在不同网络与网络安全域之间的一系列组合,也是不同安全域之间信息的唯一出口。通过检测、限制并更改跨越防火墙的数据流。尽可能地对外屏蔽网络内部的信息、结构和运行状态,且可以有选择的接受外部外部网络的访问。在内外网之间架起一道安全的屏障,以避免发生不知情的情况下进入内部网络,对我们内部网络产生一定的威胁。
从传统意义上来说防火墙分为三类:包过滤、应用代理、状态检测。无论一个防火墙的实现过程有多复杂,说到底都是在这三种技术的基础上进行扩展的。
Linux的防火墙体系主要工作在网络层,属于典型的包过滤防火墙(也称为网络层防火墙),Linux系统的防火墙主要有:firewalld、iptables、ebtables。不过在CentOS 7 系统中默认使用firewalld来管理netfilter子系统。
- netfilter:指的是Linux内核中实现包过滤防火墙的内部结构,不以程序或文件的形式存在,属于“内核态”的防火墙功能体系。
- firewalld:指用于管理Linux防火墙的命令程序,属于“用户态”的防火墙的管理体系。
firewalld概述
1.firewalld简介
firewalld提供了支持网络区域所定义的网络链接以及接口安全等级的动态防火墙管理工具,它支持ipv4、ipv6防火墙以及以太网桥,并且拥有两种配置模式:运行时配置与永久配置。它还支持服务或应用程序直接添加防火墙规则接口。
2.firewalld的区域
firewalld将所有的网络数据流量划分为多个区域,从而简化防火墙管理。根据数据包的源IP地址或传入网络接口等条件,将数据流量转入相应区域的防火墙规则。对于进入系统的数据包,首先检查的就是其源地址。
- 若源地址关联到特定的区域,则执行该区域所制定的规则
- 若源地址未关联到特定的区域,则使用传入网络接口的区域并执行该区域所制定的规则
- 若网络接口未关联到特定的区域,则使用默认区域并执行该区域所制定的规则
默认区域不是单独的区域,而是执行系统上定义的某个其他区域。默认情况下,默认区域是public,每个预定于区域都设置了默认打开服务。
区域(zone)说明如下:
drop(丢弃)
任何接收的网络数据包都被丢弃,没有任何回复。仅能有发送出去的网络连接。
block(限制)
任何接收的网络连接都被 IPv4 的 icmp-host-prohibited 信息和 IPv6 的 icmp6-adm-prohibited 信息所拒绝。
public(公共)
在公共区域内使用,不能相信网络内的其他计算机不会对您的计算机造成危害,只能接收经过选取的连接。
external(外部)
特别是为路由器启用了伪装功能的外部网。您不能信任来自网络的其他计算,不能相信它们不会对您的计算机造成危害,只能接收经过选择的连接。
dmz(非军事区)
用于您的非军事区内的电脑,此区域内可公开访问,可以有限地进入您的内部网络,仅仅接收经过选择的连接。
work(工作)
用于工作区。您可以基本相信网络内的其他电脑不会危害您的电脑。仅仅接收经过选择的连接。
home(家庭)
用于家庭网络。您可以基本信任网络内的其他计算机不会危害您的计算机。仅仅接收经过选择的连接。
internal(内部)
用于内部网络。您可以基本上信任网络内的其他计算机不会威胁您的计算机。仅仅接受经过选择的连接。
trusted(信任)
可接受所有的网络连接。
图示:
配置方法
- firewall-config图形工具
- firewall-cmd命令行工具
- /etc/firewalld/中的配置文件
1.图形工具(更加人性化)
打开方法:应用程序--杂项--防火墙
2.命令行工具
1)设置防火墙状态
systemctl status firewalld //查看状态
systemctl start firewalld //开启
systemctl stop firewalld //关闭
systemctl disable firewalld //设置开机禁用
systemctl enable firewalld //设置开机自启
2)获取预定义信息
firewall-cmd --get-zones //显示所有区域
firewall-cmd --get-services //显示所有预定义服务
firewall-cmd --get-icmptypes //显示所有ICMP类型
firewall-cmd --get-icmptypes命令执行结果中各类的含义
destination-unreachable:目的地址不可达
echo-reply:应答回应(pong)
parameter-problem:参数问题
redirect:重新定向
router-advertisement:路由器通告
router-solicitation:路由器征寻
source-quench:源端抑制
time-exceeded:超时
timestamp-reply:时间戳应答回应
timestamp-request:时间戳请求
3)区域管理
firewall-cmd --get-default-zone //显示默认区域
firewall-cmd --list-al //显示默认区域所有规则(添加:--zone=internal 仅查看internal区域规则)
firewall-cmd --get-zone-of-interface=ens33 // 显示接口所属区域
firewall-cmd --zone=internal --change-interface=ens33 // 更改接口区域为internal
4)显示所有激活区域
firewall-cmd --get-active-zones //显示所有激活区域
5)服务管理
为默认区域添加允许访问的服务
firewall-cmd --add-service=http //添加网站服务
firewall-cmd --add-service=https //添加加密网站服务
firewall-cmd --list-services //显示默认区域所有服务
为指定区域internal添加mysql服务
firewall-cmd --zone=internal --add-service=mysql //添加MySQL服务到internal区域
firewall-cmd --zone=internal --list-services //查看internal区域所有服务
添加,删除端口
firewall-cmd --zone=internal --add-port=443/tcp //为internal添加443端口
firewall-cmd --zone=internal --list-all //查看internal区域所有规则
firewall-cmd --zone=internal --remove-port=443/tcp //删除端口
保存所有配置
--reload:重新加载防火墙并保持状态信息,即将永久配置应用为运行时配置;
--permanent:带此选项的命令用于设置永久规则,这些规则只有在重新启动firewalld服务是规则才会生效;若不带此选项,表示用于设置运行时规则;
--runtime-to-permanent:将当前的运行配置写入规则配置文件中,使其成为永久配置。
firewall-cmd --reload //保存所有配置
来源:CSDN
作者:秦子腾
链接:https://blog.csdn.net/weixin_45310323/article/details/103480955