パケット(Wiresharkなど)を確認したり、待ち時間/パケット損失(例:netem)をシミュレートしたりできるツールがあることがわかっていますが、すべてのパケットを確認/修正するには管理権限が必要です。
私は単一のアプリケーションでパケットを傍受し、標準(rootではない)ユーザーが使用できるようにすることを探しています。
valgrind
アプリケーションをラップし、ネットワーク要求を傍受してスキャン/変更するために使用できるネットワークツールの種類が必要です。
私の主なユースケースは、学生が大学のコンピュータでこれらのツールを簡単に使用できるようにすることです(たとえば、VMや管理者のサポートは必要ありません)。
そのようなツールがありますか?そうでなければ、何が実際に存在するのを妨げますか?
注:このツールはsetcap
システム管理者の設定を必要とし、ユーザーにあまりにも多くの権限を与える可能性があるため(アプリケーションによって生成されたパケットだけでなく、すべてのパケットをチェックするなど)、適切ではありません。
編集する:うん、ちょっと調べたところで見つけたLD_PRELOADのヒントconnect
、特定のライブラリ機能(例:sendto
など)を傍受し、パケットを計算/修正するために、貧しい人々のラッパーとして使用できます。もちろん、これに基づいたルートフリーツールがそれほど多くない理由は次のとおりです。
- セキュリティ目的には役に立ちません(簡単にバイパスできます)。
- それにもかかわらず、ほとんどの人はネットワークを使用して有用なタスクを実行するときに既にルートアクセスが必要であるため、学習用にカスタマイズされた非常に具体的なアプリ以外には、ルートアクセスは実際には必要ありません。
しかし、好奇心が強い学生が自分でそのようなアプリを開発したい場合は、技術的に可能です。
もう1つの方法は、この問題を処理するためにvalgrindプラグインを作成し、valgrindを使用してプログラムを実行することです。しかし、あまりにも過度だと思い、正気な人はそうしませんでした。
私よりもよく知っている人が私の以前の声明が正しいことを確認できますか?
答え1
TCP / IPパケットを見たいと仮定すると、実際のパケットはアプリケーションではなくカーネルによって生成されるため、パケットを調べるにはrootアクセス権が必要です。