捕获 HTTP 流量
编辑捕获 HTTP 流量
编辑HTTP 协议有几个特定的配置选项。以下是 packetbeat.yml
配置文件的 http
部分的示例配置
packetbeat.protocols: - type: http ports: [80, 8080, 8000, 5000, 8002] hide_keywords: ["pass", "password", "passwd"] send_headers: ["User-Agent", "Cookie", "Set-Cookie"] split_cookie: true real_ip_header: "X-Forwarded-For"
配置选项
编辑另请参阅通用协议选项。
hide_keywords
编辑Packetbeat 将自动审查其保存的事务中的查询参数列表。与这些参数关联的值将替换为 'xxxxx'
。默认情况下,不会对 HTTP 消息进行任何更改。
Packetbeat 具有此选项,因为与通常只包含密码哈希的 SQL 流量不同,HTTP 流量可能包含敏感数据。为了降低安全风险,您可以配置此选项以避免发送某些 HTTP POST 参数的内容。
此选项替换 GET 请求中的查询参数和 POST 请求中的顶级参数。如果敏感数据编码在您未在此处指定的参数内部,则 Packetbeat 无法审查它。另外请注意,如果您配置 Packetbeat 以保存原始请求和响应字段(请参阅 send_request
和 send_response
选项),则这些字段中可能存在敏感数据。
redact_authorization
编辑启用此选项后,Packetbeat 将模糊处理 Authorization
和 Proxy-Authorization
HTTP 标头的值,并在响应中审查这些字符串。
对于使用基本身份验证的事务,您应该将此选项设置为 true,因为它们可能包含 base64 未加密的用户名和密码。
send_headers
编辑要捕获并发送到 Elasticsearch 的标头名称列表。这些标头放在生成的 JSON 中的 headers
字典下。
send_all_headers
编辑您可以通过将此选项设置为 true 来发送所有标头,而不是将标头的白名单发送到 Elasticsearch。默认值为 false。
redact_headers
编辑如果 HTTP 请求中存在,则要编辑的标头列表。这将保持标头字段的存在,但会编辑其值以显示标头的存在。
include_body_for
编辑Packetbeat 导出完整 HTTP 有效负载的内容类型列表。HTTP 主体在这些 Content-Type 的 http.request.body.content
和 http.response.body.content
下可用。
此外,如果启用了 send_response
选项,则 HTTP 主体将与 response
下的 HTTP 标头一起导出;如果启用了 send_request
,则 request
包含包括主体在内的整个 HTTP 消息。
在以下示例中,HTTP 响应的 HTML 附件在 response
字段下以及 http.request.body.content
或 http.response.body.content
下导出
packetbeat.protocols: - type: http ports: [80, 8080] send_response: true include_body_for: ["text/html"]
decode_body
编辑一个布尔标志,用于控制 HTTP 有效负载的解码。它解释 Content-Encoding
和 Transfer-Encoding
标头并解压缩实体主体。支持的编码为 gzip
和 deflate
。此选项仅适用于导出 HTTP 有效负载的情况,即,当指定了 include_*_body_for
选项之一或 POST 请求包含 url 编码的参数时。
split_cookie
编辑如果发送 Cookie
或 Set-Cookie
标头,则此选项控制是否将其拆分为单独的值。例如,设置此选项后,HTTP 响应可能会生成以下 JSON
"response": { "code": 200, "headers": { "connection": "close", "content-language": "en", "content-type": "text/html; charset=utf-8", "date": "Fri, 21 Nov 2014 17:07:34 GMT", "server": "gunicorn/19.1.1", "set-cookie": { "csrftoken": "S9ZuJF8mvIMT5CL4T1Xqn32wkA6ZSeyf", "expires": "Fri, 20-Nov-2015 17:07:34 GMT", "max-age": "31449600", "path": "/" }, "vary": "Cookie, Accept-Language" }, "status_phrase": "OK" }
默认值为 false。
real_ip_header
编辑从中提取真实 IP 的标头字段。当您想捕获反向代理后面的流量,但又想获取地理位置信息时,此设置非常有用。如果存在此标头并且包含有效的 IP 地址,则该信息将用于 network.forwarded_ip
字段。
max_message_size
编辑如果单个 HTTP 消息大于此设置(以字节为单位),则会将其裁剪为此大小。除非此值非常小(<1.5K),否则 Packetbeat 仍然能够正确跟踪事务并为其创建事件。默认值为 10485760 (10 MB)。