モバイルプロキシサービス

モバイルプロキシサービスは、少し分かりにくいかもしれません。まず一言で説明すると、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.localtunnel2.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 の設定は、モバイルプロキシの出口ネットワークを設定するために使用されます。設定可能な値は wlanrmnet の2つです。iface の値が wlan の場合、利用可能なwlanインターフェースが自動的に検出され、そのうちの1つがリクエストの送信に使用されます。 一方、ifacermnet の場合、モバイルデータ(4G/5G、WIFIがオンであっても)を有効にし、モバイルネットワークインターフェースからリクエストを送信しようとします。rmnet または wlan に設定されていても、そのインターフェースにネットワーク接続がない場合、プロキシは機能しません。 この項目が設定されていない場合、デフォルトのネットワークを使用してリクエストが送信されます。

tunnel2.iface=rmnet