PortSet
代表一组侦听端口。
标记属性
相对于完整性监控规则所监控的实体的属性,以下属性是标记本身的 XML 属性。
属性 | 描述 | 必需 | 缺省值 | 允许值 |
onChange | 将受实时监控 | 否 | false | true、false |
实体集属性
以下是可由完整性监控规则监控的实体的属性。
- Created:仅限 Windows―需要安装 XP SP2+ 和 Server 2003 SP1+。由 GetExtendedTcpTable() 或 GetExtendedUdpTable() API 返回。指示创建此 TCP 或 UDP 链接的绑定操作发生的时间。
- Listeners:此协议、IP 地址和端口号组合上的活动侦听器数。这反映了绑定到且侦听给定端口的套接字数,该数量可能大于侦听端口的进程数(如果这些进程将多个套接字绑定到端口)。如果只有一个套接字绑定到给定端口,则该属性没有值。
- Path:仅限 Windows―需要安装 XP SP2+ 和 Server 2003 SP1+。指定拥有相应端口的模块的简短名称(如果可用)。在 Windows 上,该名称来自 GetOwnerModuleFromXxxEntry() API。根据 Microsoft 文档,最佳做法是将连接表条目解析为所有者模块。在少数情况下,返回的所有者模块名称可以是进程名称(如 "svchost.exe")、服务名称(如 "RPC")或组件名称(如 "timer.dll")。
- Process:(仅限 Windows―需要安装 XP SP2+ 和 Server 2003 SP1+。)指定拥有相应端口的模块的完整路径(如果可用)。在 Windows 上,该名称来自 GetOwnerModuleFromXxxEntry() API。根据 Microsoft 文档,最佳做法是将连接表条目解析为所有者模块。
- ProcessId:(仅限 Windows―需要安装 XP SP2+ 和 Server 2003 SP1+。)指定执行此端口绑定的进程的 PID。
- User:(仅限 Linux)。指定拥有相应端口的用户。
"Key" 的含义
Key 的格式如下:
<协议>/<IP 地址>/<端口>
例如:
tcp/172.14.207.94/80
udp/172.14.207.94/68
IPV6
如果 IP 地址为 IPv6,则 key 的格式相同,但协议为 TCP6 或 UDP6 且 IP 地址为 getnameinfo API 返回的 IPv6 地址时,key 的格式为:
tcp6/3ffe:1900:4545:3:200:f8ff:fe21:67cf/80
udp6/3ffe:1900:4545:3:200:f8ff:fe21:67cf/68
键的匹配
这不是层次结构键,因此 ** 不适用。使用 * 和 ? 可执行 Unix 风格的全局匹配。以下模式匹配 IP 地址为 72.14.207.90 到 72.14.207.99 上的端口 80:
*/72.14.207.9?/80
以下模式在 IP 地址 72.14.207.2、72.14.207.20 到 72.14.207.29 以及 72.14.207.200 到 72.14.207.255 上匹配端口 80:
*/72.14.207.2*/80
以下模式在任意 IP 上匹配端口 80。
*/80
以下示例将监控侦听端口中的所有更改,但忽略协议为 TCP 且地址格式为 IPv4 和 IPv6 的端口 80:
<PortSet>
<include key="*"/>
<exclude key="tcp*/*/80"/>
</PortSet>
子元素
- Include
- Exclude
有关包含和排除及其允许属性和子元素的一般描述,请参阅完整性监控规则语言。此处仅包含与该 EntitySet 类相关的包含和排除的特定信息。
PortSet 包含和排除的特殊属性:
可将端口的各种其他属性用于包含和排除功能测试。这些测试将某个值与端口的属性值作比较;请注意各种属性的平台支持―在平台(或甚至平台修订版)间并非所有属性均可用,因此在包含和排除标记中使用这些测试是受限制的。功能测试支持带有通配符 * 和 ? 的 Unix 全局样式,且不存在规范化的路径分隔符或其他字符—是与属性值的简单匹配。
Path
检查与端口的路径属性的通配符匹配。以下示例将监控由运行主 IIS 二进制文件的进程拥有的端口:
<PortSet>
<include path="*\system32\inetsrv\inetinfo.exe"/>
</PortSet>
Process
检查与端口的进程属性的通配符匹配。以下示例将监控由在 svchost.exe 或 outlook.* 二进制文件中运行的任何内容拥有的端口:
<PortSet>
<include process="svchost.exe"/>
<include process="outlook.*"/>
</PortSet>
User
检查与端口的用户属性的通配符匹配。以下示例将监控 Unix 系统上由超级用户(root 用户)拥有的端口:
<PortSet>
<include user="root"/>
</PortSet>