Azure 网站日志,包括条目中的内部 IP
Posted
技术标签:
【中文标题】Azure 网站日志,包括条目中的内部 IP【英文标题】:Azure Website Logs Including Internal IPs in Entries 【发布时间】:2015-07-20 10:12:53 【问题描述】:在过去的几周里,我们在 Azure 网站的网络日志中看到越来越多的条目,其原始 IP 地址(在日志的 c-ip 列中)似乎在 100.90 范围内。 XX它现在已达到所记录的所有流量的一半以上,并且正在干扰我们执行分析和威胁检测的能力。
根据the Wikipedia entry on reserved IP addresses,此块是“在使用运营商级 NAT 时用于服务提供商与其订户之间的通信,如 RFC 6598 所指定”的一部分,所以 这可能是个问题在 Azure 中?
查看日志,流量来自许多不同的用户代理(普通用户和常见的合法机器人),并且正在请求广泛的资源,因此除了 IP 之外不会立即出现可疑情况。它看起来更像是为合法流量分配了不正确的(内部)IP。
它似乎只影响静态内容(例如图像和 XML 文件),而不是所有静态内容。
我们在西欧使用单个小型标准实例,并在其上运行单个 Web 应用程序。我们没有使用任何缩放功能。有一个链接的 SQL 数据库,该网站主要通过 HTTPs 运行。我们 95% 以上的流量来自英国。我们没有对由 Azure 处理的日志记录进行任何更改。
有什么方法可以让我们回到此处查看实际 IP,还是这是恶意流量?
【问题讨论】:
找不到任何其他可能的解决方案彼得..我已经删除了相同的。 谢谢。可以将问题提炼为“Azure 正在报告静态资源的内部路由 IP,但动态服务内容的正确外部 IP,这是预期的吗?是否可以更改为记录所有内容的外部 IP?” - 如果您能提供任何见解,将不胜感激。再次感谢。 会尽快找到你 【参考方案1】:可以更改日志记录,但不能在应用程序上更改。应用程序诊断设置非常简陋——只是“记录还是不记录”的开关?
您会感兴趣的是应用程序(当时称为“站点”)、角色(可通过云服务获得)1 和虚拟机之间的this comparison。文章提到对角色环境中的日志记录有更多控制,我认为这意味着您可以设置自定义日志。 This article 详细说明了如何为您在 IIS 中选择的标头设置日志记录。现在,您可以在虚拟机中摆弄您的 IIS,但例如,它的精简版本有可能在 Web 角色中工作。 This article 讨论如何在您的云服务托管应用程序中启用诊断日志记录。
从应用环境迁移到云服务并非易事,因为您必须设置更多的东西。可能您正在考虑更改解决方案的结构,或者更改应用程序的架构。所以我不会考虑这样做只是为了让我可以看到客户的 IP。
您可以做的最简单的事情是尝试附加分析。 There used to be a solution straight from Azure,但我在门户中找不到它。谷歌分析是我进行流量分析的首选解决方案。它可能会为您提供所需的信息。
-
Microsoft 每隔几个月就重新命名一项 azure 服务,这真的很烦人。
【讨论】:
感谢您的回复 - 是的,理想情况下我们不想迁移到虚拟机等,该应用程序作为应用程序/网站已经运行了两年,我们喜欢简单的环境扩展、持续部署等。我们已经在使用 Google Analytics,但也会针对威胁检测进行自定义日志分析,而不是您在 GA 中获得的那种分析。 这个问题就在这里:***.com/questions/6316796/x-forwarded-for 显示了一种从请求标头中获取您寻求的信息的方法。因此,您可以尝试在应用程序中生成相关日志。HttpContext.Current.Request.Headers["X-Forwarded-For"].Split(new char[] ',' )
感谢@Nomenator,但它只发生在静态内容(不通过 ASP.NET 提供)。为此,我需要更改配置,以便管道拦截所有流量,这会增加仅记录静态文件的开销,而且我仍然不会在标准 IIS 日志中包含此内容。
@Peter 还有另一种方法:msdn.microsoft.com/en-us/library/…,所以如果你是using System.Web
,你可以在任何控制器的操作中执行它:string ip = Request.ServerVariables["X_FORWARDED_FOR"];
如果你已经在输出日志并且有一个记录器类(我知道我在我的应用程序中做日志),那么添加另一个日志而不破坏 SOLID 并不难。以上是关于Azure 网站日志,包括条目中的内部 IP的主要内容,如果未能解决你的问题,请参考以下文章
使用 Windows Azure 上嵌入的 RavenDB 写入日志文件失败