
Quero saber quais sites/URLs são visitados pelos usuários da conta de convidado do meu computador doméstico.
Existe uma maneira de registrar isso e salvá-lo como uma lista bem formatada no disco? Preciso apenas de data/hora e URL visitado. Se possível, URLs completos seriam bons, mas apenas o domínio também é bom para começar.
Atualizar:
Depois de ler as respostas e sugestões vinculadas no chat deAB, executei o seguinte comando:
$ sudo iptables -A OUTPUT -m owner --uid-owner 499 -j LOG --log-prefix='[GUEST INTERNET ACCESS] '
depois de definir o UID da conta de convidado para o UID fixo 499 a seguirDefinir ou determinar o intervalo de UID para contas de convidados.
Mas o /var/log/kern.log
ainda não contém esses logs, mas muitas mensagens apparmor
dizem que negou algo:
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
Publiquei uma pergunta separada sobre o problema do AppArmor aqui:O AppArmor bloqueia o registro configurado por meio de iptables para conta de convidado - Como ativar?
Responder1
Acho que sua intenção é clara aqui: registrar URLs de sites visitados por qualquer pessoa que use qualquer aplicativo como usuário convidado.
Sugerir o log do iptables para realizar esta tarefa não é correto. iptables (sem algumas extensões obscuras e limitadoras de desempenho) funciona no protocolo IP, não no nível do aplicativo.
Também vi sugestões nos URLs sugeridos como comentários - os respondentes sugeriram apenas a captura de pacotes com sinalizadores SYN (novas conexões). Isso também resulta de um mal-entendido descrito acima.
A maneira de conseguir o que você deseja é:
- Instale um proxy web (de preferência leve, como tinyproxy).
- Adicione regras de iptables que redirecionem conexões de saída feitas apenas por um usuário específico para as portas 80.443/tcp para o proxy local.
O que eu tinha em mente está descritoaqui(não é minha postagem). Dessa forma, você obtém um log de proxy da web que contém todas as solicitações HTTP registradas. Porém, você não receberá registros relacionados ao tráfego protegido por SSL, o que é uma coisa boa.
Para reiterar: URLs não fazem parte da estrutura de cabeçalho IP ou TCP, portanto, algo que funciona no nível IP/TCP não será capaz de mostrar esses dados, a menos que tenha algum dissector TCP (tcpdump/wireshark é capaz de faça isso, mas não apenas o iptables).
Responder2
Você já tentou isso:
sudo iptables -A output -m owner --uid-owner 499 -j log --log-prefix="'/var/log/kern.log$'uri"
e pode ajudar bem dessa maneira.