ローカルゲストアカウントのインターネット使用状況(訪問したURL)を記録するには、質問 ゲストアカウントの訪問済みWebサイトを監視します任意のブラウザを介して 、ゲストアカウントに固定UID 499を割り当て、以下のiptables
ルールを設定した後、 /var/log/kern.log
で必要なログメッセージを取得していませんが、apparmor
によるログ記録試行をブロックしたというメッセージを取得しています。
ゲストアカウント(ランダムな名前だが固定UID)がiptables
?を介してそのネットワーク使用を記録することを許可するようにAppArmorに指示する方法
私がセットアップしたiptables
ルール:
Sudo iptables -A OUTPUT -m owner --uid-owner 499 -j LOG --log-prefix='[GUEST INTERNET ACCESS] '
代わりに/var/log/kern.log
に表示されるメッセージの1行の例(読みやすくするために再フォーマットされています):
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
詳細なシステム情報:
$ uname -a
Linux wolf-pack 4.2.0-18-generic #22-Ubuntu SMP Fri Nov 6 18:25:50 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 15.10
Release: 15.10
Codename: wily
$ unity --version
unity 7.3.2
$ apt-cache policy apparmor | grep Installed
Installed: 2.10-0ubuntu6
$ iptables --version
iptables v1.4.21
Sudo apparmor_status
の出力:
apparmor module is loaded.
23 profiles are loaded.
23 profiles are in enforce mode.
/sbin/dhclient
/usr/bin/evince
/usr/bin/evince-previewer
/usr/bin/evince-previewer//sanitized_helper
/usr/bin/evince-thumbnailer
/usr/bin/evince-thumbnailer//sanitized_helper
/usr/bin/evince//sanitized_helper
/usr/lib/NetworkManager/nm-dhcp-client.action
/usr/lib/NetworkManager/nm-dhcp-helper
/usr/lib/connman/scripts/dhclient-script
/usr/lib/cups/backend/cups-pdf
/usr/lib/lightdm/lightdm-guest-session
/usr/lib/lightdm/lightdm-guest-session//chromium
/usr/lib/telepathy/mission-control-5
/usr/lib/telepathy/telepathy-*
/usr/lib/telepathy/telepathy-*//pxgsettings
/usr/lib/telepathy/telepathy-*//sanitized_helper
/usr/lib/telepathy/telepathy-ofono
/usr/sbin/cups-browsed
/usr/sbin/cupsd
/usr/sbin/cupsd//third_party
/usr/sbin/ippusbxd
/usr/sbin/tcpdump
0 profiles are in complain mode.
6 processes have profiles defined.
6 processes are in enforce mode.
/sbin/dhclient (1138)
/usr/lib/telepathy/mission-control-5 (4700)
/usr/sbin/cups-browsed (777)
/usr/sbin/cupsd (5626)
/usr/sbin/cupsd (5651)
/usr/sbin/cupsd (5652)
0 processes are in complain mode.
0 processes are unconfined but have a profile defined.
こことあなたがリンクした他の質問であなたの意図は明確だと思います:ゲストユーザーとしてアプリケーションを使用している人がアクセスしたウェブサイトのURLを記録します。
このタスクを達成するためにiptablesロギングを提案することは正しくありません。 iptables(不明瞭でパフォーマンスを制限する拡張機能なし)は、アプリケーションレベルではなく、IPプロトコルで動作します。
また、コメントとして提案されたURLで提案を見ました-応答者はSYNフラグ(新しい接続)を持つパケットのみをキャプチャすることを提案しました。それも、上記の誤解の結果です。
目的を達成する方法は次のとおりです。
私が念頭に置いていたのは、 ここ (私の投稿ではなく)である。これにより、すべてのHTTP要求が記録されたWebプロキシログを取得できます。ただし、SSLで保護されたトラフィックに関連するログは取得されません。これは良いことです。
繰り返しますが、URLはIPまたはTCPヘッダー構造の一部ではありません。したがって、IP/TCPレベルで動作するものは、何らかのデータがない限り、このデータを表示できません。 TCP dissector(tcpdump/wiresharkはこれを行うことができますが、iptablesだけではできません)。