web-dev-qa-db-ja.com

発生した発信接続のロギング

プロセスが作成するすべての発信接続をログに記録する方法はありますか?私はnetstatを知っていますが、これは、一定期間にわたって情報を実行および記録するものというよりは、ある時点のスナップショットのようです。

IPまたはホスト名、ポート、接続を確立するプロセスのみが必要です。

23
Rich

Linuxでは、 監査サブシステム を設定して、ネットワーク接続を確立するすべての試行をログに記録できます。監査サブシステムの詳細については、 auditctl manページ または このチュートリアル または このサイトの他の例 を参照してください。必要に応じてディストリビューションのauditdパッケージをインストールし、

auditctl -A exit,always -S connect

ログは、私が知っているすべてのディストリビューションの/var/log/audit/audit.logにあります。 それらを検索するausearchを使用することもできます。

カスタムカーネルをインストールできる場合は、 SystemTap を確認してください。たくさんの examples ネットワークアクティビティを追跡する方法があります。

5
Lars Kotthoff

Linuxでは ip_conntrack これを実現します。これは接続追跡モジュールであり、ファイアウォール/ NATボックスによって管理される異常に動作するプロトコル(FTPなど)の接続を監視するために通常使用されます。

modprobe ip_conntrack
cat /proc/net/ip_conntrack

疑似ファイルをgrepして確立された接続を確認し、さらにソースIPをgrepしてボックスから発信された時期を確認できます。

3
Sean C.

アウトバウンドtcpdumpリクエストを確認するアウトバウンドインターフェースでSYNを使用することを検討します。

冒険的な気分なら、次のようなユーティリティを作成できます。straceまたはtrussプログラムの実行をトレースしながらすべてのconnectシステムコールを報告します。

0
Karlson