logging - 如何找到 Google Cloud Platform VM 日志?
问题描述
我正在尝试查找访问我的 GCP VM 的 IP 的过去日志(如果可能,按日期)。我在哪里可以找到这个?
我熟悉日志资源管理器功能,但无法找到尝试访问 VM 但被防火墙/安全阻止的 IP。
我的目标是跟踪这些 IP 以将其列入某种黑名单。
我是否需要进行一些设置才能跟踪这些 IP?
编辑 1:日志记录和访问控制对我来说相对较新(请耐心等待),这是我迄今为止发现的。
- 现在为阻止外部访问的主要规则启用了防火墙规则日志记录。
- Web 服务器日志记录已启用,我目前是日志记录管理员。
- 一些背景:我在一个实例上使用 Jupyter Notebook,我注意到一个可疑的 IP 在 Jupyter 日志中发出了一个奇怪的 GET 调用(带有 404 响应)。据我所知,我立即吓坏了并加强了安全性,但我确实想找到根源。
- 现在,这是我发现的有关访问尝试的信息。
4.a - 日志浏览器中的防火墙“资源类型”没有以任何方式捕获/记录奇怪的访问尝试(但它确实记录了我那天的成功访问尝试,很奇怪)
4.b - 大约在我注意到 IP 的时候,VM 实例“资源类型”中记录了两个 IntegrityEvent。ShieldedVM完整性?这可能与此有关吗?它没有告诉我IP地址。(在此期间,我会尝试更好地了解受防护的虚拟机。)
4.c - 在进行奇怪的 API 调用时,我正在查看日志,这感觉就像运气一样,这将使我在 GCP 安全课程上加倍努力。
另外,你们是怎么知道这样的东西的?
编辑 2:
好的,现在我可以跟踪试图通过该防火墙规则访问的 IP。我看到很多来自俄罗斯、中国等的国际 IP。这正常吗?
你不需要像密钥一样访问 SSH 端口,这些 IP 是如何通过我的防火墙的?
当我看到图像中的流量时,Sorta 有点小毛病。请注意,当我没有针对 SSH 端口的任何 IP 过滤器时,会记录流量(图像)。这些 IP 获得访问权限是什么意思?我的密钥被泄露了吗?
您能帮我找到可以找到如何正确创建防火墙的资源吗?我尝试仅将入口设置为我的 IP,但这似乎不起作用。
我还尝试通过限制访问来复制 @Jose 的防火墙规则以获得“拒绝”,但我也无法做到这一点。对不起,如果我看起来像一个初学者。
任何帮助表示赞赏。
谢谢!
解决方案
如果您启用了防火墙规则日志记录,您将能够看到正在访问您的 GCP 虚拟机的 IP。如果没有,您可以按照@jabbson 提到的那样启用防火墙规则日志记录。
当您为防火墙规则启用日志记录时,每次规则允许或拒绝流量时,Google Cloud 都会创建一个称为连接记录的条目。您可以在 Cloud Logging 中查看这些记录,并且可以将日志导出到 Cloud Logging 导出支持的任何目标。
每个连接记录都包含源和目标 IP 地址、协议和端口、日期和时间,以及对应用于流量的防火墙规则的引用。
请注意它会创建大量日志,并且由于它是在防火墙中定义的,因此您可以通过端口对其进行过滤以避免接收到数千条日志。
要启用防火墙规则日志记录,您可以使用以下命令:
gcloud compute firewall-rules update NAME \
--enable-logging
--logging-metadata=LOGGING_METADATA
防火墙规则的名称在哪里NAME
,并LOGGING_METADATA
指定防火墙规则日志记录是否包括防火墙规则日志中的元数据字段。
编辑 1
激活防火墙规则日志记录后,您可以查看以这种方式收集的信息:
转到 Google Cloud Console 中的防火墙页面。然后单击您要查看日志的规则的名称,然后查找日志部分并单击view in Logs Explorer
:
然后,您可以根据需要调整查询。
在我的示例中,我为我的端口 22 (ssh) 创建了一个防火墙规则,然后我过滤了
jsonPayload.disposition="DENIED"
然后您将能够看到连接区域下的IP
推荐阅读
- java - 如何打破 kotlin when 子句?
- python - 创建列 df[New_column] 并根据 pandas 中的其他多列值写入是/否
- gekko - 关于延迟完全不同的 CV 的 cv_wgt_start
- matlab - 更改 matlab .fig 的刻度值
- flutter - Flutter 中使用 TextField 和 Button 创建消息气泡
- python - 获取不和谐频道的所有连接成员
- java - 使用 Lombok @SLF4J 注释 - 如何在日志行的开头添加日期\时间?
- javascript - WebView 不会在 android studio 中播放任何声音
- json - Ruby:读取大型 JSON 文件而不会在 JSON 中发生内存泄漏
- javascript - Vue SPA - 从任何组件调用方法