Linux CentOS stream 9 firewalld

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

随着互联网行业快速发展,服务器成为用户部署网络业务重要的网络工具,但随之而来的就是更密集的网络攻击,这给网站带来了很大的阻碍。防火墙作为保障网络安全的主要设备,可以很好的抵御网络攻击。

防火墙基本上使用硬件和软件两种机制来限制流量。可以使用硬件,如电路级网关、代理服务器、应用网关等,来提供深入的保护。亦可以使用软件,如包过滤等手段,允许/禁止流量。如同时使用软硬件进行防护,效果会更好。本文仅讨论软件机制。

从centos7开始,引入firewalld防火墙管理工具,引入区域概念。相较于原版本一直使用的iptables工具,有重大改变。

对于初次接触防火墙管理的读者,只需关注区域、服务、端口、目标和源等概念,全面使用firewalld工具;而对于使用linux老系统、低版本的读者,则只能尽快熟悉"五表五键"等概念,使用iptables管理工具。

PS:centos7系统默认没有安装iptables工具,想训练其使用,需要单独下载、安装。

防火墙底层原理

管理员在用户态,通过防火墙管理工具来设置防火墙的规则,配置在相关文件中。是否应用或启动,由iptables命令接口传递到内核netfilter模块。需要执行时,防火墙的规则由内核中的netfilter模块具体执行。

当数据包经过防火墙时,系统内核会将客户请求逐一与所设置的规则进行匹配,当匹配成功之后,由防火墙执行规则中定义的行为,如放行、阻止、丢弃等。

配置防火墙就是添加、删除、修改这些规则。例如,设置一条规则,拒绝所有的ICMP数据包,设置好该规则之后,该规则就会保存到内核的netfilter模块,之后所有的ICMP数据包都会被拒绝。

防火墙的规则,早期的CentOS 5/6操作系统默认使用iptables工具,从CentOS 7开始,默认使用firewalld工具。

两个管理工具的底层原理在于,iptables从细节入手,从物理层面设置规则,分析网络连接的各个层次,有表有链等。而firewalld从大处着手,从逻辑层面设置规则与要求。区域、目标、源是其核心概念,而关注端口、服务亦具独特视角。

一个系统中只能选择一项管理工具,不能同时使用。原因在于:iptables允许所有流量通过,只限制指定规则的流量;而firewalld则相反,禁止所有流量通过,只允许符合规则的才允许通过。二者原理与手段完全相左。本文主要讨论firewalld的概念与使用。

一、firewalld服务

在CentOS 7中,新引入了firewalld服务,取代了CentOS 6之前的iptables服务。

1.firewalld特点

比较而言,firewalld允许哪些服务可用,哪些端口可用,属于更高一层的防火墙。firewalld提供了支持网络区域所定义的网络链接以及接口安全等级的动态防火墙管理工具。它支持IPv4、IPv6防火墙设置以及以太网桥(在某些高级服务可能会用到,比如云计算),并且拥有两种配置模式:运行时(Runtime)模式和永久(Permanent)模式。

firewalld是一种动态的、用户友好的Linux防火墙管理工具。相较于传统的iptables,firewalld提供了更灵活、更方便的防火墙配置方式,使得管理员能够更容易地管理网络安全策略。

传统的iptables配置可能比较复杂,尤其是对于新手来说。firewalld通过引入概念化的“区域”、“服务”和“端口”等概念,简化了防火墙的配置。管理员无需深入了解iptables的规则语法,只需使用简单的命令和配置文件就能轻松管理防火墙。

2.firewalld核心概念

区域(Zones)

Firewalld引入了"区域"的概念,用于定义不同的网络区域,每个区域可以有不同的防火墙规则。常见的区域包括public、private、work、home等。默认情况下,网络接口会被分配到public区域。

服务(Services)

服务是一组预定义的规则,用于定义允许通过防火墙的特定网络服务。例如,HTTP、SSH等服务都可以被定义为服务,从而简化防火墙规则的配置。

端口(Ports)

端口用于标识网络通信中的特定应用程序。Firewalld允许你通过端口来控制流入或流出的数据包。可以打开或关闭特定端口,也可以定义自定义端口。

源和目标

firewalld允许你根据数据包的来源和目标来定义规则。这使得你可以限制特定IP地址或地址范围的访问,增强了网络安全性。

3.使用方式

a.firewall-cmd

firewall-cmd是firewalld的字符界面管理工具

可以通过远程连接工具,配置防火墙规则。

Linux CentOS stream 9 firewalld,centos stream9,bash命令,防火墙,linux,centos,运维,服务器,网络

b.firewall-config

firewall-config是firewalld的图形用户界面管理工具

在系统桌面中,命令行执行firewall-config命令,打开firewalld的图形用户界面管理工具。

Linux CentOS stream 9 firewalld,centos stream9,bash命令,防火墙,linux,centos,运维,服务器,网络

如用远程连接工具,如xshell,执行命令firewall-config,将不能打开图形管理工具,提示在windows系统中安装xmanager,可以直接打开该工具且配置防火墙规则。

c.修改firewalld配置文件

firewalld的配置文件分为主配置文件和区域/服务/端口配置文件。

主配置文件位于/etc/firewalld/firewalld.conf,包含一般的Firewalld设置,如默认区域等。

每个区域都有一个对应的配置文件,位于/etc/firewalld/zones/目录下。这些文件包含特定区域的防火墙规则。

服务配置文件位于/etc/firewalld/services/目录下,定义了预定义服务的防火墙规则。

4.管理工具关系

现有防火墙管理手段的基本框架如下,供参考。

Linux CentOS stream 9 firewalld,centos stream9,bash命令,防火墙,linux,centos,运维,服务器,网络

二、命令语法

在三种使用firewalld的方法中,我们重点讨论firewall-cmd。

1.启动firewalld

CentOS Stream 9操作系统默认开启了firewalld服务,用户可以使用systemctl命令查看firewalld服务状态。

2.命令格式

firewalld命令格式简单:

        firewall-cmd [options..]

firewall-cmd命令常用选项

参数

含义

--get-default-zone

查询默认的区域名称

--set-default-zone=区域名称

设置默认的区域,使其永久生效

--get-zones

显示可用的区域

--get--services

显示预先定义的服务

--get-active-zones

显示当前正在使用的区域与网卡名称

--add-source=

将源自此IP或子网的流量导向指定的区域

--remove-source

不再将源自此IP或子网的流量都导向某个指定区域

--add-service=服务名

设置默认区域允许该服务的流量

--add-port=端口号/协议

设置默认区域允许该端口的流量

--remove-service=服务名

设置默认区域不再允许该端口的流量

--add-interface=网卡名称

将源自该的所有流量都导向某个指定区域

--change-interface=网卡名称

将某个网卡与区域进行关联

--list-all

显示当前区域的配置参数、资源、端口以及服务等信息

--list-all-zones

显示所有区域的配置参数、资源、端口以及服务等信息

--reload

让永久生效的配置规则立即生效,并覆盖当前的配置规则

--panic-on

开启应急状况模式

--panic-off

关闭应急状况模式

3.常见区域

firewalld常见区域及相应策略规则

区域

策略

trusted

允许所有数据包

home

拒绝流入的流量,除非与流出的流量相关。若流量与ssh、mdns、ipp-client、amba-client、dhcpv6-client服务相关,则允许流量通过

internal

等同于home区域

work

拒绝流入的流量,除非与流出的流量相关,若流量与ssh、ipp-client、dhcpv6-client相关,则允许流量通过

public

拒绝流入的流量,除非与流出的流量相关,若流量与ssh、dhcpv6-client服务相关,则允许流量通过

external

拒绝流入的流量,除非与流出的流量相关,若流量与ssh服务相关,则允许流量通过

dmz

拒绝流入的流量,除非与流出的流量相关,若流量与ssh服务相关,则允许流量通过

block

拒绝流入的流量,除非与流出的流量相关(阻断)

drop

拒绝流入的流量,除非与流出的流量相关(丢弃)

4.帮助信息

firewalld命令众多,一般可以通过帮助查看详细使用方法。

Linux CentOS stream 9 firewalld,centos stream9,bash命令,防火墙,linux,centos,运维,服务器,网络

5.模式选择

firewalld配置的防火墙策略,分为运行时(Runtime)模式、永久(Permanent)模式两种。

默认的是运行时(Runtime)模式,配置的策略便会立即生效,但是,系统一旦重启就会失效。

永久生效(Permanent)模式,可以使firewalld配置永久生效,但是,此模式需要重启系统,或者手动执行firewall-cmd --reload命令,配置的策略才会立即生效。

三、使用技巧

1.命令应用别名

firewalld命令比较复杂,也不易录入,可以设置别名,加快录入,并确保正确无误。建议如下:

        alias f=firewall-cmd

        alias fz='firewall-cmd --zone=public'

        alias fp='firewall-cmd --permanent'

        alias fl='firewall-cmd --list-all'

        alias fr='firewall-cmd --reload'

Linux CentOS stream 9 firewalld,centos stream9,bash命令,防火墙,linux,centos,运维,服务器,网络

2.简写参数/选项

firewalld命令使用中,系统支持简写。这是系统一大特点,各版本都可应用。

一般是用单词的前三个字母。

        --state   简写  --st[ate]

        --masquerade  简写  --mas

        --permanent  简写  --per

        --list-service  简写  --list-ser

        --remove-masquerade  简写  --remove-mas

        --add-service  简写  --add-ser

Linux CentOS stream 9 firewalld,centos stream9,bash命令,防火墙,linux,centos,运维,服务器,网络

3.补全

正常使用firewall-cmd命令录入参数时,可以按Tab键补全命令,按两次,可以提示可选择的内容。

如使用别名,不再支持Tab键补全。

4.符号使用

a.空格

在使用firewalld命令中,可以用空格代替=号

Linux CentOS stream 9 firewalld,centos stream9,bash命令,防火墙,linux,centos,运维,服务器,网络

执行上述命令时,可用空格代替=号,功能相同。

Linux CentOS stream 9 firewalld,centos stream9,bash命令,防火墙,linux,centos,运维,服务器,网络

了解这一特性后,可用空格代替命令中的=号,录入时相对容易些。

b.双引号

在配置富规则时,根据习惯,可以加双引号。

配置一条富规则,拒绝192.168.100.2主机的ssh服务:

firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.100.2" service name="ssh" reject'

Linux CentOS stream 9 firewalld,centos stream9,bash命令,防火墙,linux,centos,运维,服务器,网络

第1次添加时命令中加双引号。查看效果后删除该富规则。

firewall-cmd --zone=public --remove-rich-rule='rule family="ipv4" source address="192.168.100.2" service name="ssh" reject'

Linux CentOS stream 9 firewalld,centos stream9,bash命令,防火墙,linux,centos,运维,服务器,网络

第2次添加时不加双引号,效果相同

firewall-cmd --zone=public --add-rich-rule='rule family=ipv4 source address=192.168.100.2 service name=ssh reject'

Linux CentOS stream 9 firewalld,centos stream9,bash命令,防火墙,linux,centos,运维,服务器,网络

c.=号

我们添加一个httpd服务,把=号替换为空格,结果相同

firewall-cmd  --add-service http

Linux CentOS stream 9 firewalld,centos stream9,bash命令,防火墙,linux,centos,运维,服务器,网络

d.-

添加多个端口时,开始端口加上“-”结束端口:

Linux CentOS stream 9 firewalld,centos stream9,bash命令,防火墙,linux,centos,运维,服务器,网络

四、案例

首先使用systemctl命令,查看firewalld(防火墙)的状态(status)、重新启动(restart)、临时关闭(stop)、临时开启(start)防火墙服务。

1.查看使用区域

查看firewalld服务当前所使用的区域

命令:

        firewall-cmd --get-default-zone

效果:

Linux CentOS stream 9 firewalld,centos stream9,bash命令,防火墙,linux,centos,运维,服务器,网络

2.查看所有信息

查看firewalld当前区域的配置参数、资源、服务等信息

命令:

        firewall-cmd --list-all

效果:

Linux CentOS stream 9 firewalld,centos stream9,bash命令,防火墙,linux,centos,运维,服务器,网络

3)查看单项信息

查看public区域是否允许https服务和FTP协议数据包通过

命令:

        firewall-cmd --zone=public --query-service=https

        firewall-cmd --zone=public --query-service=ftp

效果:

Linux CentOS stream 9 firewalld,centos stream9,bash命令,防火墙,linux,centos,运维,服务器,网络

4)永久设置

将https设置为永久允许,并立即生效

命令中添加选项--permanent,为永久设置;没有此选项,为临时设置。

命令:

        firewall-cmd --permanent --zone=public --add-service=https     #设置规则

        firewall-cmd –reload     #立即生效

        firewall-cmd --zone=public --query-service=https

效果:

Linux CentOS stream 9 firewalld,centos stream9,bash命令,防火墙,linux,centos,运维,服务器,网络

将http设置为永久允许,并立即生效

命令:

        f --zone public --add-ser http --per #--per位置任意

        f –rel #使规则生效,用命令别名和简写

        f --list-ser #查看所有允许的服务

效果:

Linux CentOS stream 9 firewalld,centos stream9,bash命令,防火墙,linux,centos,运维,服务器,网络

5)设置端口

将10000端口的数据包设置为允许,仅限当前有效

命令:

        firewall-cmd --list-port #默认查看当前的区域

        firewall-cmd --zone=public --add-port=10000/tcp

        firewall-cmd --list-port #不加--zone=public时,默认查看当前的区域

效果:

Linux CentOS stream 9 firewalld,centos stream9,bash命令,防火墙,linux,centos,运维,服务器,网络

6)设置富规则

配置一条富规则,拒绝172.168.1.0/24网段的所有用户访问本机的ssh服务

命令:

        firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source  address="192.168.1.0/24" service="ssh" reject'

效果:

Linux CentOS stream 9 firewalld,centos stream9,bash命令,防火墙,linux,centos,运维,服务器,网络

基础规则是设置前几项,而最后一项是富规则。文章来源地址https://www.toymoban.com/news/detail-830736.html

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

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

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

相关文章

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

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

    2024年02月03日
    浏览(51)
  • Linux centos7 bash编程训练

    训练编写一段代码,打印输出100之内的明7暗7,同时要求每5个数字打印在一行。 此项训练主要是考察for循环的使用,及条件判断表达式的设置和不同写法的应用。 常用的for循环有四种写法(如打印1-100的整数):         for i in $(seq 100);do echo $i;done         for i in `s

    2024年02月07日
    浏览(62)
  • Linux centos7 bash编程小训练

    训练要求: 求比一个数小的最大回文数 知识点: 一个数字正读反读都一样,我们称为回文数,如5、11、55、121、222等。 我们训练用bash编写一个小程序,由我们标准输入一个整数,计算机将显示出一个比这个数小的,最大的回文数。 比一个数小的回文数很多,最大的一个可

    2024年02月11日
    浏览(41)
  • Linux centos7 bash编程(小练习)

    这一个for循环嵌套的小练习,难度不大。提供一种写法,供参考: #!/bin/bash # 文件名:99table.sh # 打印输出九九乘法口诀表 for i in {1..9} do         for ((j=1;j=$i;j++))         do                  echo -ne \\\"$j*$i=$[j*i]t\\\"  #用制表符分隔,表格整齐         done         echo done 编写

    2024年02月10日
    浏览(52)
  • Linux centos7 bash编程——-求质数和

    训练项目 :使用函数求质数和。 定义一个函数IsPrime(),据此判断一个数是否为质数 由用户输入一个整数,求出比此数大的两个最小质数之和。 1.先在键盘上输入一个整数 2.求出比此数大的最小质数 3.再求出比此质数大的另一个最小质数 4.设置计数变量,等于2时退出求质数

    2024年02月10日
    浏览(41)
  • Linux centos7 bash编程(循环与条件判断)

    在编程训练中,循环结构与条件判断十分重要。 根据条件为真、为假,确定是否执行循环。 有时,根据条件的真假结果,决定执行哪些语句,这就是分支语句。 为了训练分支语句与循环语句,我们设计一个案例: 求一组数字:两数平方和为另一数平方 符合条件时,有三个

    2024年02月10日
    浏览(46)
  • Linux CentOS stream 9 安装docker

    在计算机技术中,虑拟化是一种资源管理技术,是将计算机的各种实体资源(CPU、内存、磁盘空间、网络适配器等),予以抽象、转换后呈现出来并可供分区、组合为一个或多个电脑配置环境。 目前,大多数服务器的容量的利用率不足15%,这导致服务器数量激增以及增加了复

    2024年02月21日
    浏览(39)
  • Linux centos7 bash编程(break和continue)

    在学习shell知识时,简单编程要从格式入手。 首先学习好单行注释和多行注释。 先学习简单整数的打印输出,主要学习 echo 命令,学习选项-e -n的使用。 下面的练习是常用的两个分支跳转程序: break 和 continue 。 #!/bin/bash # 这是 单行注释 # 单行注释的方法就是在每行行首添加

    2024年02月10日
    浏览(39)
  • linux centos7 bash中字符串反向输出

    给定一个字符串,如何反向(倒序)输出? 字符串反转的方法:a.对各个字符位置进行循环调换(从原字符串左边取出放在新字符串的右边;从原字符串右边取出放在新字符串的左边)。b.对各个字符由水平排列转为垂直排列(行变列),tac反转,再由垂直排列转为水平排列(列

    2024年02月10日
    浏览(45)
  • 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)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包