
Я хочу знать, какие веб-сайты/URL-адреса посещают пользователи гостевой учетной записи моего домашнего компьютера.
Есть ли способ записать это и сохранить как красиво отформатированный список на диск? Мне нужны только дата/время и посещенный URL. Если возможно, было бы неплохо указать полные URL, но для начала подойдет и только домен.
Обновлять:
Прочитав ссылки на ответы и предложения в чате отАБ, я выполнил следующую команду:
$ sudo iptables -A OUTPUT -m owner --uid-owner 499 -j LOG --log-prefix='[GUEST INTERNET ACCESS] '
после установки UID гостевой учетной записи на фиксированный UID 499, следующийУстановить или определить диапазон UID для гостевых учетных записей.
Но в журнале /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 для гостевой учетной записи. Как включить?
решение1
Думаю, Ваше намерение здесь понятно: регистрировать URL-адреса веб-сайтов, посещённых любым пользователем, использующим любое приложение в качестве гостя.
Предложение использовать ведение журнала iptables для выполнения этой задачи неверно. iptables (без некоторых непонятных, ограничивающих производительность расширений) работает на уровне IP-протокола, а не на уровне приложений.
Я также видел предложения в URL, предложенных в качестве комментариев - респонденты предлагали захватывать только пакеты с флагами SYN (новые соединения). Это также является результатом недопонимания, описанного выше.
Способ достичь желаемого:
- Установите веб-прокси (желательно облегченный, например tinyproxy).
- Добавьте правила iptables, которые перенаправляют исходящие соединения, созданные только определенным пользователем, на порты 80,443/tcp на локальный прокси-сервер.
То, что я имел в виду, описаноздесь(не мой пост). Таким образом вы получите журнал веб-прокси, в котором будут регистрироваться все HTTP-запросы. Однако вы не получите журналы, связанные с защищенным SSL-трафиком, что хорошо.
Повторим: URL-адреса не являются частью структуры заголовков IP или TCP, поэтому что-то, работающее на уровне IP/TCP, не сможет показать вам эти данные, если только у него нет какого-либо анализатора TCP (tcpdump/wireshark могут это сделать, но не только iptables).
решение2
Пробовали ли вы это:
sudo iptables -A output -m owner --uid-owner 499 -j log --log-prefix="'/var/log/kern.log$'uri"
и это может помочь.