我有一个使用 OpenWRT 配置的公共网络。
如何记录流经公共网络的所有连接(而不是流量)?
我需要这些条目:
- 源MAC地址
- 源/目标 IP
- 时间
- 目标主机名(如果可能)
- 如果可能,请提供源主机名
答案1
您可以使用防火墙中的日志规则来执行此操作。这将产生大量流量,因此您可能希望将日志发送到另一台服务器。默认记录器可能会截断日志,因此您可能需要安装另一个记录器,例如 syslog-ng,正如我在OpenWRT syslog-ng 安装。您不会获得主机名,因为在路由它们时它们已被转换为 IP 地址。
您可能想要使用 Shorewall 或 Shorewall-lite 为您生成防火墙。
如果您担心记录网络流量,那么您可能需要使用 Squid 或其他可以记录所有访问的代理。不过您的 Open-WRT 路由器可能不会运行它。
答案2
ssh 进入路由器
logread | grep -A 10 authenticated
Wed Jun 3 21:15:20 2015 daemon.info hostapd: wlan0: STA e0:xx:xx:xx:xx:xx IEEE 802.11: authenticated
Wed Jun 3 21:15:20 2015 daemon.info hostapd: wlan0: STA e0:xx:xx:xx:xx:xx IEEE 802.11: associated (aid 1)
...
Wed Jun 3 21:15:20 2015 daemon.info hostapd: wlan0: STA DHCPREQUEST(br-lan) 192.168.0.13 e0:xx:xx:xx:xx:xx
了解如何使用logread -r
syslog-ng 或 syslog-ng 发送到远程服务器(http://wiki.openwrt.org/doc/howto/log.syslog-ng)
也可以看看: