web-dev-qa-db-ja.com

任意のブラウザーを介してゲストアカウントのアクセスしたWebサイトを監視する

自宅のコンピューターのゲストアカウントのユーザーがアクセスしたWebサイト/ URLを知りたい。

これをログに記録し、適切にフォーマットされたリストとしてディスクに保存する方法はありますか?日付と時刻とアクセスしたURLだけが必要です。可能であれば、完全なURLが適切ですが、最初はドメインのみでも十分です。

更新:

A.B。からチャットでリンクされた回答と提案を読んだ後、次のコマンドを実行しました。

$ 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
Byte Commander

あなたの意図はここで明らかだと思います。ゲストユーザーとしてアプリケーションを使用しているユーザーがアクセスしたWebサイトのURLを記録します。

このタスクを達成するためにiptablesロギングを提案することは正しくありません。 iptables(あいまいでパフォーマンスを制限する拡張機能なし)は、アプリケーションレベルではなくIPプロトコルで機能します。

コメントとして提案されたURLの提案も確認しました-応答者は、SYNフラグ(新しい接続)を持つパケットのみをキャプチャすることを提案しました。これも、上記の誤解が原因です。

あなたが望むものを達成する方法は次のとおりです:

  1. Webプロキシ(できればtinyproxyなどの軽量)をインストールします。
  2. 特定のユーザーのみが作成した発信接続をポート80,443/tcpにローカルプロキシにリダイレクトするiptablesルールを追加します。

私が念頭に置いていたことを説明します ここ (私の投稿ではありません)。このようにして、すべてのHTTPリクエストが記録されたWebプロキシログを取得します。ただし、SSLで保護されたトラフィックに関連するログは取得できません。これは良いことです。

繰り返します:URLはIPまたはTCPヘッダー構造の一部ではないため、IP/TCPレベルで機能しているものは、いくつかのデータがない限り、このデータを表示できませんTCP dissector(tcpdump/wiresharkはこれを実行できますが、iptablesだけでは実行できません)。

2
Marcin Kaminski