発信接続を発生時に記録する


23

プロセスが作成するすべての発信接続をファイルに記録する方法はありますか?私は承知していますがnetstat、それはある期間の情報を実行して記録するものというよりも、ある時点のスナップショットのようです。

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


1
まあ、watch -n 2 netstatその間に何かをすることができますが、それは適切な解決策ではありません、それです。
ウルリッヒ・シュワルツ

1
[このスレッド] [1] [1]あなたの質問に答える必要があります。superuser.com/questions/34782/...
外国人の生活様式

回答:


15

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

auditctl -A exit,always -S connect

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


3
どのプロセスが発信接続を行っているかを特定する必要がありました。これはすぐにやった。ログをあふれないようにするには、その後のルールを削除しますauditctl -d exit,always -S connect
マイケル・ハンプトン

ログを検査するにはどうすればよいですか?
ラッキードナルド

@luckydonaldless /var/log/audit/audit.log
ジル「SO-悪を止めろ」


3

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

modprobe ip_conntrack
cat /proc/net/ip_conntrack

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


質問は必ずしもLinux中心ではありません。
カールソン

0

私はtcpdump、アウトバウンドSYNリクエストを見て、アウトバウンドインターフェースでの使用を検討します。

本当に冒険したい場合は、次のようなユーティリティを作成するstraceか、プログラムの実行をトレースしながらtrussすべてのconnectシステムコールを報告できますが、これはもう少し危険であり、マルチスレッドプロセスを処理する際に欠点があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.