![使用 Ubuntu 服务器进行 IP 日志记录](https://linux22.com/image/138509/%E4%BD%BF%E7%94%A8%20Ubuntu%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%BF%9B%E8%A1%8C%20IP%20%E6%97%A5%E5%BF%97%E8%AE%B0%E5%BD%95.png)
我使用 Ubuntu 来托管我的网站。我想生成“接触”我的 Ubuntu 安装的每个 IP 地址的日志 - 包括 ping、端口扫描等,而不仅仅是 http 请求。完成这项任务的有效方法是什么?
答案1
可以使用 iptables 记录网络数据包LOG
目标。为了避免记录每个到达系统的数据包,您可以使用limit
和/或conntrack
模块。
LOG
目标将消息写入内核日志。系统日志通常配置为将这些消息写入日志文件。这些消息也可以通过以下方式查看dmesg
也可以使用AUDIT
日志记录的目标,在这种情况下,日志将通过以下方式写入审核日志审计。当您编写带有目标的规则时AUDIT
,您需要通过--type
选项指定审计记录类型。
例子:
接受与已建立的连接相关的数据包。
iptables -A INPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT
其他数据包被记录(有速率限制)。可以使用
--log-prefix
选项设置要包含在日志中的前缀。iptables -A INPUT -m limit --limit 5/min -j LOG \ --log-prefix "iptables: " --log-level info
请注意,iptables 规则是按顺序评估的。处理在第一次将规则匹配到ACCEPT
或DROP
目标时停止。LOG
目标不会停止处理。