sudo proxychains と proxychains sudo:順序が重要な理由
proxychains sudo がインターセプト用ライブラリを失い得る一方、sudo proxychains が対象の実行コンテキストでラッパーを起動する理由を理解します。
これらのコマンドは同じ実行境界を持ちません。
proxychains4 sudo command
sudo proxychains4 command
Proxychains-ng はライブラリを対象プログラムへ事前に読み込ませます。Linux では、sudo のような set-user-ID プログラムを実行するとローダーのセキュリティ規則が働き、sudo が保持できるようになる前に該当するライブラリ読み込み用の変数が削除されます。
したがって「環境をもっと保持する」ことは、sudo をラッパーの内側に置くための確実な修正ではありません。sudoers のマニュアルは、LD_* のような変数が sudo の開始前に削除されると明記しています。
コマンドが本当に対象アカウントを必要とするなら、その許可されたコンテキストでラッパーを起動してください。そのうえで どの設定を読むのかを確認します。sudo は HOME、PATH、および該当するユーザー別ファイルを変更する可能性があります。権限なしの呼び出しが動いたとしても、root が同じプロキシ一覧を選んだことにはなりません。
プログラムが独自のプロキシインターフェースを提供している場合は、そちらを優先してください。プログラムがすでに経路を知っている要求について、インターセプトへの依存を避けられます。
proxychains の適用範囲の限界も念頭に置いてください。起動メッセージはラッパーが起動したことを示すだけで、生のパケット、未対応の呼び出し、あるいは別途起動された既存のアプリケーションプロセスがそのライブラリを使ったことは示しません。プロキシしたいと考えたネットワーク操作そのものを確認し、root 権限をすべての操作がインターセプトされた証拠と見なさないでください。