プロセスが作成するすべての発信接続をファイルに記録する方法はありますか?私は承知していますがnetstat
、それはある期間の情報を実行して記録するものというよりも、ある時点のスナップショットのようです。
IPまたはホスト名、ポート、および接続を確立するプロセスのみが必要です。
プロセスが作成するすべての発信接続をファイルに記録する方法はありますか?私は承知していますがnetstat
、それはある期間の情報を実行して記録するものというよりも、ある時点のスナップショットのようです。
IPまたはホスト名、ポート、および接続を確立するプロセスのみが必要です。
回答:
Linuxでは、ネットワーク接続を確立するすべての試行を記録するように監査サブシステムを設定できます。監査サブシステムの詳細については、このサイトのauditctl
manページまたはこのチュートリアルまたは他の例を参照してください。auditd
必要に応じてディストリビューションのパッケージをインストールしてから、
auditctl -A exit,always -S connect
ログは、/var/log/audit/audit.log
私が知っているすべてのディストリビューションに記録されています。あなたもすることができ、それらを検索するとausearch
。
auditctl -d exit,always -S connect
less /var/log/audit/audit.log
カスタムカーネルをインストールできる場合は、SystemTapをご覧ください。ネットワークアクティビティをトレースする方法の例はたくさんあります。
Linuxでは、ip_conntrack
これを実現するために使用できます。これは、ファイアウォール/ NATボックスによって管理される奇妙に動作するプロトコル(FTPなど)の接続を監視するために通常使用される接続追跡モジュールです。
modprobe ip_conntrack
cat /proc/net/ip_conntrack
疑似ファイルをgrepして確立された接続を確認し、さらにソースIPをgrepして、ボックスから発信されたものを確認できます。
watch -n 2 netstat
その間に何かをすることができますが、それは適切な解決策ではありません、それです。