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

news2024/11/15 9:06:07


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


目录

    • 一、firewalld 简介
    • 二、firewalld 工作概念
      • 1、预定义区域(管理员可以自定义修改)
      • 2、预定义服务
    • 三、firewalld 配置方法
      • 1、通过firewall-cmd配置
      • 2、通过firewall图形界面配置
    • 四、配置 firewalld 的富规则
      • 1、富规则语法
      • 2、富规则相关命令
      • 3、实例


一、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

在这里插入图片描述

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

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

在这里插入图片描述

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

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

在这里插入图片描述

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

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

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

在这里插入图片描述

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

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

在这里插入图片描述

图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是丢弃,直到超时

制作成员: 何嘉愉
排版: 裕新
初审: 杨佳佳
复审: 二月二

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1131452.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

UUID转16字节数组(Java)

最近在写协议的时候&#xff0c;遇到需要将一个36字符长度的UUID转为长度为16的字节数组&#xff1b; 这样处理的话那我们就需要保证唯一性和可还原&#xff1b; 于是我使用了下面的方式&#xff1a; /*** uuid转16字节数组** param uuidStr* return*/private static byte[] …

国产服务器安装onlyoffice详细教程

1.通过docker安装onlyoffice 找一台能访问互联网的服务器下载onlyoffice镜像 sudo docker pull onlyoffice/documentserver查看镜像 docker images 启动onlyoffice docker run -itd \ --name onlyoffice1 \ --restart always \ -p 8099:80 \ -v /data/docker/onlyoffice/lo…

浅谈食品加工厂能耗情况分析平台解决方案

叶根胜 安科瑞电气股份有限公司 上海嘉定 201801 摘要&#xff1a;本文对某小型食品加工厂能源消耗进行了评价&#xff0c;分析了该工厂节能减排的潜力空间。有关节能减排效率的因素包括工厂的技术水准、管理方法和发展规模。依据研究提出对节能减排制度建设等方面的创新建议…

SpringCloud Alibaba【一】简单介绍

SpringCloud 提起微服务&#xff0c;不得不提 Spring Cloud 全家桶系列&#xff0c;Spring Cloud 是一个服务治理平台&#xff0c;是若干个框架的集合&#xff0c;提供了全套的分布式系统解决方案。包含了&#xff1a;服务注册与发现、配置中心、服务网关、智能路由、负载均衡…

生成式 AI 如何释放开发者的生产力?

生成式 AI 可以将程序员的开发速率提高两倍。技术管理者有望通过 AIGC 应用&#xff0c;大幅缩短四类关键开发任务的完成时间&#xff0c;进而提升组织生产力。 ——麦肯锡《通过生成式 AI 释放开发者生产力》 01 生成式 AI 将如何影响研发效能&#xff1f; 麦肯锡最近的一项实…

如果你要去拜访国外客户需要做哪些准备

由于产品不同&#xff0c;我们出国拜访客户的机会很少&#xff0c;一般出去都是受客户邀请&#xff0c;会同时带上设计师或者工程师&#xff0c;很少有独自出国的&#xff0c;毕竟样品是没法带的&#xff0c;最多只能带上画册和项目图。 想起几年前&#xff0c;公司要出国参展…

MIT6.5830 Lab1-GoDB实验记录(一)

MIT6.5830 Lab1-GoDB实验记录&#xff08;一&#xff09; – WhiteNights Site 标签&#xff1a;Golang, 数据库 了解接下来的实验要做什么。 实验目的 实现GoDB 从lab1开始一直到实验结束&#xff0c;我们的目的只有一个–实现GoDB&#xff0c;一个基础的数据库管理系统。而…

派克斯电脑全局改IP如何辅助捉妖游戏

捉妖游戏是一款非常受欢迎的手机游戏&#xff0c;玩家需要通过探索地图来捉到各种可爱的妖精。为了让游戏更具趣味性&#xff0c;玩家可以通过地图制作来设计自己的捉妖之旅。在这篇教程中&#xff0c;我们将向您展示如何使用电脑全局软件工具——派克斯&#xff0c;来制作捉妖…

echarts案例之仪表盘如何单独设置指针颜色?

一、此案例基于Vue3ts&#xff0c;效果展示&#xff1a; 二、单个属性的值&#xff1a; 1、单独设置指针的颜色 series&#xff1a;[ ...... { ...... itemStyle: { color: rgba(161, 255, 249, 1), }, ...... } ...... ] 2、设置最外圈数值的样式 series&#xff1a;[ ......…

【linux】安装openjdk8

openjdk的官网 点我就到官网 jdk8的网址 安装 yum install -y java-1.8.0-openjdk-devel 出现Complete! 就是安装完成。 验证 java -version选择对应的包 java-1.8.0-openjdk-devel 开发 Java 程序&#xff0c;请安装该java-1.8.0-openjdk-devel软件包。 java-1.8.0-op…

零代码开发、可视化界面!飞桨AI Studio星河社区带你玩转Prompt应用

号外号外&#xff01;飞桨AI Studio星河社区上线新版文心一言专区&#xff0c;帮助开发者完成一言插件&大模型应用开发&#xff0c;与此同时推出Prompt模板库供开发者使用。 零代码开发、可视化界面&#xff01;飞桨AI Studio星河社区带你玩转Prompt应用

使用Python的Flask框架开发验证码登录功能

目录 一、安装和配置Flask 二、生成验证码 三、处理用户输入和验证验证码 四、实现安全的用户认证 五、创建HTML模板 总结 验证码登录功能是现代Web应用程序中常见的安全特性之一&#xff0c;它有助于防止自动化机器人或恶意用户进行非法登录。在本文中&#xff0c;我们将…

windows添加定时任务命令

windows添加定时任务 一.schtasks命令 windows中常用来添加定时任务的命令 二.常用操作 1.添加定时任务 每天下午14:58:00执行test.bat脚本 C:\Users\DELL>schtasks /create /tn doc /tr C:\Users\DELL\Desktop\test.bat /sc DAILY /st 14:58:00 成功: 成功创建计划任务…

【期中复习】深度学习

文章目录 机器&#xff08;深度&#xff09;学习的四大核心要素为什么深度学习&#xff0c;不增加网络宽度黑盒模型的问题计算图线性神经网络梯度下降学习率优化方法softmax函数用于多分类交叉熵线性回归与softmax回归的对比为什么需要非线性激活函数感知机线性回归、softmax回…

mysql-面试50题-2

一、查询数据 学生表 Student create table Student(SId varchar(10),Sname varchar(10),Sage datetime,Ssex varchar(10)); insert into Student values(01 , 赵雷 , 1990-01-01 , 男); insert into Student values(02 , 钱电 , 1990-12-21 , 男); insert into Student v…

Unity3D 打包发布时生成文件到打包目录

有时候需要自己创建批处理文件或日志文件&#xff0c;在启动程序的同级目录使用&#xff0c;减少手动操作的时间和错误率。主要使用到的是OnPostprocessBuild方法。 1、在工程中的Editor文件夹下创建脚本 2、将文件放入Plugins的相关目录 3.脚本内容 using System.Collection…

视频号视频下载教程,为视频博主提供的PC电脑版下载方法

在如今这个数字时代&#xff0c;视频博主们成为了社交媒体平台上的明星。他们创作出精彩纷呈的视频内容&#xff0c;吸引着大量粉丝的关注和喜爱。然而&#xff0c;对于那些想要在自己的电脑上收藏这些视频的人来说&#xff0c;可能需要一些技巧和工具来实现。幸运的是&#xf…

SD-WAN专线:一带一路市场布局的商业加速器

刚刚结束的“一带一路”国际合作高峰论坛再次彰显了跨境合作的重要性。在这个全球化时代&#xff0c;随着一带一路倡议的不断推进&#xff0c;企业需要更加高效、稳定的网络连接来实现与参与国家的合作。在这一背景下&#xff0c;SD-WAN专线成为了加速一带一路合作的新选择&…

【C++】c++引用和小细节

文章目录 一、引用的特性&#xff1a;引用的实质引用权限使用场景引用和指针的区别 c引用不是定义了新的对象&#xff0c;而是对一个已有的对象起了一个别名&#xff0c;如鲁迅和周树人的关系&#xff0c;鲁迅是周树人的笔名&#xff0c;两者是一个东西&#xff0c;只是名字不同…