Überwachen Sie die besuchten Websites des Gastkontos über jeden Browser

Überwachen Sie die besuchten Websites des Gastkontos über jeden Browser

Ich möchte wissen, welche Websites/URLs von Benutzern des Gastkontos meines Heimcomputers besucht werden.

Gibt es eine Möglichkeit, dies zu protokollieren und als schön formatierte Liste auf der Festplatte zu speichern? Ich brauche nur Datum/Uhrzeit und die besuchte URL. Wenn möglich, wären vollständige URLs nett, aber für den Anfang ist auch nur die Domain gut.

Aktualisieren:

Nachdem Sie die verlinkten Antworten und Vorschläge im Chat vonABhabe ich den folgenden Befehl ausgeführt:

$ sudo iptables -A OUTPUT -m owner --uid-owner 499 -j LOG --log-prefix='[GUEST INTERNET ACCESS] '

nachdem die Gastkonto-UID auf die feste UID 499 gesetzt wurdeFestlegen oder Bestimmen des UID-Bereichs für Gastkonten.

Diese Protokolle sind jedoch /var/log/kern.logimmer noch nicht enthalten, dafür aber zahlreiche Nachrichten, apparmordie darauf hinweisen, dass etwas verneint wurde:

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

Ich habe hier eine separate Frage zum AppArmor-Problem gepostet:AppArmor blockiert die über iptables eingerichtete Protokollierung für das Gastkonto – Wie wird sie aktiviert?

Antwort1

Ich denke, Ihre Absicht ist hier klar: Protokollieren Sie die URLs von Websites, die von jemandem besucht werden, der eine beliebige Anwendung als Gastbenutzer verwendet.

Der Vorschlag, diese Aufgabe mithilfe der iptables-Protokollierung zu erfüllen, ist nicht korrekt. iptables (ohne einige obskure, die Leistung einschränkende Erweiterungen) arbeitet auf dem IP-Protokoll und nicht auf Anwendungsebene.

Ich habe auch Vorschläge in den als Kommentare vorgeschlagenen URLs gesehen - die Antwortenden schlugen vor, nur Pakete mit SYN-Flags (neue Verbindungen) zu erfassen. Auch das resultiert aus einem oben beschriebenen Missverständnis.

So erreichen Sie Ihr Ziel:

  1. Installieren Sie einen Webproxy (vorzugsweise einen einfachen, wie z. B. Tinyproxy).
  2. Fügen Sie iptables-Regeln hinzu, die ausgehende Verbindungen, die nur von einem bestimmten Benutzer hergestellt werden, über die Ports 80.443/tcp zum lokalen Proxy umleiten.

Was ich im Sinn hatte, ist beschriebenHier(nicht mein Beitrag). Auf diese Weise erhalten Sie ein Webproxy-Protokoll, in dem alle HTTP-Anfragen protokolliert sind. Sie erhalten jedoch keine Protokolle im Zusammenhang mit SSL-geschütztem Datenverkehr, was eine gute Sache ist.

Um es noch einmal zu wiederholen: URLs sind nicht Teil der IP- oder TCP-Headerstruktur. Daher kann Ihnen etwas, das auf IP/TCP-Ebene arbeitet, diese Daten nicht anzeigen, es sei denn, es verfügt über einen TCP-Dissektor (tcpdump/Wireshark können dies, aber nicht iptables allein).

Antwort2

Haben Sie Folgendes versucht:

sudo iptables -A output -m owner --uid-owner 499 -j log --log-prefix="'/var/log/kern.log$'uri"

und vielleicht hilft es auf diese Weise gut.

verwandte Informationen