AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1131787
Accepted
lonix
lonix
Asked: 2023-05-24 08:10:26 +0800 CST2023-05-24 08:10:26 +0800 CST 2023-05-24 08:10:26 +0800 CST

firewalld 中的 INPUT_direct 链是什么?

  • 772

在许多 firewalld 配置示例中,我看到提到了正常的INPUTiptables 链,以及一个名为INPUT_direct.

例如

$ sudo firewall-cmd --direct --add-rule ipv4 filter INPUT_direct 0 \
  # etc...

$ sudo firewall-cmd --direct --add-rule ipv4 filter INPUT_direct 1 \
  # etc...

有什么意义INPUT_direct?我必须用它代替吗INPUT?

INPUT_direct 0, , 等之间有什么区别INPUT_direct 1?

linux
  • 1 1 个回答
  • 38 Views

1 个回答

  • Voted
  1. Best Answer
    A.B
    2023-05-25T00:12:02+08:002023-05-25T00:12:02+08:00

    长话短说:

    • 如果确实需要直接规则,请始终使用INPUT而不是INPUT_direct:它将始终有效。

    • 如果您不知道要使用什么优先级值,只需为每个要添加的新直接规则将优先级值增加一个。


    该链(有时)由firewalld的直接规则接口使用。此接口/功能允许使用firewalld存储自定义iptables规则(并且即使firewalld的后端是nftables也总是iptables)并确保这些规则是任何数据包(在表和链中)的第一个看到的。通常只有在firewalld无法处理的情况下才应该使用它,包括firewalld的丰富语言。filterINPUT

    这是一个已弃用的功能:

    弃用

    直接接口已被弃用。它将在未来的版本中删除。它被策略取代,请参阅 firewalld.policies(5)。

    我不太确定它是否已被所有用途的政策所取代,无论如何......

    同样被弃用的是iptables后端。最近系统上的典型安装还包括/etc/firewalld/firewalld.conf:

    # FirewallBackend
    # Selects the firewall backend implementation.
    # Choices are:
    # - nftables (default)
    # - iptables (iptables, ip6tables, ebtables and ipset)
    # Note: The iptables backend is deprecated. It will be removed in a future
    # release.
    FirewallBackend=nftables
    

    firewalld可以使用iptables或nftables作为后端,但直接规则总是使用iptables。即使后端是nftables ,也没有nftables直接规则的概念:这可能是不推荐使用直接规则的原因之一。

    • 当后端是iptables时

      • firewalld创建INPUT_direct链并添加为INPUT跳转中的第一条规则,INPUT_direct因此它始终是第一个看到数据包的链(在INPUT路径中)。

      • 直接规则中对的任何引用INPUT都切换为对的引用INPUT_direct

    • 当后端是nftables时

      • firewalld不会自行创建任何iptables链或规则,但会确保其自己的nftables规则以iptables使用的优先级 +10 挂钩到 Netfilter。

      所以INPUT它挂钩的优先级为 10 而不是 0。这再次确保iptables做的任何事情都会先做

      • 引用内置链的直接规则没有改变。这个时候INPUT用。

    这种特殊性可以在 python 代码中看到fw_direct.py:

            # if nftables is in use, just put the direct rules in the chain
            # specified by the user. i.e. don't append _direct.
            if not self._fw.nftables_enabled \
               and backend.is_chain_builtin(ipv, table, chain):
                _chain = "%s_direct" % (chain)
    

    在这两种情况下,任何使用firewall-cmd --direct --add-rule ipv4 filter INPUT 0(后跟与不包括表和链的命令提供的语法相同的语法iptables)创建的任何内容都将在firewalld本身看到它之前被数据包看到。

    对于 prority 值:这会影响您要使用的规则的顺序,以防它们的顺序很重要。如果规则是由管理员选择的,规则不依赖于以前的规则,那么它的优先级并不重要,甚至可以保持不变。要确保在其他规则之后添加规则,请增加其优先级:

    如果您想确保一条规则将在另一条规则之后添加,请为第一个使用低优先级,为以下使用更高的优先级。

    • 1

相关问题

  • Linux 主机到主机迁移

  • 如何在 Linux 机器上找到有关硬件的详细信息?

  • 如何在 Linux 下监控每个进程的网络 I/O 使用情况?

  • 在 RHEL4 上修改 CUPS 中的现有打印机设置

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve