モバイルプロキシサービス¶
モバイルプロキシサービスは、少し分かりにくいかもしれません。まず一言で説明すると、FIRERPAにはHTTPプロキシサーバーが内蔵されており、このHTTPネットワークプロキシを通じて、つまり携帯電話のネットワークを経由して他のサイトにアクセスすることができます。
例えば、デバイスと同じネットワークIP環境下でネットワークテストを行い、問題を調査したい場合があります。FIRERPAのこのプロキシ機能は、FIRERPAを実行しているデバイスをHTTPネットワークプロキシサーバーとして使用することをサポートします。つまり、この機能を通じて、このモバイルデバイスをプロキシサーバーとして使用し、通信トラフィックをこのデバイスのネットワーク出口を経由させることができます。あるいは、パケットキャプチャを行っているが、トラフィックをローカルPCから出したくない場合、このプロキシサービスをmitmproxyの上流プロキシとして設定することができます。これにより、パケットをキャプチャしつつ、すべての通信トラフィックは元のデバイスから送信され続けます。また、多数のデバイスのアイドル状態のネットワークをIPプロキシサービスとして利用することも可能です。
プロキシの使用¶
Firefoxブラウザの設定で「手動でプロキシを設定する」を選択し、192.168.0.2、ポート 65000 をプロキシとして設定し、「このプロキシをHTTPSでも使用する」にチェックを入れると、お使いのFirefoxはデバイスと同じアウトバウンドIPを持つようになります。
以下のcurlコマンドで素早く体験することもできます。
curl -x http://192.168.0.2:65000 https://httpbin.org/ip
Pythonのrequestsライブラリを使用することもできます。
requests.get("https://httpbin.org/ip", proxies={"http":"http://192.168.0.2:65000", "https": "http://192.168.0.2:65000"})
デフォルトでは、このプロキシは認証を必要としません。しかし、--certificate を使用して起動した場合(サービス証明書を使用した場合)、ログインユーザー名は lamda となり、パスワードはリモートデスクトップのログイントークン(注意:リモートデスクトップのカスタムパスワードではなく、サービス証明書ファイル内のパスワード)と同じになります。また、properties.local で tunnel2.password をカスタム設定し、このパスワードを自分で設定することもできます。
上記のサービス証明書を使用する場合、以下の方法で利用します。
curl -x http://lamda:証明書のパスワード@192.168.0.2:65000 https://httpbin.org/ip
同様に、Pythonのrequestsでは以下のようになります。
requests.get("https://httpbin.org/ip", proxies={"http":"http://lamda:証明書のパスワード@192.168.0.2:65000", "https": "http://lamda:証明書のパスワード@192.168.0.2:65000"})
プロキシの設定¶
properties.local に以下の設定を書き込むことで、モバイルプロキシ機能の設定ができます。パスワード認証を設定したり、デフォルトのアウトバウンドネットワークインターフェースではなく、rmnet(4G/5Gモバイルネットワーク)インターフェース経由で通信させたりすることが可能です。
tunnel2.login=lamda
tunnel2.password=あなたの新しいパスワード
アウトバウンドインターフェース iface の設定は、モバイルプロキシの出口ネットワークを設定するために使用されます。設定可能な値は wlan と rmnet の2つです。iface の値が wlan の場合、利用可能なwlanインターフェースが自動的に検出され、そのうちの1つがリクエストの送信に使用されます。
一方、iface が rmnet の場合、モバイルデータ(4G/5G、WIFIがオンであっても)を有効にし、モバイルネットワークインターフェースからリクエストを送信しようとします。rmnet または wlan に設定されていても、そのインターフェースにネットワーク接続がない場合、プロキシは機能しません。
この項目が設定されていない場合、デフォルトのネットワークを使用してリクエストが送信されます。
tunnel2.iface=rmnet