Linux CentOS 8(firewalld的配置与管理)

这篇具有很好参考价值的文章主要介绍了Linux CentOS 8(firewalld的配置与管理)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


Linux CentOS 8(firewalld的配置与管理)



一、firewalld 简介

firewalld(动态防火墙管理器)自身和 iptables 一样,并不具备防火墙的功能,而是需要通过内核的 netfilter 来实现,也就是说 firewalld 和 iptables 的作用都是用于维护规则,而真正使用规则的是内核的 netfilter。只不过 firewalld 和 iptables 的结构以及使用方法不一样。

firewalld 跟 iptables 比起来,firewalld 可以动态修改单条规则,不需要像 iptables 那样,修改了规则后必须全部刷新才可以生效。缺点是每个服务都需要去设置才能放行,因为默认是拒绝,而 iptables 里默认是每个服务是允许,需要拒绝的才去限制。普遍应用于 Rhel7、CentOS7 及之后。且最小化安装的 Linux 系统不会安装 firewalld。

firewalld 只能做和 IP/Port 相关的限制,web 相关的限制无法实现。

二、firewalld 工作概念

1、预定义区域(管理员可以自定义修改)

通过将网络划分成不同的区域,制定出不同区域间的访问控制策略来控制不同程序区域间传送的数据流。一个网卡仅能绑定一个区域,但一个区域可以绑定多个网卡。如表1-1所示的几种不同的预定义区域。

表1-1 预定义区域名称及配置
区域名称 默认配置
trusted 允许所有数据包传入和数据包流出,lo接口被分配为此区域
home 拒绝任何数据包流入,但允许数据包流出和预定义服务(ssh、mdns、ipp-client、sbmclient、dhcpv6-client)的数据包可以流入
work 拒绝任何数据包流入,但允许数据包流出和预定义服务(ssh、ipp-client、dhcpv6-client)的数据包可以流入
public 拒绝任何数据包流入,但允许数据包流出和预定义服务(ssh、dhcpv6-client)的数据包可以流入。新添加的网卡默认绑定到该区
dmz 隔离区域也称为非军事区域。拒绝任何数据包流入,但允许数据包流出和预定义服务(ssh)的数据包可以流入
block 阻止所有传入的数据包
drop 拒绝所有传入的数据包
internal 拒绝任何数据包流入,但允许数据包流出和预定义服务(ssh)的数据包可以流入
external 拒绝任何数据包流入,但允许数据包流出和预定义服务(ssh、dhcpv6-client)的数据包可以流入

相应地,firewalld提供了九个区域的配置文件,分别是trusted.xml、home.xml、work.xml 、public.xml、dmz.xml、block.xml、drop.xml、internal.xml、external.xml,他们都保存在“/usr/lib/firewalld/zones/”目录下。

注:默认区域是public,默认区域可以修改。

2、预定义服务

通过预定义服务,可以很方便的允许特定网络的流量通过防火墙,如表1-2所示。

表1-2 预定义服务节选
服务名称 配置
ssh 本地SSH服务器。到22/tcp的流量。
dhcpv6-client 本地DHCPv6客户端。到fe80::/64 IPv6网络中546/udp的流量。
ipp-client 本地IPP打印。到631/udp的流量。
samba-client 本地Windows文件和打印共享客户端。到137/udp和138/udp的流量。
mdns 多播DNS(mDNS)本地链路名称解析。到5353/udp指向224.0.0.251(IPv4)或ff02::fb(IPv6)多播地址的流量。

三、firewalld 配置方法

firewalld的配置方法主要有三种:firewall-config、firewall-cmd和直接编辑xml文件。其中 firewall-config是图形化工具,firewall-cmd是命令行工具。

1、通过firewall-cmd配置

1.1 安装firewalld

[root@localhost ~]# yum install firewalld firewall-config
//firewall-config为图形工具

1.2 启动firewalld

[root@localhost ~]# systemctl start firewalld

1.3 屏蔽服务

[root@localhost ~]# systemctl mask iptables
[root@localhost ~]# systemctl mask ip6tables
[root@localhost ~]# systemctl mask ebtables
//由于iptables、ip6tables、ebtables这三个服务与filrewalld冲突,为防止意外启动,需要屏蔽这三个服务。

1.4 配置文件所在位置

[root@localhost ~]# cd /lib/firewalld/{services,zones}/*.xml
//系统配置文件,尽量不要修改
[root@localhost ~]# cd /etc/firewalld/{services,zones}/*.xml
//用户配置文件

1.5 查看状态

[root@localhost ~]# firewalld-cmd --state

1.6 配置 firewalld

[root@localhost ~]# firewalld-cmd [选项··· ]

默认情况下是修改运行时配置(马上临时生效),如果要修改永久配置,添--permanent选项,但一定要重启才能生效。

zone区域相关命令,如表2-1所示。

表2-1 zone区域命令及作用说明
参数 作用
–get-default-zone 查询当前默认区域
–set-default-zone= 设置默认区域,使其永久生效
–get-active-zones 列出当前正在使用的所有区域(具有关联的接口或源)及其接口和源信息。
–get-zones 列出所有可用区域
–new-zone= 新增区域

服务相关命令,如表2-2所示。

表2-2 services服务命令及作用说明
参数 作用
–get-services 列出所有预定义服务
–add-service= [–zone=] 允许到的流量。如果未提–zone=选项,则将使用默认区域
–remove-service= [–zone=] 移除到的流量。如果未提–zone=选项,则将使用默认区域

port端口相关命令,如表2-3所示。

表2-3 port端口命令及作用说明
参数 作用
–add-port=<PORT/PROTOCOL> [–zone=] 允许到<PORT/PROTOCOL>端口的流量。如果未提–zone=选项,则将使用默认区域
–remove-port=<PORT/PROTOCOL> [–zone=] 移除到<PORT/PROTOCOL>端口的流量。如果未提–zone=选项,则将使用默认区域

interface接口相关命令,如表2-4所示:

表2-4 interface接口命令及作用说明
参数 作用
–add-interface= [–zone=] 将来自的所有流量路由到指定区域,如果未提–zone=选项,则将使用默认区域
–remove-interface= [–zone=] 将来自的所有流量路由取消到指定区域,如果未提–zone=选项,则将使用默认区域

source源相关命令,如表2-5所示:

表2-5 source源命令及作用说明
参数 作用
–add-source= [–zone=] 将来自IP地址或网络/子网掩码的所有流量路由到指定区域。如果未提–zone=选项,则将使用默认区域
–remove-source= [–zone=] 将来自IP地址或网络/子网掩码的所有流量路由取消到指定区域。如果未提–zone=选项,则将使用默认区域

其他相关命令,如表2-6所示:

表2-6 其他命令及作用说明
参数 作用
–list-all [–zone=] 列出的所有已配置接口、源、服务和端口。如果未提–zone=选项,则将使用默认区域。
–reload 更新防火墙规则
–version 查看版本

1.7 重启firewalld服务

[root@localhost ~]# firewalld-cmd --reload
或
[root@localhost ~]# systemctl restart firewalld

2、通过firewall图形界面配置

2.1 启动图形化界面

通过命令firewalld-config启动图形界面,如图2-1所示:

[root@localhost ~]# firewalld-config

Linux CentOS 8(firewalld的配置与管理),Linux CentOS 8,linux,centos,firewalld,1024程序员节

图2-1 通过命令启动图形界面

通过菜单启动图形界面:应用—杂项—防火墙,如图2-2所示:

Linux CentOS 8(firewalld的配置与管理),Linux CentOS 8,linux,centos,firewalld,1024程序员节

图2-2 通过菜单启动图形界面

2.2 选择配置规则的状态,如图2-3所示:

Linux CentOS 8(firewalld的配置与管理),Linux CentOS 8,linux,centos,firewalld,1024程序员节

图2-3 选择配置规则的状态

注:自定义区域、服务只能在“永久”配置下设置

2.3 在区域内的services、ports、interfaces等选项页设置运行的流量,如图2-4所示:

Linux CentOS 8(firewalld的配置与管理),Linux CentOS 8,linux,centos,firewalld,1024程序员节

图2-4 在区域内设置运行的流量

2.4 在服务内的ports、protocols等选项页设置运行的流量,如图2-5所示:

Linux CentOS 8(firewalld的配置与管理),Linux CentOS 8,linux,centos,firewalld,1024程序员节

图2-5 在服务内设置运行的流量

四、配置 firewalld 的富规则

firewalld 中的富规则表示更复杂的防火墙策略配置,它可以针对系统服务、端口号、原地址和目标地址等诸多信息进行更有针对性的策略配置,优先级在所有的防火墙策略中也是最高的。

1、富规则语法

[root@localhost ~]# man firewalld.richlanguage
rule
  [source]
  [destination]  service|port|protocol|icmp-block|icmp-type|masquerade|forward-port|source-port
  [log]
  [audit]
  [accept|reject|drop|mark]
  
Rule 
rule [family="ipv4|ipv6"]
Source 
source [not] address="address[/mask]"|mac="mac-address"|ipset="ipset"
Destination 
destination [not] address="address[/mask]"
Service 
service name="service name"
Port 
port port="port value" protocol="tcp|udp"
Protocol 
protocol value="protocol value"
Forward-port 
forward-port port="port value" protocol="tcp|udp" to-port="port value" to-addr="address"
Source-port 
source-port  port="port value" protocol="tcp|udp"
[ accept | reject | drop | mark ]

2、富规则相关命令

firewall-cmd 有四个选项用于处理富规则,这些选项都能加上--permanent--zone=<ZONE>组合使用,如表3-1所示:

表3-1 富规则命令及作用说明
参数 作用
–add-rich-rule=‘’ 在指定的区域添加一条富规则。如果未指定区域,则向默认区域中添加
–remove-rich-rule=‘’ 在指定的区域删除一条富规则。如果未指定区域,则向默认区域中添加
–query-rich-rule=‘’ 查询富规则是否已添加到指定区域,如果未指定区域,则为默认区域。找到规则返回0,找不到返回1。
–list-rich-rules 列出指定区域的所有富规则

3、实例

3.1 在work区域中拒绝172.25.0.11的所有流量

[root@localhost ~]# firewall-cmd --zone=work --add-rich-rule='rule family=ipv4 source address=172.25.0.11 reject'

3.2 允许172.25.0.0网段的主机能够访问http服务

[root@localhost ~]# firewall-cmd --add-rich-rule='rule family=ipv4 source address=172.25.0.0/24 service name=http accept'

3.3 默认public区域对外开放,但拒绝172.16.0.0/24网段通过ssh连接

[root@localhost ~]# firewall-cmd --add-rich-rule='rule family=ipv4 source address=172.25.0.0/24 service name=ssh drop'

3.4 网站禁止ping服务

[root@localhost ~]# firewall-cmd --add-rich-rule='rule family=ipv4 protocol value=icmp drop'
//drop和reject区别
reject直接拒绝,返回拒绝
drop是丢弃,直到超时

制作成员: 何嘉愉
排版: 裕新
初审: 杨佳佳
复审: 二月二
文章来源地址https://www.toymoban.com/news/detail-776470.html

到了这里,关于Linux CentOS 8(firewalld的配置与管理)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【CentOS】Linux 文件与目录管理

    目录 1、目录的切换、新增和删除 (1)cd (change directory,切换目录) (2)pwd (显示目前所在的目录) (3)mkdir (make directory,建立新目录 ) (4)rmdir (删除“空”的目录) 2、文件与目录查看:ls 3、复制、删除与移动:cp/rm/mv (1)cp (复制文件或目录) (2)rm (删除文件或目录) (

    2024年02月20日
    浏览(44)
  • Linux Centos7账号和权限管理

        Linux是一种开源操作系统,它的安全和安装过程等方面优于Windows。在Linux上,CentOS 7是一种常见的版本,它采用的是Red Hat Enterprise Linux(RHEL)的代码作为基础,但是是免费的,因此被广泛使用。在CentOS 7上,账号和权限管理是非常重要的,本文将介绍如何进行账号和权限的

    2024年02月09日
    浏览(38)
  • Linux Centos 8 用户管理之重置密码

    如果在使用linux系统时遇到系统密码问题无法进入系统或者操作的时候可以按照下面的方法重置用户密码。 一、root用户密码重置: 方式一: 1.重启电脑或虚拟机,在刚进引导界面时候按“e\\\"键,进入编辑模式。 2.在”quiet\\\"后加rd.break,注意中间的空格:...quiet rd.break,然后按

    2024年02月13日
    浏览(40)
  • Linux之安装配置CentOS 7

    目录 一.概述         1.1 什么是Linux系统 二.安装CentOS 7 三. 配置CentOS 7 四. 查看、设置IP地址         4.1 查看IP地址         4.2 设置IP地址  五.换软件源 Linux是一套免费使用和自由传播的类Unix操作系统,是一个多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要

    2024年01月25日
    浏览(49)
  • Linux系统管理:虚拟机Centos Stream 9安装

    目录 一、理论 1.Centos Stream 9 二、实验 1.虚拟机Centos Stream 9安装准备阶段 2.安装Centos Stream 9 3.进入系统 (1)  简介 CentOS Stream 是一种 Linux 操作系统。安装此操作系统的难题在于,在安装此系统之前,自己的操作系统是 Windows,而这两个系统是不兼容的。任何软件都必须在操作系

    2024年02月05日
    浏览(58)
  • Linux系统--CentOS配置静态ip

    刚学习虚拟机 Linux 系统,用 FinalShell 或者 XShell 等工具连接Linux时,由于ip地址是DHCP服务自动分配给虚拟机的,所以每次登录的时候ip地址都不一样,连接的时候就要每次都更改ip地址,所以得将将虚拟机ip设置成静态ip,这样子每次连接就很方便了。 FinalShell、VMware、CentOS7 进

    2024年02月08日
    浏览(44)
  • Linux CentOS7配置网络参数

    CentOS6及以前版本中主要使用ifconfig工具,查看、配置网络参数。后来又推荐使用ip命令查看配置网络参数。而centos7中,不再赞成使用ifconfig工具,取而代之的是nmcli工具,服务管理也是以systemctl工具取代了service,这些之前版本的工具虽然在centos7中还可以继续使用,只是出于版本

    2024年04月23日
    浏览(47)
  • Linux(Centos)下安装配置Maven

    如果需要通过使用wget命令,直接通过网络下载maven安装包时,需要在linux系统中安装wget命令。 yum -y install wget 在/usr/local/下创建一个maven文件: mkdir /usr/local/maven 切换到安装目录,即新建的文件中: cd /usr/local/maven 下载安装:wget https://archive.apache.org/dist/maven/maven-3/3.3.9/binaries/a

    2024年02月06日
    浏览(43)
  • Linux Centos系统 磁盘分区和文件系统管理 (深入理解)

    作者主页: 点击! Linux专栏:点击! 磁盘 在Linux系统中,磁盘是一种用于存储数据的物理设备,可以是传统的硬盘驱动器(HDD)或固态硬盘(SSD)。Linux将磁盘设备视为块设备,它们通常以文件形式表示在 /dev 目录下。 文件系统 在计算机系统中, 文件系统 定义了如何存储

    2024年03月15日
    浏览(52)
  • Linux之安装配置CentOS7+换源

    目录 一. 安装CentOS7 二. 配置CentOS7 三. 查看、设置IP地址         3.1 查看IP地址         3.2 设置IP地址  四. 使用Xshell连接Linux客户端         4.1 Xshell的下载         4.2 Xshell的使用  五. 换软件源 博主是在虚拟机中进行安装的,大家也可以在虚拟机中跟着尝试一下 第一步

    2024年01月25日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包