我的编程空间,编程开发者的网络收藏夹
学习永远不晚

centos7中firewall的使用-

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

centos7中firewall的使用-

给复杂防火墙规则配置“Rich Language" 语法

通过 “rich language” 语法,可以用比直接接口方式更易理解的方法建立复杂防火墙规则。此外,还能永久保留设置。这种语言使用关键词值,是 iptables 工具的抽象表示。这种语言可以用来配置分区,也仍然支持现行的配置方式。

4.5.15.1. 多语言命令的格式

在这个部分,所有命令都必须以 root 用户身份运行。增加一项规则的命令格式如下:

firewall-cmd [--zone=zone] --add-rich-rule='rule' [--timeout 9=seconds]

这样将为 zone 分区增加一项多语言规则 rule 。这个选项可以多次指定。如果分区被省略,将使用默认分区。如果出现超时,规则将在指定的秒数内被激活,并在之后被自动移除。

移除一项规则:

firewall-cmd [--zone=zone] --remove-rich-rule='rule'

这将为 zone 分区移除一项多语言规则 (rule) 。这个选项可以多次指定。如果分区被省略,将使用默认分区。

检查一项规则是否存在:

firewall-cmd [--zone=zone] --query-rich-rule='rule'

这将复查是否已经为区域(zone) 增加一个多语言规则 (rule) 。如果可用,屏幕会显示 yes,退出状态为 0; 否则,屏幕显示 no,退出状态为 1。如果省略 zone,默认区域将被使用。

使用在分区配置文件里的多语言表述的相关信息,可查阅 firewalld.zone(5) 说明。

4.5.15.2. 理解多规则结构

多规则命令的格式或结构如下所示:

rule [family="<rule family>"]
    [ source address="<address>" [invert="True"] ]
    [ destination address="<address>" [invert="True"] ]
    [ <element> ]
    [ log [prefix="<prefix text>"] [level="<log level>"] [limit value="rate/duration"] ]
    [ audit ]
    [ accept|reject|drop ]

一个规则是关联某个特定分区的,一个分区可以有几个规则。如果几个规则互相影响或者冲突,则执行和数据包相匹配的第一个规则。如果提供了规则系列,它可以是 ipv4 或者 ipv6 。规则系列把规则限定在 IPv4 或 IPv6 。如果没有提供规则系列, 将为 IPv4 和 IPv6 增加规则。如果源地址或者目标地址在一个规则中被使用,那么必须提供规则系列。端口转发也存在这种情况。

4.5.15.3. 理解多规则命令

4.5.15.4. 使用多规则登录命令

使用 Netfilter 登录目标可以完成登录,也可以使用审核目标。用 “zone_log” 格式命名的新链可以加入到所有分区,其中 zone 为该分区名。在 deny 链之前进行该项处理,以便获得适当的排序。根据规则的行为,整个规则或者部分规则会按照规则被分别放置在独立链中,如下所示:

zone_logzone_denyzone_allow

所有登录规则将放在 “zone_log” 链中,这会最先被解析。所有 reject 和 drop 规则都被放置在“zone_deny” 链,在登录链之后被解析。所有 accept 规则被放在 “zone_allow” 链里,它将在 deny 链之后被解析。如果规则中既包含了 log ,又有 deny 或者 allow ,各部分将被放在相应的链中。

4.5.15.4.1. 多规则登录命令使用示例 1

为认证报头协议 AH 使用新的IPv4 和 IPv6 连接:

rule protocol value="ah" accept
4.5.15.4.2. 多规则登录命令使用示例 2

同意新的 IPv4 和 IPv6 连接 FTP,并使用审核每分钟登录一次:

rule service name="ftp" log limit value="1/m" audit accept
4.5.15.4.3. 多规则登录命令使用示例 3

为 TFTP 协议同意来自 192.168.0.0/24 地址的新的 IPv4 连接,并且使用系统日志每分钟登录一次:

rule family="ipv4" source address="192.168.0.0/24" service name="tftp" log prefix="tftp" level="info" limit value="1/m" accept
4.5.15.4.4. 多规则登录命令使用示例 4

为 RADIUS 协议拒绝所有来自 1:2:3:4:6:: 的新 IPv6 连接,并每分钟在级别3登录。接受来自其他来源的新的 IPv6 连接:

rule family="ipv6" source address="1:2:3:4:6::" service name="radius" log prefix="dns" level="info" limit value="3/m" reject
rule family="ipv6" service name="radius" accept
4.5.15.4.5. 多规则登录命令使用示例 5

转发带有 TCP 协议的端口 4011 上的来自 1:2:3:4:6:: 的 IPv6 包,到端口 4012 上的 1::2:3:4:7

rule family="ipv6" source address="1:2:3:4:6::" forward-port to-addr="1::2:3:4:7" to-port="4012" protocol="tcp" port="4011"
4.5.15.4.6. 多规则登录命令使用示例 6

把一个源地址加入白名单,以便允许来自这个源地址的所有连接

rule family="ipv4" source address="192.168.2.2" accept

更多示例请查阅 firewalld.richlanguage(5) 说明页。

4.5.16. 锁定防火墙

如果以 root 身份运行本地应用或者服务(比如 libvirt ),就能更改防火墙设置。因为这个功能,管理员可以锁定防火墙设置,这样无论是不向锁定的白名单添加应用,还是仅允许添加应用,都可以要求防火墙更改。锁定设置默认不启动,如果启动,用户可以确保本地应用或者服务不需要对防火墙做任何设置更改。

4.5.16.1. 设置防火墙锁定

以 root 身份运行一个编辑器,把以下行增加到 /etc/firewalld/firewalld.conf 文件:

Lockdown=yes

以 root 身份使用以下命令重启防火墙:

~]# firewall-cmd --reload

欲在默认区内使用 imaps 服务,则以管理员账户,也就是 wheel 组中的用户(通常是系统的第一位用户),使用以下命令:

~]$ firewall-cmd --add-service=imapsError: ACCESS_DENIED: lockdown is enabled

欲使用 firewall-cmd ,以 root 身份输入以下命令:

~]# firewall-cmd --add-lockdown-whitelist-command='/usr/bin/python -Es /usr/bin/firewall-cmd*'

如果需要重启后会继续使用此设定,增加 --permanent 选项。

以 root 身份重启防火墙:

~]# firewall-cmd --reload

以管理员账户输入以下命令,尝试在默认区里再次启动 imaps 服务。您将被提示输入用户密码:

~]$ firewall-cmd --add-service=imaps

这样,命令成功运行。

4.5.16.2. 用命令行客户端配置锁定

查询锁定是否执行,以 root 身份输入以下命令:

~]# firewall-cmd --query-lockdown

如果是锁定状态,打印退出状态为 0 的 yes。否则,打印退出状态为 1 的 no

启动锁定,以 root 身份输入以下命令:

~]# firewall-cmd --lockdown-on

关闭锁定,以 root 身份输入以下命令:

~]# firewall-cmd --lockdown-off

4.5.16.3. 用命令行配置锁定白名单选项

锁定白名单可以包含命令,安全环境,用户和用户ID。如果白名单上输入的一个命令以一个星号 “*” 结束,那么所有以这个命令开始的命令行都匹配。如果没有 “*” ,那么包括参数的绝对命令必须匹配。

环境,是指一个正在运行的应用或者服务的安全 (SELinux) 环境。用以下命令获取一个正在运行的应用的环境:

~]$ ps -e --context

这个命令检查所有运行中的应用。通过 grep 工具将输出转移,得到需要的应用。比如:

~]$ ps -e --context | grep example_program

列出白名单上的所有命令行,以 root 身份输入以下命令:

~]# firewall-cmd --list-lockdown-whitelist-commands

增加一个command 命令到白名单,以 root 身份输入以下命令:

~]# firewall-cmd --add-lockdown-whitelist-command='/usr/bin/python -Es /usr/bin/command'

从白名单移除一个 command 命令,以 root 身份输入以下命令:

~]# firewall-cmd --remove-lockdown-whitelist-command='/usr/bin/python -Es /usr/bin/command'

查询 command 命令是否在白名单上,以 root 身份输入以下命令:

~]# firewall-cmd --query-lockdown-whitelist-command='/usr/bin/python -Es /usr/bin/command'

如果存在,显示退出状态为 0 的 yes ,否则,显示退出状态为 1 的 no 。

列出白名单上的所有安全环境,以 root 身份输入以下命令:

~]# firewall-cmd --list-lockdown-whitelist-contexts

增加一个环境 context 到白名单,以 root 身份输入以下命令:

~]# firewall-cmd --add-lockdown-whitelist-context=context

要使这个命令持续,增加 --permanent 选项。

从白名单移除一个环境 context ,以 root 身份输入以下命令:

~]# firewall-cmd --remove-lockdown-whitelist-context=context

要使这个命令持续,增加 --permanent 选项。

查询白名单上是否有环境 context ,以 root 身份输入以下命令:

~]# firewall-cmd --query-lockdown-whitelist-context=context

如果存在,显示退出状态为 0 的 yes ,否则,显示退出状态为 1 的 no 。

列出白名单上所有用户 ID ,以 root 身份输入以下命令:

~]# firewall-cmd --list-lockdown-whitelist-uids

增加一个用户 ID uid 到白名单,以 root 身份输入以下命令:

~]# firewall-cmd --add-lockdown-whitelist-uid=uid

要使这个命令持续,增加 --permanent 选项。

从白名单上移除一个用户 ID uid ,以root 身份输入以下命令:

~]# firewall-cmd --remove-lockdown-whitelist-uid=uid

要使这个命令持续,增加 --permanent 选项。

查询用户 ID uid 是否在白名单上,输入以下命令:

~]$ firewall-cmd --query-lockdown-whitelist-uid=uid

如果存在,显示退出状态为 0 的 yes ,否则,显示退出状态为 1 的 no 。

列出白名单上所有用户名,以 root 身份输入以下命令:

~]# firewall-cmd --list-lockdown-whitelist-users

增加一个用户名 user 到白名单,以 root 身份输入以下命令:

~]# firewall-cmd --add-lockdown-whitelist-user=user

要使这个命令持续,增加 --permanent 选项。

从白名单移除一个用户名 user ,以 root 身份输入以下命令:

~]# firewall-cmd --remove-lockdown-whitelist-user=user

要使这个命令持续,增加 --permanent 选项。

查询用户名 user 是否在白名单上,输入以下命令:

~]$ firewall-cmd --query-lockdown-whitelist-user=user

如果存在,显示退出状态为 0 的 yes ,否则,显示退出状态为 1 的 no 。

4.5.16.4. 用配置文件来配置锁定白名单选项

默认的白名单配置文件包括 NetworkManager 环境和 libvirt 的默认环境。列表里也有用户 ID 0。

<?xml version="1.0" encoding="utf-8"?>
<whitelist>
  <selinux context="system_u:system_r:NetworkManager_t:s0"/>
  <selinux context="system_u:system_r:virtd_t:s0-s0:c0.c1023"/>
  <user id="0"/>
</whitelist>

这里跟随了一个示例白名单配置文件,它启动用于 firewall-cmd 功能的所有命令,为名为 user、用户 ID 为 815 的用户:

<?xml version="1.0" encoding="utf-8"?>
<whitelist>
  <command name="/usr/bin/python -Es /bin/firewall-cmd*"/>
  <selinux context="system_u:system_r:NetworkManager_t:s0"/>
  <user id="815"/>
  <user name="user"/>
</whitelist>

在这个范例里,我们出示了 user id 和 user name 两样,但只需要一个即可。Python 是一个解释器,所以写在命令行的最前面。您也可以使用一个非常特别的命令,比如:

/usr/bin/python /bin/firewall-cmd --lockdown-on

在这例子里,只有 --lockdown-on 命令会被允许。

注意

在 Red Hat Enterprise Linux 7 中,所有功能现在都放在 /usr/bin/ 中,而且 /bin/ 目录被系统链接到 /usr/bin/ 目录。换言之,尽管以 root 身份运行的 firewall-cmd 路径可能解析到 /bin/firewall-cmd,但是现在会使用 /usr/bin/firewall-cmd 。所有新的脚本可以使用新的地址,但要意识到,如果以 root 身份运行的脚本被写入使用 /bin/firewall-cmd 路径,那么,命令路径除了是传统意义上仅用于非 root 用户的 /usr/bin/firewall-cmd 路径以外,还必须被加入白名单。

在一个命令的名字属性结尾的 “*” 意味着所有以此行开头的命令都匹配。如果没有 “*” ,那么包括参数的绝对命令必须匹配。

4.5.17. 附加资源

下列信息的来源提供了关于 firewalld 的附加资源。

4.5.17.1. 已安装的文档


centos7中firewall的使用-

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

centos7中firewall的使用-

给复杂防火墙规则配置“Rich Language" 语法通过 “rich language” 语法,可以用比直接接口方式更易理解的方法建立复杂防火墙规则。此外,还能永久保留设置。这种语言使用关键词值,是 iptables 工具的抽象表示。这
2023-01-31

CentOS7&nbsp;防火墙(firewall)的操作命令大全

目录安装:1、firewalld的基本使用2.配置firewalld-cmd3.信任级别,通过Zone的值指定4.firewall开启和关闭端口5.管理服务5.配置 IP 地址伪装6.端口转发6.systemctl是CentOS7的服务管理
2022-06-04

Linux firewall-cmd命令怎么使用

今天小编给大家分享一下Linux firewall-cmd命令怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Linu
2023-06-28

CentOS7中如何使用FirewallD

本篇内容主要讲解“CentOS7中如何使用FirewallD”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“CentOS7中如何使用FirewallD”吧!centos 7中防火墙Firewall
2023-06-28

Centos7中使用7zip压缩工具

7-Zip是一个支持7z(它实现了LZMA压缩算法,具有非常高的压缩比)、LZMA2、XZ、ZIP、Zip64、CAB、ARJ、GZIP、BZIP2、TAR、CPIO、RPM、ISO、大多数文件系统映像和DEB格式的文件归档器。RAR格式由
2023-06-05

CentOS7中hostnamectl命令如何使用

这期内容当中小编将会给大家带来有关CentOS7中hostnamectl命令如何使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。centos7 上在主机名变更新增了一个hostnamectl 指令 ,该
2023-06-10

CentOS7中mini使用ifconfig的方法是什么

这篇文章主要介绍“CentOS7中mini使用ifconfig的方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“CentOS7中mini使用ifconfig的方法是什么”文章能帮助大家解决问
2023-06-27

在Centos7使用superviso

置顶:推荐使用pip install supervisor安装最新版supervisor,yum install supervisor最高版本3.1.4,有很多bug名称解释supervisor:要安装的软件的名称。supervisord:
2023-01-31

Centos7中firewalld的基本使用方法是什么

本篇内容介绍了“Centos7中firewalld的基本使用方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!基本操作# system
2023-06-27

CentOS7的hostnamectl命令怎么使用

这篇文章主要讲解了“CentOS7的hostnamectl命令怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CentOS7的hostnamectl命令怎么使用”吧!用法# hostn
2023-06-28

Centos7中怎么安装并使用7-Zip

本篇内容介绍了“Centos7中怎么安装并使用7-Zip”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!7-Zip(7z解压软件)是一款完全免
2023-06-27

Centos7下怎么使用Unison

本文小编为大家详细介绍“Centos7下怎么使用Unison”,内容详细,步骤清晰,细节处理妥当,希望这篇“Centos7下怎么使用Unison”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。Unison是wind
2023-06-28

Linux系统怎么使用firewall限制或开放IP及端口

这篇文章主要为大家分析了Linux系统怎么使用firewall限制或开放IP及端口的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“Linux系统怎么使用fir
2023-06-28

centos7中怎么使用yum如何删除php

这篇文章主要介绍了centos7中怎么使用yum如何删除php的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇centos7中怎么使用yum如何删除php文章都会有所收获,下面我们一起来看看吧。
2023-01-31

centos7使用vim打造强大的pyt

编译升级vimcentos7.3自带的vim是7.4.*版本, YouCompleteMe需要Vim 7.4.1578+我这里编译安装vim8.0# 移除旧版本sudo yum remove vim -y# 安装必要组件sudo yum i
2023-01-31

Linux中ip、ss、journalctl和firewall-cmd命令的示例分析

这篇文章主要为大家展示了“Linux中ip、ss、journalctl和firewall-cmd命令的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux中ip、ss、journal
2023-06-16

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录