CentOS系统Firewalld防火墙配置

配置和管理firewalld防火墙的基础方法和技巧

发布:2023-10-08     分类:闲者编程     标签:Linux防火墙CentOS
2023 - 10 - 7

本文介绍了在CentOS 7.9 操作系统上配置和管理firewalld防火墙的基础方法和技巧。防火墙是保护计算机安全的重要组成部分,有效的防火墙策略可以阻止未经授权的访问和恶意活动,提高系统的安全性和稳定性。

一. CentOS firewalld防火墙概述

在计算机网络和信息安全领域,防火墙(Firewall)被视为保护网络和系统免受恶意攻击和未经授权访问的关键组件。它是一种网络安全设备或软件,通过监控、过滤和控制网络流量,帮助阻止恶意活动和未经授权的数据包进入或离开受保护的网络。防火墙有以下几个重要性:

1. 保护网络免受恶意攻击: 防火墙可以阻止恶意用户、病毒、蠕虫和其他恶意软件进入网络,从而降低受到网络攻击的风险。它可以检测并拦截试图入侵系统的不良流量。

2. 防止未经授权访问: 防火墙可以限制访问网络资源的权限,确保只有经过授权的用户能够访问关键数据和系统。这有助于保护敏感信息免受内部和外部威胁。

3. 维护隐私: 防火墙可以防止未经授权的数据传输,从而保护用户的隐私和个人信息。它可以防止敏感数据被窃取、篡改或泄露。

4. 限制网络资源滥用: 防火墙可以限制网络上的特定应用程序和服务,以防止网络资源被滥用。这有助于提高网络性能和稳定性。

5. 合规性和法规要求: 在许多行业中,合规性和法规要求对数据保护和网络安全提出了严格的要求。防火墙可以帮助组织满足这些要求,避免潜在的罚款和法律问题。

6. 减少安全漏洞: 许多恶意攻击是通过利用系统的安全漏洞实施的。防火墙可以在补丁和更新尚未应用之前,阻止攻击者利用这些漏洞。

7. 快速检测和响应: 防火墙可以监控网络流量,快速检测到异常活动,并触发警报,使管理员能够迅速采取行动,减少潜在的损害。

8. 多层防御策略: 防火墙通常是安全架构中的第一道防线,与其他安全工具(如入侵检测系统、入侵防御系统等)协同工作,构建多层防御策略,提供更全面的安全保护。

1. CentOS中的防火墙选项

在CentOS操作系统中,有两种主要的防火墙选项:firewalld和iptables。它们都用于配置和管理防火墙规则,以保护系统免受未经授权的访问和恶意活动。

本篇主要讲解firewalld防火墙,以下是关于firewalld防火墙选项的简要介绍:

1.1 firewalld:

Firewalld(Firewall Daemon)是一种动态防火墙管理器,最早引入于CentOS 7。它采用了一种区域(zone)的概念,根据不同的网络环境和需求,将网络划分为不同的区域,并为每个区域设置不同的防火墙规则。Firewalld的特点包括:

区域管理: 允许将不同的网络接口分配到不同的区域,并为每个区域配置特定的规则。
服务和端口: 可以使用预定义的服务和端口,将其关联到特定的区域,从而简化规则设置。
运行时修改: 允许在不重启防火墙服务的情况下动态添加、删除和修改规则。
临时规则: 可以设置临时规则,这些规则会在系统重启后失效。
网络地址转换(NAT): 支持NAT设置,可以将内部网络IP地址映射为外部IP地址。

在CentOS系统中,可以根据需要选择使用firewalld或iptables来配置和管理防火墙。通常情况下,对于普通用户和较简单的场景,firewalld提供了更简单和易于使用的选项。而对于高级用户和需要更细致控制的情况,iptables则提供了更多的自定义能力。无论选择哪种方法,防火墙的正确配置和管理都是确保系统安全的关键一步。

2. 基本的概念:区域(Zone)、服务(Service)和端口(Port)

在firewalld中,有一些基本的概念,包括区域(Zone)、服务(Service)和端口(Port)。这些概念是用于配置和管理防火墙规则的重要组成部分。

2.1. 区域(Zone):

区域是一组预定义的防火墙规则集,用于定义特定类型的网络环境。不同的区域可以根据网络的安全需求设置不同的规则。firewalld提供了一些预定义的区域,例如:

public:公共网络,通常用于公共无线网络或互联网连接。
internal:内部网络,比如本地局域网。
work:用于工作环境的网络。
home:用于家庭网络环境。
dmz:用于防火墙外部的非受信任区域。

可以根据的需求选择适当的区域,并在每个区域中配置相应的规则,以满足特定环境的安全需求。

2.2. 服务(Service):

服务是一组预定义的规则,用于定义特定类型的网络应用或服务。使用服务可以简化配置,因为只需要指定服务名称,firewalld将自动配置相应的规则。例如,http 服务表示Web服务器,ssh 服务表示SSH远程连接等。

2.3. 端口(Port):

端口是网络通信中的逻辑通道,用于标识特定类型的网络流量。在防火墙中,可以配置允许或拒绝特定端口的访问。例如,80端口通常用于HTTP通信,22端口用于SSH连接。

在使用firewalld配置防火墙规则时,可以根据以下几种方式进行配置:

使用预定义的区域和服务,以及相关的端口。
自定义区域、服务和端口,以满足特定的需求。
配置不同区域之间的规则,以实现不同网络环境之间的通信控制。

在配置防火墙规则时,需要考虑网络的安全需求以及特定应用程序的需求,确保适当地设置规则以保护系统和数据。可以通过命令行或图形界面来配置这些规则,使其适应的具体情况。

二. firewalld防火墙配置准备

1. 查看当前防火墙状态

查看firewalld服务的状态:

sudo systemctl status firewalld

这将显示firewalld服务的运行状态,以及是否处于活动状态。如果firewalld防火墙已经开启,那进行配置即可。

查看活动的防火墙区域:

sudo firewall-cmd --get-active-zones

这将列出当前活动的防火墙区域,以及每个区域的接口。

2. firewalld 开放的端口和服务

在firewalld中,要确定已经开放的端口和服务,可以使用以下命令来查看当前的防火墙规则和配置:

1. 查看已开放的端口:

使用以下命令可以列出当前开放的端口:

sudo firewall-cmd --list-ports

这将显示当前配置的开放端口列表。

2. 查看已开放的服务:

使用以下命令可以列出当前开放的服务:

sudo firewall-cmd --list-services

这将显示当前配置的开放服务列表。

3. 查看特定区域的开放端口和服务:

如果想查看特定区域的开放端口和服务,可以使用以下命令:

sudo firewall-cmd --zone=<区域名称> --list-ports
sudo firewall-cmd --zone=<区域名称> --list-services

将<区域名称>替换为感兴趣的防火墙区域,例如 public、internal 等。

这些命令将帮助了解当前firewalld配置下已经开放的端口和服务。务必使用适当的权限(通常需要使用sudo)来执行这些命令,以获取准确的防火墙配置信息。

三. 使用firewalld配置防火墙

1. 安装和启动firewalld

在CentOS系统上安装和启动firewalld是一个相对简单的过程。以下是安装和启动firewalld的基本步骤:

1.1. 安装firewalld:

打开终端,使用以下命令安装firewalld:

sudo yum install firewalld

如果提示确认安装,请输入 y 并按下回车键。

1.2. 启动firewalld:

安装完成后,使用以下命令启动firewalld服务:

sudo systemctl start firewalld

1.3. 设置开机启动:

要确保系统启动时自动启动firewalld服务,可以运行以下命令:

sudo systemctl enable firewalld

1.4. 检查firewalld服务状态:

可以使用以下命令检查firewalld服务的状态:

sudo systemctl status firewalld

如果firewalld已经成功启动,将看到服务状态的信息。如下图所示,running则是已经启动的状态

systemctl status firewalld

1.5. 配置防火墙规则:

一旦firewalld已经安装和启动,可以使用上面提到的方法配置防火墙规则,例如开放端口、添加服务等。

需要注意的是,firewalld默认会使用一些预定义的区域(例如 public、internal、work 等)。可以根据的网络环境和需求选择合适的区域进行配置。

四. 常用设置归纳

1、查看firewall服务状态

    systemctl status firewalld

2、查看firewall的状态

    firewall-cmd --state

3、开启、重启、关闭、

开启

    service firewalld start 或 systemctl start firewalld

重启

    service firewalld restart  或 systemctl restart firewalld

关闭

service firewalld stop  或 systemctl stop firewalld

4、查看防火墙规则

    firewall-cmd --list-all

5、查询、开放、关闭端口

使用命令进行操作

查询端口是否开放

    firewall-cmd --query-port=8080/tcp

查询所有开启端口

    firewall-cmd --zone=public --list-ports

开放80端口

    firewall-cmd --permanent --add-port=80/tcp --permanent

移除端口

    firewall-cmd --permanent --remove-port=8080/tcp --permanent

重启防火墙(修改配置后要重启防火墙)

    firewall-cmd --reload

参数解释

1、firwall-cmd:是Linux提供的操作firewall的一个工具; 2、--permanent:表示设置为持久; 3、--add-port:标识添加的端口;

直接修改防火墙配置文件

    /etc/firewalld/zones/public.xml

修改/etc/firewalld/zones/public.xml 保存后,运行:

    firewall-cmd --complete-reload

五.命令归纳

查看防火墙规则(只显示/etc/firewalld/zones/public.xml中防火墙策略)

    firewall-cmd --list-all

查看所有的防火墙策略(即显示/etc/firewalld/zones/下的所有策略)

    firewall-cmd --list-all-zones

配置firewalld-cmd

查看版本:firewall-cmd --version
查看帮助:firewall-cmd --help
显示状态:firewall-cmd --state
查看所有打开的端口:firewall-cmd --zone=public --list-ports
更新防火墙规则:firewall-cmd --reload
查看区域信息: firewall-cmd --get-active-zones
查看指定接口所属区域:firewall-cmd --get-zone-of-interface=eth0
拒绝所有包:firewall-cmd --panic-on
取消拒绝状态:firewall-cmd --panic-off
查看是否拒绝:firewall-cmd --query-panic

systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。

启动一个服务:systemctl start firewalld.service
关闭一个服务:systemctl stop firewalld.service
重启一个服务:systemctl restart firewalld.service
显示一个服务的状态:systemctl status firewalld.service
在开机时启用一个服务:systemctl enable firewalld.service
在开机时禁用一个服务:systemctl disable firewalld.service
查看服务是否开机启动:systemctl is-enabled firewalld.service
查看已启动的服务列表:systemctl list-unit-files|grep enabled
查看启动失败的服务列表:systemctl --failed
更新:2024-04-09
点击评论
评论区