我的防火墙规则存储在哪里?

我的防火墙规则存储在哪里?

我在公司网络中有一台机器,其中设置了超过 17,000 个出站和入站防火墙过滤器。我可以使用 netsh 命令查看它们

netsh wfp show filters dir=OUT file=OutBoundFilters.xml

我有数千条这样的“InternetClientServer出站默认规则”过滤规则

<item>
    <filterKey>{3c45917d-eff9-4895-b36f-bec4efccbf95}</filterKey>
    <displayData>
        <name>InternetClientServer Outbound Default Rule</name>
        <description>InternetClientServer Outbound Default Rule</description>
    </displayData>
    <flags/>
    <providerKey>{4b153735-1049-4480-aab4-d1b9bdc03710}</providerKey>
    <providerData>
        <data>3303000000000000</data>
        <asString>3.......</asString>
    </providerData>
    <layerKey>FWPM_LAYER_ALE_AUTH_CONNECT_V4</layerKey>
    <subLayerKey>{b3cdd441-af90-41ba-a745-7c6008ff2300}</subLayerKey>
    <weight>
        <type>FWP_EMPTY</type>
    </weight>
    <filterCondition numItems="5">
        <item>
            <fieldKey>FWPM_CONDITION_ALE_PACKAGE_ID</fieldKey>
            <matchType>FWP_MATCH_NOT_EQUAL</matchType>
            <conditionValue>
                <type>FWP_SID</type>
                <sid>S-1-0-0</sid>
            </conditionValue>
        </item>
        <item>
            <fieldKey>FWPM_CONDITION_IP_REMOTE_ADDRESS</fieldKey>
            <matchType>FWP_MATCH_RANGE</matchType>
            <conditionValue>
                <type>FWP_RANGE_TYPE</type>
                <rangeValue>
                    <valueLow>
                        <type>FWP_UINT32</type>
                        <uint32>10.10.55.127</uint32>
                    </valueLow>
                    <valueHigh>
                        <type>FWP_UINT32</type>
                        <uint32>10.10.56.0</uint32>
                    </valueHigh>
                </rangeValue>
            </conditionValue>
        </item>
        <item>
            <fieldKey>FWPM_CONDITION_ORIGINAL_PROFILE_ID</fieldKey>
            <matchType>FWP_MATCH_EQUAL</matchType>
            <conditionValue>
                <type>FWP_UINT32</type>
                <uint32>3</uint32>
            </conditionValue>
        </item>
        <item>
            <fieldKey>FWPM_CONDITION_CURRENT_PROFILE_ID</fieldKey>
            <matchType>FWP_MATCH_EQUAL</matchType>
            <conditionValue>
                <type>FWP_UINT32</type>
                <uint32>3</uint32>
            </conditionValue>
        </item>
        <item>
            <fieldKey>FWPM_CONDITION_ALE_USER_ID</fieldKey>
            <matchType>FWP_MATCH_EQUAL</matchType>
            <conditionValue>
                <type>FWP_SECURITY_DESCRIPTOR_TYPE</type>
                <sd>O:LSD:(A;;CC;;;S-1-15-3-2)(A;;CC;;;WD)(A;;CC;;;AN)</sd>
            </conditionValue>
        </item>
    </filterCondition>
    <action>
        <type>FWP_ACTION_PERMIT</type>
        <filterType/>
    </action>
    <rawContext>0</rawContext>
    <reserved/>
    <filterId>391334</filterId>
    <effectiveWeight>
        <type>FWP_UINT64</type>
        <uint64>225180806002261888</uint64>
    </effectiveWeight>
</item>

这些规则适用于 Windows 防火墙中的基础过滤引擎。MMC UI 中没有太多防火墙规则,所以我有点搞不清楚这数千个过滤器来自哪里,以及哪条规则负责它们。

现在我想摆脱一些规则,或者至少找出它们的来源。我找到了注册表项

计算机\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\BFE\Parameters\Policy\Persistent\Filter

存在一些 guid,但我无法将过滤规则与某些特定注册表项关联。规则最终存储在哪里?注册表、文件还是通过组策略推送到注册表?我通过检查内核中的 CPU 消耗发现了这个问题,其中大量的 CPU 被花在

在此处输入图片描述 https://docs.microsoft.com/en-us/windows/win32/fwp/ale-re-authorization

CPU 占用率高的原因在于防火墙规则太多。我该如何进一步追踪呢?我曾尝试在启动时登录防火墙服务,因为防火墙服务消耗的内存更多,但我没有发现谁将数据输入防火墙服务。实际数据似乎以紧凑格式存储,不会显示在 CPU 分析中,这是一个令人讨厌的问题。

在此处输入图片描述

答案1

在注册表中。

防火墙规则存储在 Software\Policies\Microsoft\WindowsFirewall\FirewallRules 项下。该项下的每个值都是一条防火墙规则 -https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-gpfas/2efe0b76-7b4a-41ff-9050-1023f8196d16

答案2

我相信您可以在这里找到(许多)防火墙规则:

HKLM\SYSTEM\CurrentControlSet\Services\BFE\Parameters\Policy\Persistent\Filter

相关内容