私は個人的なプロジェクトのためにいくつかのHTTPデータを実験しようとしています。私がやりたいのは、自宅のWifiルーターを通過するすべてのHTTPトラフィックをキャプチャし、そのデータを分析に使用することです。
このタスクには、HTTPヘッダー情報をキャプチャするだけで十分です。ノートパソコン、電話、iPadからのトラフィックをすべて監視したい。このデータをキャプチャするための専用サーバーが自宅にないので、Amazonのクラウドサーバーを使用したいと思います。 AWSアカウントを持っています。
だから、私はこれをどのように行うのですか?なんらかのプロキシを設定する必要があると思いますが、私はネットワーキングの初心者です。
ISPのFTTHモデムを持っています。そして、Wifiルーターがそれに接続します。
ルーターとモデムの間のネットワークに何かを挿入するのが理想的なようです。これは、RaspberryPiで実現できます。イーサネットインターフェイスは1つしかありませんが、USB nicを入手して、着信および発信インターフェイスを使用できます。
Piがルーターとして参加する必要がないように、これらをブリッジする必要があります。一方のインターフェイスでpiに入ってくるものはすべて、もう一方のインターフェイスから出ます。ネットワークの内部に接続できる管理ポートとして機能するために、3番目のUSBNICが必要になる場合があります。
1つのアプローチは、AWSでnetcatを実行してから、tcpdumpを実行してポート80からhttpヘッダーを除外し、それらをAWSに送信することです。
tcpdump -s 0 -U -n -w - -i br0 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)' | nc AWS_IP -p 10000
これは言っている
-s 0 Get the whole packet
-U Send output immediately, don't buffer
-n No name conversion with dns etc
-w - write to standard output
-i br0 Listen for packets on the br0 interface (assumes the ethernet ports are bridged)
次に、フィルターはhttpヘッダーを引き出します。これからの出力はnetcatにパイプされ、netcatはそれをAWSIPアドレスのポート10000に送信します
そしてAWSでは
nc -l -p 10000 > http.pcap
これにより、ポート10000にリスナーが設定され、このポートに到着したものはすべてhttp.pcap
というファイルに出力されます。
このファイルは、wiresharkなどを使用して開くことができます。
このトラフィックを保護するには、sshを介したデータのトンネリングを調べてください。
fiddler というプログラムがあります。これはやり過ぎなくてもニーズに合うかもしれません。