使用 Ubuntu 服务器进行 IP 日志记录

使用 Ubuntu 服务器进行 IP 日志记录

我使用 Ubuntu 来托管我的网站。我想生成“接触”我的 Ubuntu 安装的每个 IP 地址的日志 - 包括 ping、端口扫描等,而不仅仅是 http 请求。完成这项任务的有效方法是什么?

答案1

可以使用 iptables 记录网络数据包LOG目标。为了避免记录每个到达系统的数据包,您可以使用limit和/或conntrack模块。

LOG目标将消息写入内核日志。系统日志通常配置为将这些消息写入日志文件。这些消息也可以通过以下方式查看dmesg

也可以使用AUDIT日志记录的目标,在这种情况下,日志将通过以下方式写入审核日志审计。当您编写带有目标的规则时AUDIT,您需要通过--type选项指定审计记录类型。

例子:

  1. 接受与已建立的连接相关的数据包。

    iptables -A INPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT
    
  2. 其他数据包被记录(有速率限制)。可以使用--log-prefix选项设置要包含在日志中的前缀。

    iptables -A INPUT -m limit --limit 5/min -j LOG \
             --log-prefix "iptables: " --log-level info
    

请注意,iptables 规则是按顺序评估的。处理在第一次将规则匹配到ACCEPTDROP目标时停止。LOG目标不会停止处理。

相关内容