web-dev-qa-db-fra.com

Surveillez les sites Web visités du compte invité via n'importe quel navigateur

Je veux savoir quels sites Web/URL sont visités par les utilisateurs du compte invité de mon ordinateur personnel.

Existe-t-il un moyen de consigner cela et de l'enregistrer en tant que liste bien formatée sur le disque? J'ai seulement besoin de la date/heure et de l'URL visitée. Si possible, les URL complètes seraient bien, mais le domaine uniquement est également bon pour commencer.

Mise à jour:

Après avoir lu les réponses et suggestions liées dans le chat de A.B., j'ai exécuté la commande suivante:

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

après avoir défini l'UID du compte invité sur l'UID fixe 499 après Définir ou déterminer la plage UID pour les comptes invités .

Mais le /var/log/kern.log ne contient toujours pas ces journaux, mais beaucoup de messages par apparmor qui lui disent nié quelque chose:

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

J'ai posté une question distincte sur le problème AppArmor ici: AppArmor bloque la journalisation configurée via iptables pour le compte invité - Comment activer?

1
Byte Commander

Je pense que votre intention est claire ici: enregistrer les URL des sites Web visités par toute personne utilisant n'importe quelle application en tant qu'utilisateur invité.

Suggérer la journalisation iptables pour réaliser cette tâche n'est pas correct. iptables (sans certaines extensions obscures et limitant les performances) fonctionne sur le protocole IP, pas au niveau de l'application.

J'ai également vu des suggestions dans les URL suggérées en tant que commentaires - les répondants ont suggéré de capturer uniquement les paquets avec des drapeaux SYN (nouvelles connexions). Cela aussi résulte d'un malentendu décrit ci-dessus.

La façon de réaliser ce que vous voulez est:

  1. Installez un proxy Web (de préférence léger, tel que tinyproxy).
  2. Ajoutez des règles iptables qui redirigent les connexions sortantes établies uniquement par un utilisateur spécifique vers les ports 80 443/tcp vers le proxy local.

Ce que j'avais en tête est décrit ici (pas mon article). De cette façon, vous obtenez un journal de proxy Web qui contient toutes les requêtes HTTP enregistrées. Cependant, vous n'obtiendrez pas de journaux liés au trafic protégé par SSL, ce qui est une bonne chose.

Pour réitérer: les URL ne font pas partie de l'IP ou de la structure d'en-tête TCP, donc quelque chose qui fonctionne au niveau IP/TCP ne pourra pas vous montrer ces données, sauf s'il en a TCP dissector (tcpdump/wirehark sont capables de le faire mais pas iptables seuls).

2
Marcin Kaminski