返回顶部
首页 > 资讯 > 操作系统 >Linux中如何配置firewalld规则
  • 401
分享到

Linux中如何配置firewalld规则

2023-06-27 18:06:52 401人浏览 安东尼
摘要

小编给大家分享一下linux中如何配置firewalld规则,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!防火墙对于控制进出 Linux 服务器的网络流量至关重要。它能够定义一组防火墙规则来控制主机上的传入流量。什么是Fi

小编给大家分享一下linux中如何配置firewalld规则,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

防火墙对于控制进出 Linux 服务器网络流量至关重要。它能够定义一组防火墙规则来控制主机上的传入流量。

Linux中如何配置firewalld规则

什么是FirewallD

“firewalld”是firewall daemon。它提供了一个动态管理的防火墙,带有一个非常强大的过滤系统,称为 Netfilter,由 Linux 内核提供。

FirewallD 使用zones和services的概念,而 iptables 使用chain和rules。与 iptables 相比,“FirewallD”提供了一种非常灵活的方式来处理防火墙管理。

每个zones都可以按照指定的标准进行配置,以根据你的要求接受或拒绝某些服务或端口,并且它可以与一个或多个网络接口相关联。默认区域为public区域。 [yijiFirewalld zones[/yiji] 以下命令列出 FirewallD 提供的zones。运行以下命令以列出zones:

[root@server1 ~]# firewall-cmd --get-zonesblock dmz drop external home internal public trusted work
  • block: 对于 IPv4,任何传入连接都会被 icmp-host-prohibited 消息拒绝,对于 IPv6 则是 icmp6-adm-prohibited。
  • **dmz:**应用于你的DMZ区域的计算机,这些计算机可公开访问,但对内部网络的访问受到限制。仅接受选定的传入连接。
  • **drop:**任何传入连接都将在没有任何通知的情况下被丢弃。只允许传出连接。
  • **external:**用于在系统中充当路由器时启用 NAT 伪装的外部网络。只允许选定的传入连接。
  • **home:**用于家庭网络。仅接受选定的传入连接。
  • **internal:**用于内部网络,网络上的其他系统通常是可信任的。仅接受选定的传入连接。
  • **public:**用于公共区域,仅接受选定的传入连接。
  • **trusted:**接受所有网络连接。
  • **work:**用于工作区域,同一网络上的其他计算机大多受信任。仅接受选定的传入连接。

Firewalld services

Firewalld 的service配置是预定义的服务。要列出可用的服务模块,请运行以下命令:

[root@server1 ~]# firewall-cmd --get-services
Linux中如何配置firewalld规则

Firewalld的临时设置和永久设置

Firewalld 使用两个独立的配置,即临时设置和永久设置:

  • 临时设置: 临时设置不会在系统重启时保持不变。这意味着临时设置不会自动保存到永久设置中。
  • 永久设置: 永久设置会存储在配置文件中,将在每次重新启动时加载并成为新的临时设置。

启用、禁用Firewalld

Firewalld默认安装在Centos7/8中,下面命令时如何启用或者停用firewalld:

# 启用Firewalld[root@server1 ~]# systemctl start firewalld# 禁用Firewalld[root@server1 ~]# systemctl stop firewalld# 开机启动[root@server1 ~]# systemctl enable firewlald# 禁止开机启动[root@server1 ~]# systemctl disable firewalld

查看firewlald的状态:

[root@server1 ~]# systemctl status firewalld或者[root@server1 ~]# firewall-cmd --staterunning
Linux中如何配置firewalld规则

zone管理

Firewalld 为每个区域提供不同级别的安全性,公共区域设置为默认区域。下面命令查看默认区域:

[root@server1 ~]# firewall-cmd --get-default-zonepublic

下面命令查看默认区域的配置:

[root@server1 ~]# firewall-cmd --list-allpublic (active) target: default icmp-block-inversion: no interfaces: ens160 sources: services: cockpit dhcpv6-client ntp ssh ports: 2222/tcp protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:

Linux中如何配置firewalld规则 通过使用选项”–zone”和“–change-interface”的组合,可以轻松更改zone中的接口。例如,要将“ens33”接口分配给“home”区域,请运行以下命令:

[root@server1 ~]# firewall-cmd --zone=home --change-interface=ens33success[root@server1 ~]# firewall-cmd --zone=home --list-allhome (active) target: default icmp-block-inversion: no interfaces: ens33 sources: services: cockpit dhcpv6-client mdns samba-client ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:

Linux中如何配置firewalld规则 要查看所有活动的zone,请运行以下命令:

[root@server1 ~]# firewall-cmd --get-active-zoneshome interfaces: ens33public interfaces: ens160

Linux中如何配置firewalld规则 要更改默认zone,请使用以下命令。例如,要将默认区域更改为 home,请运行以下命令:

[root@server1 ~]# firewall-cmd --set-default-zone=home

要找出与 ens160 接口关联的区域,请运行以下命令:

[root@server1 ~]# firewall-cmd --get-zone-of-interface=ens160public

要创建新zone,请使用以下命令。例如,要创建一个名为“test”的新区域,并永久生效,请运行:

[root@server1 ~]# firewall-cmd --permanent --new-zone=testsuccess[root@server1 ~]# firewall-cmd --reloadsuccess

开放和关闭端口

打开特定端口允许用户从外部访问系统,这代表了安全风险。因此,仅在必要时为某些服务打开所需的端口。

要获取当前区域中开放的端口列表,请运行以下命令:

[root@server1 ~]# firewall-cmd --list-ports2222/tcp

下面实例将特定端口永久添加到列表中:

[root@server1 ~]# firewall-cmd --permanent --add-port=8080/tcpsuccess[root@server1 ~]# firewall-cmd --reloadsuccess

同样,要删除特定端口,请运行以下命令:

[root@server1 ~]# firewall-cmd --remove-port=8080/tcpsuccess

可以使用以下命令每次确认端口是否已添加或删除:

[root@server1 ~]# firewall-cmd --list-ports

如果要为特定区域开放端口,例如,以下命令将为 home 区域打开端口 80:

[root@server1 ~]# firewall-cmd --permanent --zone=home --add-port=80/tcpsuccess[root@server1 ~]# firewall-cmd --reloadsuccess

Linux中如何配置firewalld规则 同样,要从开放的端口中删除特定区域的特定端口,请运行:

[root@server1 ~]# firewall-cmd --zone=home --remove-port=80/tcpsuccess

添加和移除服务类型

Firewalld 服务配置是预定义的服务,如果启用了服务,则会自动加载。使用预定义服务使用户可以更轻松地启用和禁用对服务的访问。

预定义的服务配置文件位于/usr/lib/firewalld/services目录中。

Firewalld的服务,你不需要记住任何端口,并且可以一次性允许所有端口。

例如,执行以下命令允许 samba 服务。samba 服务需要启用以下一组端口:“139/tcp 和 445/tcp”以及“137/udp 和 138/udp”。

添加’samba’服务后,所有端口都会同时激活,因为所有端口信息都在samba服务配置中。下面是Firewalld中预定义的samba的服务配置文件:

[root@server1 ~]# cat /usr/lib/firewalld/services/samba.xml

Linux中如何配置firewalld规则 下面是在home区域放行samba服务:

[root@server1 ~]# firewall-cmd --permanent --zone=home --add-service=sambasuccess[root@server1 ~]# firewall-cmd --reloadsuccess

要获取有关 samba 服务的更多信息,请运行以下命令:

[root@server1 ~]# firewall-cmd --info-service=sambasamba ports: 137/udp 138/udp 139/tcp 445/tcp protocols: source-ports: modules: netbiOS-ns destination:

要一次添加多个服务,请执行以下命令。例如,要添加 Httphttps 服务,请运行以下命令:

[root@server1 ~]# firewall-cmd --permanent --zone=home --add-service={http,https}success[root@server1 ~]# firewall-cmd --reloadsuccess
Linux中如何配置firewalld规则

设置端口转发

端口转发是一种将任何传入网络流量从一个端口转发到另一个内部端口或另一台机器上的外部端口的方法。

注意:端口转发必须开启IP伪装。使用下面显示的命令为external区域启用伪装。

[root@server1 ~]# firewall-cmd --permanent --zone=external --add-masquerade

要检查是否为区域启用了 IP 伪装,请运行以下命令:

[root@server1 ~]# firewall-cmd --zone=external --query-masqueradeyes

显示yes,表示已经开启伪装。

要将端口重定向到同一系统上的另一个端口,例如:将80端口的所有数据包重定向到8080端口:

[root@server1 ~]# firewall-cmd --permanent --zone=external --add-forward-port=port=80:proto=tcp:toport=8080success

如果要将流量转发到另一台服务器,例如:将所有 80 端口的数据包重定向到 IP 为 10.0.0.75 的服务器上的 8080 端口:

[root@server1 ~]# firewall-cmd --permanent --zone=external --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=10.0.0.75success

例如,要允许来自特定源地址的流量,仅允许从特定子网连接到服务器,请运行以下命令:

[root@server1 ~]# firewall-cmd --permanent --zone=home --add-source=192.168.1.0/24success

富规则设置

富规则允许使用易于理解的命令创建更复杂的防火墙规则,但丰富的规则很难记住,可以查看手册man firewalld.richlanguage并找到示例。

富规则的一般规则结构如下:rule [source] [destination] service|port|protocol|icmp-block|icmp-type|masquerade|forward-port|source-port [log] [audit] [accept|reject|drop|mark]

要允许来自地址 192.168.0.0/24 的访问,请运行以下命令:

[root@server1 ~]# firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.0.0/24" accept'success

Linux中如何配置firewalld规则 要允许来自地址 192.168.0.0/24 的连接访问 ssh 服务,请运行以下命令:

[root@server1 ~]# firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.0.0/24" service name="ssh" log prefix="ssh" level="info" accept'success

Linux中如何配置firewalld规则 要拒绝来自192.168.10.0/24的流量访问ssh服务,请运行以下命令:

[root@server1 ~]# firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.10.0/24" port port=22 protocol=tcp reject'success

Linux中如何配置firewalld规则 要删除任何富规则,请使用--remove-rich-rule选项,下面使用--list-rich-rules列出富规则,然后删除掉富规则:

[root@server1 ~]# firewall-cmd --zone=public --list-rich-rulesrule family="ipv4" source address="192.168.0.0/24" acceptrule family="ipv4" source address="192.168.0.0/24" service name="ssh" log prefix="ssh" level="info" acceptrule family="ipv4" source address="192.168.10.0/24" port port="22" protocol="tcp" reject[root@server1 ~]# firewall-cmd --zone=public --remove-rich-rule='rule family="ipv4" source address="192.168.0.0/24" accept'success[root@server1 ~]# firewall-cmd --zone=public --remove-rich-rule='rule family="ipv4" source address="192.168.0.0/24" service name="ssh" log prefix="ssh" level="info" accept'success[root@server1 ~]# firewall-cmd --zone=public --remove-rich-rule='rule family="ipv4" source address="192.168.10.0/24" port port="22" protocol="tcp" reject'success
Linux中如何配置firewalld规则

Firewalld的Direct规则

Direct规则类似于 iptables 命令,对于熟悉 iptables 命令的用户很有用。或者,您可以编辑/etc/firewalld/direct.xml文件中的规则并重新加载防火墙以激活这些规则。Direct规则主要由服务或应用程序用来添加特定的防火墙规则。

以下Direct规则将在服务器上打开端口 8080:

[root@server1 ~]# firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p tcp --dport 8081 -j ACCEPTsuccess[root@server1 ~]# firewall-cmd --reloadsuccess

要列出当前区域中的Direct规则,请运行:

[root@server1 ~]# firewall-cmd --direct --get-all-rulesipv4 filter INPUT 0 -p tcp --dport 8080 -j ACCEPTipv4 filter INPUT 0 -p tcp --dport 8081 -j ACCEPT

Linux中如何配置firewalld规则 使用下面命令删除Direct规则:

[root@server1 ~]# firewall-cmd --direct --get-all-rulesipv4 filter INPUT 0 -p tcp --dport 8080 -j ACCEPTipv4 filter INPUT 0 -p tcp --dport 8081 -j ACCEPT[root@server1 ~]# firewall-cmd --permanent --direct --remove-rule ipv4 filter INPUT 0 -p tcp --dport 8080 -j ACCEPTsuccess[root@server1 ~]# firewall-cmd --reloadsuccess

Linux中如何配置firewalld规则 如何清空一个表的链?下面是语法和实例:

firewall-cmd --direct --remove-rules ipv4 [table] [chain][root@server1 ~]# firewall-cmd --permanent --direct --remove-rules ipv4 filter INPUTsuccess[root@server1 ~]# firewall-cmd --reloadsuccess[root@server1 ~]# firewall-cmd --direct --get-all-rules
Linux中如何配置firewalld规则

看完了这篇文章,相信你对“Linux中如何配置firewalld规则”有了一定的了解,如果想了解更多相关知识,欢迎关注编程网操作系统频道,感谢各位的阅读!

--结束END--

本文标题: Linux中如何配置firewalld规则

本文链接: https://lsjlt.com/news/312718.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Linux中如何配置firewalld规则
    小编给大家分享一下Linux中如何配置firewalld规则,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!防火墙对于控制进出 Linux 服务器的网络流量至关重要。它能够定义一组防火墙规则来控制主机上的传入流量。什么是Fi...
    99+
    2023-06-27
  • linux怎么查看firewalld规则
    在Linux中,可以使用以下命令来查看firewalld的规则: 查看所有规则: sudo firewall-cmd --lis...
    99+
    2023-10-24
    linux
  • linux的iptable规则配置-删除规则
    1、打开linux终端; 2、在终端命令行中输入“iptables -L -n”命令查看出当前的防火墙规则; 3、输入“iptables -L -n –line-number”命令查看到每个规则chain的序列号; 4、根据序列号删除...
    99+
    2023-09-02
    linux 服务器 运维 Powered by 金山文档
  • nginx伪静态规则如何配置
    要配置nginx的伪静态规则,可以在nginx的配置文件中使用location指令来实现。例如,如果你想要将所有以.html结尾的U...
    99+
    2023-08-15
    nginx
  • 如何在Zabbix中配置告警升级规则
    在Zabbix中配置告警升级规则,可以通过以下步骤实现: 登录到Zabbix的Web界面,进入“Configuration”菜单...
    99+
    2024-04-02
  • Linux 防火墙配置(iptables和firewalld)
    目录 防火墙基本概念 Iptables讲解 Iptables表 Iptables规则链 Iptables控制类型 Iptables命令配置 firewalld讲解 Firewalld区域概念 Firewalld两种配置方法 firewall...
    99+
    2023-08-31
    linux 运维 服务器
  • Nginx——SeverName配置规则
    摘要 Nginx作为一个服务器,具有众多转发规则。工作中用到使用Nginx配置一个端口下多个路径转发到html下不同目录。目前知道的有三种方法可以实现,分别是使用root+location、alias、try_files。 一、同一端口的路...
    99+
    2023-09-02
    nginx 运维 服务器
  • 详述Linux中Firewalld高级配置的使用
    IP伪装与端口转发 Firewalld支持两种类型的网络地址转换 IP地址伪装(masquerade) 可以实现局域网多个地址共享单一公网地址上网 IP地址伪装仅支持IPv4,不支持IPv6 默认ext...
    99+
    2022-06-04
    Linux Firewalld高级配置 Linux Firewalld
  • Nginx如何实现URL重写规则配置
    这篇文章主要介绍了Nginx如何实现URL重写规则配置,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。rewrite模块介绍nginx的重写模块是一个简单的正则表达式匹配与一个...
    99+
    2023-06-04
  • linux中udev的匹配规则是什么
    Linux中udev的匹配规则是通过设备的属性来匹配设备。udev使用一系列规则来确定哪个设备应该由哪个设备驱动程序处理。这些规则可...
    99+
    2024-03-05
    linux
  • 使用iptable和Firewalld工具来管理Linux防火墙连接规则
    防火墙 防火墙是一套规则。当数据包进入或离开受保护的网络空间时,将根据防火墙规则测试数据包的内容(特别是有关其来源、目标和计划使用的协议的信息),以确定是否应该允许数据包通过。下面是一个简单的例子: 防火墙可以根据协...
    99+
    2022-06-04
    linux 防火墙 linux 防火墙iptable和Firewalld linux 防火墙连接规则
  • linux中iptables如何删除一条规则
    linux中iptables删除一条规则的方法:1、打开linux终端;2、在终端命令行中输入“iptables -L -n”命令查看出当前的防火墙规则;3、输入“iptables -L -n --line-number”命令查看到每个规则...
    99+
    2024-04-02
  • html中如何设置不规则图形
    这篇文章将为大家详细讲解有关html中如何设置不规则图形,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。   声明图形   我们需要使用shape-outside 属性...
    99+
    2024-04-02
  • 在OpenBSD中如何配置网络服务和防火墙规则
    在OpenBSD中配置网络服务和防火墙规则可以通过编辑相应的配置文件来实现。以下是一些常见的配置步骤: 配置网络服务:OpenB...
    99+
    2024-04-02
  • linux系统中怎么设置iptables规则
    这篇文章将为大家详细讲解有关linux系统中怎么设置iptables规则,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。iptables -L查看filter表的iptables规则,包括所有...
    99+
    2023-06-05
  • linux中如何增加iptables防火墙规则
    本篇内容主要讲解“linux中如何增加iptables防火墙规则”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux中如何增加iptables防火墙规则”吧!iptables设置 ...
    99+
    2023-07-05
  • prometheus怎么配置告警规则
    要配置Prometheus的告警规则,需要编辑Prometheus的配置文件(通常是prometheus.yml),并在其中定义告警...
    99+
    2024-03-14
    prometheus
  • Linux下双网卡Firewalld的配置流程(推荐)
    实验室拟态存储的项目需要通过LVS-NAT模式通过LVS服务器来区隔内外网的服务,所以安全防护的重心则落在了LVS服务器之上。笔者最终选择通过firewalld放行端口的方式来实现需求,由于firewall与传统linu...
    99+
    2022-06-04
    linux双网卡配置 linux firewalld
  • 如何为 Discuz! X2 配置伪静态规则[超详细]
    URL 静态化是一个有利于搜索引擎的设置,通过 URL 静态化,达到原来是动态的 php 页面转换为静态化的 HTML 页面,可以提高搜索引擎抓取,当然,这里的静态化是一种假静态,目的只是提高搜索引擎的搜索量,下面主要介...
    99+
    2022-06-12
    Discuz 伪静态
  • Prometheus系统的告警规则如何配置和管理
    Prometheus系统的告警规则可以通过配置文件或者Prometheus Web UI来进行配置和管理。 配置文件方式: 在Pr...
    99+
    2024-03-04
    Prometheus
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作