プログラムの実行中に開かれたリモートサーバーのクライアントソケットを識別する方法

プログラムの実行中に開かれたリモートサーバーのクライアントソケットを識別する方法

私は、組織の外部に依存しないように、ビルドプロセス中に外部システムにアクセスできないようにしたい特定のビルドプロセスを持っています。インターフェイスを閉じるのではなく、特定のプロセスがどのクライアントソケットを開いているかを判断するために使用できる監視ツールはありますか?

私は実際にそこには何も見えませんstracerecvfromこれくらいなら証明できないだろうか?もっと良い方法がありますか?

答え1

Linuxが利用可能名前空間ネットワークからビルドプロセスを分離します。これunshareこれは単にコマンドを使用して実行できます。ただし、これはビルドプロセスがTCP / IPを介してローカルホストに接続するのを防ぎます。ビルドプロセスを見てみましょうただlocalhostへの接続はより複雑で詳細です。ここ

上記のすべてのタスクにはルートアクセスが必要です。ビルドプロセスを一般ユーザーとして実行するには、名前空間で実行するようにコマンドを設定できますsu build-user -c build-command

答え2

私は最終的に次のことをしました。

strace -s 1000 -e trace=network build-command

関連情報