Iptables 集成

编辑

版本

1.17.0 (查看全部)

兼容的 Kibana 版本

8.7.1 或更高版本

支持的无服务器项目类型
这是什么?

安全
可观测性

订阅级别
这是什么?

基础

支持级别
这是什么?

Elastic

这是用于 iptablesip6tables 日志的集成。它解析通过 syslog (UDP) 在网络上接收、从文件读取或从 journald 读取的日志。此外,它还理解某些 Ubiquiti 防火墙添加的前缀,其中包括规则集名称、规则编号以及对流量执行的操作(允许/拒绝)。

默认情况下,该模块配置为在端口 9001 上使用 udp 输入运行。但是,它也可以配置为从文件路径或 journald 读取。

日志

编辑

Iptables 日志

编辑

这是 Iptables 的 log 数据集。

示例

log 的示例事件如下所示

{
    "@timestamp": "2021-03-12T14:10:18.000Z",
    "agent": {
        "ephemeral_id": "9d70b3da-b816-48af-9c86-8e6c6a5bf0fb",
        "id": "4e644293-3984-48e7-a63c-00be2338b58d",
        "name": "docker-fleet-agent",
        "type": "filebeat",
        "version": "8.8.0"
    },
    "data_stream": {
        "dataset": "iptables.log",
        "namespace": "ep",
        "type": "logs"
    },
    "destination": {
        "ip": "10.4.0.5",
        "mac": "90-10-20-76-8D-20",
        "port": 443
    },
    "ecs": {
        "version": "8.11.0"
    },
    "elastic_agent": {
        "id": "4e644293-3984-48e7-a63c-00be2338b58d",
        "snapshot": true,
        "version": "8.8.0"
    },
    "event": {
        "action": "drop",
        "agent_id_status": "verified",
        "category": [
            "network"
        ],
        "created": "2023-04-25T19:13:39.793Z",
        "dataset": "iptables.log",
        "ingested": "2023-04-25T19:13:40Z",
        "kind": "event",
        "timezone": "+00:00",
        "type": [
            "denied",
            "connection"
        ]
    },
    "input": {
        "type": "udp"
    },
    "iptables": {
        "ether_type": 2048,
        "fragment_flags": [
            "DF"
        ],
        "id": 0,
        "input_device": "eth0",
        "length": 52,
        "output_device": "",
        "precedence_bits": 0,
        "tcp": {
            "flags": [
                "ACK"
            ],
            "reserved_bits": 0,
            "window": 2853
        },
        "tos": 0,
        "ttl": 63,
        "ubiquiti": {
            "input_zone": "wan",
            "output_zone": "lan",
            "rule_number": "default",
            "rule_set": "wan-lan"
        }
    },
    "log": {
        "source": {
            "address": "172.18.0.5:39990"
        },
        "syslog": {
            "priority": 6
        }
    },
    "message": "Hostname kernel: [wan-lan-default-D]IN=eth0 OUT= MAC=90:10:20:76:8d:20:90:10:65:29:b6:2a:08:00 SRC=67.43.156.15 DST=10.4.0.5 LEN=52 TOS=0x00 PREC=0x00 TTL=63 ID=0 DF PROTO=TCP SPT=38842 DPT=443 WINDOW=2853 RES=0x00 ACK URGP=0",
    "network": {
        "community_id": "1:jc/7ajWLmm0xdpLA7mOyvas9TyE=",
        "transport": "tcp",
        "type": "ipv4"
    },
    "observer": {
        "egress": {
            "zone": "lan"
        },
        "ingress": {
            "zone": "wan"
        },
        "name": "Hostname"
    },
    "related": {
        "ip": [
            "67.43.156.15",
            "10.4.0.5"
        ]
    },
    "rule": {
        "id": "default",
        "name": "wan-lan"
    },
    "source": {
        "as": {
            "number": 35908
        },
        "geo": {
            "continent_name": "Asia",
            "country_iso_code": "BT",
            "country_name": "Bhutan",
            "location": {
                "lat": 27.5,
                "lon": 90.5
            }
        },
        "ip": "67.43.156.15",
        "mac": "90-10-65-29-B6-2A",
        "port": 38842
    },
    "tags": [
        "iptables-log",
        "forwarded"
    ]
}
导出的字段
字段 描述 类型

@timestamp

事件时间戳。

日期

cloud.account.id

用于在多租户环境中标识不同实体的云帐户或组织 ID。示例:AWS 帐户 ID、Google Cloud ORG ID 或其他唯一标识符。

keyword

cloud.availability_zone

此主机运行所在的可用区。

keyword

cloud.image.id

云实例的镜像 ID。

keyword

cloud.instance.id

主机机器的实例 ID。

keyword

cloud.instance.name

主机机器的实例名称。

keyword

cloud.machine.type

主机机器的机器类型。

keyword

cloud.project.id

Google Cloud 中项目的名称。

keyword

cloud.provider

云提供商的名称。示例值包括 aws、azure、gcp 或 digitalocean。

keyword

cloud.region

此主机运行所在的区域。

keyword

container.id

唯一的容器 ID。

keyword

container.image.name

构建容器所基于的镜像的名称。

keyword

container.labels

镜像标签。

object

container.name

容器名称。

keyword

data_stream.dataset

数据流数据集。

constant_keyword

data_stream.namespace

数据流命名空间。

constant_keyword

data_stream.type

数据流类型。

constant_keyword

destination.as.number

分配给自治系统的唯一编号。自治系统号 (ASN) 唯一标识 Internet 上的每个网络。

long

destination.as.organization.name

组织名称。

keyword

destination.as.organization.name.text

destination.as.organization.name 的多字段。

match_only_text

destination.geo.city_name

城市名称。

keyword

destination.geo.continent_name

洲的名称。

keyword

destination.geo.country_iso_code

国家/地区的 ISO 代码。

keyword

destination.geo.country_name

国家/地区名称。

keyword

destination.geo.location

经度和纬度。

geo_point

destination.geo.region_iso_code

区域 ISO 代码。

keyword

destination.geo.region_name

区域名称。

keyword

destination.ip

目标 IP 地址(IPv4 或 IPv6)。

ip

destination.mac

目标的 MAC 地址。建议使用 RFC 7042 中的表示法格式:每个八位字节(即 8 位字节)用两个 [大写] 十六进制数字表示,以无符号整数形式给出八位字节的值。连续的八位字节用连字符分隔。

keyword

destination.port

目标的端口。

long

ecs.version

此事件符合的 ECS 版本。ecs.version 是一个必需字段,必须存在于所有事件中。在跨多个索引进行查询时(这些索引可能符合略有不同的 ECS 版本),此字段允许集成调整到事件的模式版本。

keyword

event.created

event.created 包含代理或管道首次读取事件的日期/时间。此字段与 @timestamp 不同,因为 @timestamp 通常包含从原始事件中提取的时间。在大多数情况下,这两个时间戳会略有不同。可以使用此差异来计算源生成事件与代理首次处理事件之间的时间延迟。这可以用来监视代理或管道跟上事件源的能力。如果两个时间戳相同,则应使用 @timestamp

日期

event.dataset

事件数据集

constant_keyword

event.ingested

事件到达中央数据存储的时间戳。这与 @timestamp 不同,后者是事件最初发生的时间。它也与 event.created 不同,后者旨在捕获代理首次看到事件的时间。在正常情况下,假设没有篡改,时间戳在时间上应如下所示:@timestamp < event.created < event.ingested

日期

event.module

事件模块

constant_keyword

event.outcome

这是四个 ECS 分类字段之一,表示 ECS 类别层次结构中的最低级别。event.outcome 仅表示从生成事件的实体的角度来看,该事件是表示成功还是失败。请注意,当单个事务在多个事件中描述时,每个事件可能会根据其角度填充不同的 event.outcome 值。还要注意,在复合事件(包含多个逻辑事件的单个事件)的情况下,此字段应填充最能捕获事件生产者角度的整体成功或失败的值。此外,并非所有事件都具有关联的结果。例如,通常不会为指标事件、event.type:info 的事件或任何结果不符合逻辑的事件填充此字段。

keyword

host.architecture

操作系统架构。

keyword

host.containerized

如果主机是容器。

boolean

host.domain

主机所属域的名称。例如,在 Windows 上,这可以是主机的 Active Directory 域或 NetBIOS 域名。对于 Linux,这可以是主机 LDAP 提供程序的域。

keyword

host.hostname

主机的 hostname。它通常包含主机上 hostname 命令返回的内容。

keyword

host.id

唯一的主机 ID。由于 hostname 并非始终是唯一的,请使用在您的环境中具有意义的值。示例:当前使用的 beat.name

keyword

host.ip

主机 IP 地址。

ip

host.mac

主机 MAC 地址。

keyword

host.name

主机的名称。它可以包含 Unix 系统上 hostname 返回的内容、完全限定的域名或用户指定的名称。发送者决定要使用哪个值。

keyword

host.os.build

操作系统构建信息。

keyword

host.os.codename

操作系统代码名称(如果有)。

keyword

host.os.family

操作系统系列(例如 redhat、debian、freebsd、windows)。

keyword

host.os.kernel

操作系统内核版本(作为原始字符串)。

keyword

host.os.name

操作系统名称(不包含版本)。

keyword

host.os.name.text

host.os.name 的多字段。

text

host.os.platform

操作系统平台(例如 centos、ubuntu、windows)。

keyword

host.os.version

操作系统版本(作为原始字符串)。

keyword

host.type

主机类型。对于云提供商,这可以是机器类型,例如 t2.medium。如果为 vm,则可以是容器(例如)或在您的环境中具有意义的其他信息。

keyword

hostname

来自 syslog 标头的 hostname。

keyword

input.type

输入类型

keyword

iptables.ether_type

以太网类型字段的值,用于标识网络层协议。

long

iptables.flow_label

IPv6 流标签。

integer

iptables.fragment_flags

IP 分片标志。CE、DF 和 MF 的组合。

keyword

iptables.fragment_offset

当前 IP 分片的偏移量。

long

iptables.icmp.code

ICMP 代码。

long

iptables.icmp.id

ICMP ID。

long

iptables.icmp.parameter

ICMP 参数。

long

iptables.icmp.redirect

ICMP 重定向地址。

ip

iptables.icmp.seq

ICMP 序列号。

long

iptables.icmp.type

ICMP 类型。

long

iptables.id

数据包标识符。

long

iptables.incomplete_bytes

不完整字节数。

long

iptables.input_device

接收数据包的设备。

keyword

iptables.length

数据包长度。

long

iptables.output_device

输出数据包的设备。

keyword

iptables.precedence_bits

IP 优先级位。

short

iptables.tcp.ack

TCP 确认号。

long

iptables.tcp.flags

TCP 标志。

keyword

iptables.tcp.reserved_bits

TCP 保留位。

short

iptables.tcp.seq

TCP 序列号。

long

iptables.tcp.window

通告的 TCP 窗口大小。

long

iptables.tos

IP 服务类型字段。

long

iptables.ttl

生存时间字段。

integer

iptables.ubiquiti.input_zone

输入区域。

keyword

iptables.ubiquiti.output_zone

输出区域。

keyword

iptables.ubiquiti.rule_number

规则集中的规则编号。

keyword

iptables.ubiquiti.rule_set

规则集名称。

keyword

iptables.udp.length

UDP 标头和负载的长度。

long

journald.host.boot_id

生成消息的引导的内核引导 ID,格式为 128 位十六进制字符串。

keyword

log.file.path

此事件来自的日志文件的完整路径,包括文件名。应包括驱动器号(如果适用)。如果事件不是从日志文件读取的,请勿填充此字段。

keyword

log.offset

日志偏移量

long

log.source.address

syslog 消息的源地址。

keyword

log.syslog.appname

如果可用,则为生成 Syslog 消息的设备或应用程序。

keyword

log.syslog.facility.code

如果可用,则为日志事件的 Syslog 数字工具。根据 RFC 5424 和 3164,此值应为介于 0 和 23 之间的整数。

long

log.syslog.priority

如果可用,则为事件的 Syslog 数字优先级。根据 RFC 5424 和 3164,优先级为 8 * 工具 + 严重性。因此,此数字应包含介于 0 和 191 之间的值。

long

log.syslog.procid

如果可用,则为生成 Syslog 消息的进程名称或 ID。

keyword

message

对于日志事件,消息字段包含日志消息,已针对在日志查看器中查看进行了优化。对于没有原始消息字段的结构化日志,可以将其他字段串联起来,以形成事件的人工可读摘要。如果存在多个消息,则可以将它们合并为一个消息。

match_only_text

network.community_id

源 IP 和目标 IP、端口以及通信中使用的协议的哈希值。这是一个与工具无关的用于标识流的标准。请访问 https://github.com/corelight/community-id-spec 了解更多信息。

keyword

network.forwarded_ip

当源 IP 地址为代理时,主机 IP 地址。

ip

network.iana_number

IANA 协议号 (https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml)。标准化的协议列表。这与使用 IANA 协议号的 NetFlow 和 sFlow 相关日志非常一致。

keyword

network.transport

与 network.iana_number 相同,但使用的是传输层的关键字名称(udp、tcp、ipv6-icmp 等)。该字段值必须规范化为小写以进行查询。

keyword

network.type

在 OSI 模型中,这将是网络层。ipv4、ipv6、ipsec、pim 等。该字段值必须规范化为小写以进行查询。

keyword

observer.egress.zone

观察器报告的出站流量网络区域,用于对出站流量的目标区域进行分类,例如内部、外部、DMZ、HR、法务等。

keyword

observer.ingress.zone

观察器报告的入站流量网络区域,用于对入站流量的源区域进行分类。例如内部、外部、DMZ、HR、法务等。

keyword

observer.name

观察器的自定义名称。这是一个可以赋予观察器的名称。例如,如果组织中使用多个相同型号的防火墙,这会很有帮助。如果不需要自定义名称,则该字段可以留空。

keyword

process.program

来自 syslog 头的进程。

keyword

related.hosts

在您的事件中看到的所有主机名或其他主机标识符。示例标识符包括 FQDN、域名、工作站名称或别名。

keyword

related.ip

在您的事件中看到的所有 IP。

ip

rule.id

规则 ID,在代理、观察器或其他使用该规则检测此事件的实体的范围内是唯一的。

keyword

rule.name

生成该事件的规则或签名的名称。

keyword

source.as.number

分配给自治系统的唯一编号。自治系统号 (ASN) 唯一标识 Internet 上的每个网络。

long

source.as.organization.name

组织名称。

keyword

source.as.organization.name.text

source.as.organization.name 的多字段。

match_only_text

source.geo.city_name

城市名称。

keyword

source.geo.continent_name

洲的名称。

keyword

source.geo.country_iso_code

国家/地区的 ISO 代码。

keyword

source.geo.country_name

国家/地区名称。

keyword

source.geo.location

经度和纬度。

geo_point

source.geo.region_iso_code

区域 ISO 代码。

keyword

source.geo.region_name

区域名称。

keyword

source.ip

源的 IP 地址(IPv4 或 IPv6)。

ip

source.mac

源的 MAC 地址。建议使用 RFC 7042 中的表示法格式:每个八位字节(即 8 位字节)用两个 [大写] 十六进制数字表示,给出八位字节的值作为无符号整数。连续的八位字节用连字符分隔。

keyword

source.port

源的端口。

long

systemd.transport

日志服务接收条目的方式。

keyword

tags

用于标记每个事件的关键字列表。

keyword

更新日志

编辑
更新日志
版本 详细信息 Kibana 版本

1.17.0

增强功能 (查看拉取请求)
删除 journald seqnum 字段

8.7.1 或更高版本

1.16.2

Bug 修复 (查看拉取请求)
在引用提取管道中的变量时使用三花括号 Mustache 模板。

8.7.1 或更高版本

1.16.1

Bug 修复 (查看拉取请求)
仅针对支持的协议调用 community_id 处理器

8.7.1 或更高版本

1.16.0

增强功能 (查看拉取请求)
将软件包规范更新至 3.0.3。

8.7.1 或更高版本

1.15.2

增强功能 (查看拉取请求)
更改所有者

8.7.1 或更高版本

1.15.1

Bug 修复 (查看拉取请求)
修复 exclude_files 模式。

8.7.1 或更高版本

1.15.0

增强功能 (查看拉取请求)
ECS 版本更新至 8.11.0。

8.7.1 或更高版本

1.14.0

增强功能 (查看拉取请求)
ECS 版本更新至 8.10.0。

8.7.1 或更高版本

1.13.0

增强功能 (查看拉取请求)
软件包清单中的 format_version 从 2.11.0 更改为 3.0.0。从软件包清单中删除了点分隔的 YAML 键。向软件包清单添加了 owner.type: elastic

8.7.1 或更高版本

1.12.0

增强功能 (查看拉取请求)
添加 tags.yml 文件,以便将集成的仪表板和已保存的搜索标记为“安全解决方案”,并在安全解决方案 UI 中显示。

8.7.1 或更高版本

1.11.0

增强功能 (查看拉取请求)
将软件包更新至 ECS 8.9.0。

8.7.1 或更高版本

1.10.0

增强功能 (查看拉取请求)
将仪表板转换为 Lens。

8.7.1 或更高版本

1.9.0

增强功能 (查看拉取请求)
确保为管道错误正确设置 event.kind。

8.7.0 或更高版本

1.8.0

增强功能 (查看拉取请求)
将软件包更新至 ECS 8.8.0。

8.7.0 或更高版本

1.7.0

增强功能 (查看拉取请求)
将 package-spec 版本更新至 2.7.0。

8.7.0 或更高版本

1.6.0

Bug 修复 (查看拉取请求)
将 journald syslog 字段与 ECS 对齐。

8.7.0 或更高版本

1.5.0

增强功能 (查看拉取请求)
将软件包更新至 ECS 8.7.0。

8.1.0 或更高版本

1.4.0

增强功能 (查看拉取请求)
将软件包更新至 ECS 8.6.0。

8.1.0 或更高版本

1.3.0

增强功能 (查看拉取请求)
向 UDP 输入添加 udp_options

8.1.0 或更高版本

1.2.1

增强功能 (查看拉取请求)
将仪表板中的可视化项迁移到按值进行,以尽量减少已保存对象的混乱并缩短加载时间

8.1.0 或更高版本

1.2.0

增强功能 (查看拉取请求)
将软件包更新至 ECS 8.5.0。

8.0.0 或更高版本

1.1.0

增强功能 (查看拉取请求)
允许在日志中解析 ulogd v2 TOS 字段。

8.0.0 或更高版本

1.0.2

增强功能 (查看拉取请求)
使用 ECS geo.location 定义。

8.0.0 或更高版本

1.0.1

增强功能 (查看拉取请求)
删除未使用的可视化项

8.0.0 或更高版本

1.0.0

增强功能 (查看拉取请求)
正式发布 (GA)

8.0.0 或更高版本

0.12.0

增强功能 (查看拉取请求)
将软件包更新至 ECS 8.4.0

0.11.1

增强功能 (查看拉取请求)
更新软件包名称和描述以与标准措辞保持一致

0.11.0

增强功能 (查看拉取请求)
将软件包更新至 ECS 8.3.0。

0.10.1

Bug 修复 (查看拉取请求)
基于当前管道更新示例事件。

0.10.0

增强功能 (查看拉取请求)
将地图可视化项从 tile_map 迁移到地图对象

0.9.0

增强功能 (查看拉取请求)
更新至 ECS 8.2

0.8.1

增强功能 (查看拉取请求)
添加多字段文档

0.8.0

增强功能 (查看拉取请求)
更新至 ECS 8.0

0.7.0

增强功能 (查看拉取请求)
添加 journald 输入支持并将发布稳定性更改为 beta。

重大更改 (查看拉取请求)
将 MAC 地址格式化为 RFC 7042。

0.6.2

Bug 修复 (查看拉取请求)
使用新的 GeoIP 数据库重新生成测试文件

0.6.1

Bug 修复 (查看拉取请求)
将测试公共 IP 更改为支持的子集

0.6.0

增强功能 (查看拉取请求)
添加 8.0.0 版本约束

0.5.3

增强功能 (查看拉取请求)
与指南保持一致

0.5.2

增强功能 (查看拉取请求)
更新标题和描述。

0.5.1

Bug 修复 (查看拉取请求)
修复检查 forwarded 标记的逻辑

0.5.0

增强功能 (查看拉取请求)
更新至 ECS 1.12.0

0.4.2

增强 (查看拉取请求)
转换为生成的 ECS 字段

0.4.1

增强 (查看拉取请求)
更新至 ECS 1.11.0

0.4.0

增强 (查看拉取请求)
更新集成描述

0.3.0

增强 (查看拉取请求)
设置 "event.module" 和 "event.dataset"

0.2.1-next

增强 (查看拉取请求)
同步 Ingest Pipeline 与 Filebeat

0.2.0

增强 (查看拉取请求)
更新至 ECS 1.10.0 并添加 event.original 选项

0.1.0

增强 (查看拉取请求)
将所有处理移至 Ingest 节点。从 syslog 输入切换到 udp。

0.0.4

增强 (查看拉取请求)
更新至 ECS 1.9.0

0.0.3

增强 (查看拉取请求)
修复与 Kibana 的兼容性

0.0.1

增强 (查看拉取请求)
初始版本