通过任何浏览器监控访客帐户的访问网站
我想知道我的家庭计算机的访客帐户的用户访问了哪些网站/ URL。
有没有办法记录这个并将其保存为格式良好的列表到磁盘? 我只需要日期/时间和访问过的URL。 如果可能的话,完整的URL会很好,但只有域也适合一开始。
更新:
在阅读了AB聊天中的链接答案和建议后,我运行了以下命令:
$ sudo iptables -A OUTPUT -m owner --uid-owner 499 -j LOG --log-prefix='[GUEST INTERNET ACCESS] '
在设置或确定访客帐户的UID范围后,将访客帐户UID设置为固定的UID 499之后。
但是/var/log/kern.log
仍然不包含那些日志,但apparmor
许多消息都告诉它拒绝了一些东西:
Nov 18 11:19:22 wolf-pack kernel: [ 1030.063374] audit: type=1400 audit(1447841962.731:164): apparmor="DENIED" operation="connect" profile="/usr/lib/lightdm/lightdm-guest-session" name="/run/systemd/journal/stdout" pid=4693 comm="dbus-daemon" requested_mask="w" denied_mask="w" fsuid=499 ouid=0
我在这里发布了一个关于AppArmor问题的单独问题: AppArmor阻止通过iptables为访客帐户设置日志记录 – 如何启用?
我认为你的意图很清楚:任何人使用任何应用程序作为访客用户访问的网站的日志URL。
建议iptables日志记录来实现此任务是不正确的。 iptables(没有一些模糊的,性能限制扩展)适用于IP协议,而不适用于应用程序级别。
我还看到建议注释的URL中的建议 – 响应者建议只捕获带有SYN标志的数据包(新连接)。 这也是由于上述误解造成的。
实现目标的方法是:
- 安装Web代理(最好是轻量级的,例如tinyproxy)。
- 添加iptables规则,将仅由特定用户进行的传出连接重定向到端口80,443 / tcp到本地代理。
我在这里描述了什么 (不是我的post)。 这样,您将获得一个Web代理日志,其中记录了所有HTTP请求。 您不会获得与受SSL保护的流量相关的日志,这是一件好事。
重申一下:URL不是IP或TCP头结构的一部分,因此在IP / TCP级别工作的东西不能显示这些数据,除非它有一些TCP解析器(tcpdump / wireshark能够这样做,但不是单独的iptables)。
你试过这个:
sudo iptables -A output -m owner --uid-owner 499 -j log --log-prefix="'/var/log/kern.log$'uri"
这可能会有所帮助。