アクセスポイントとは別のデバイス上のキャプティブポータル

アクセスポイントとは別のデバイス上のキャプティブポータル

私は、使用されているアクセス ポイント/ルーターに依存しない、家庭用 WiFi の認証システムをセットアップしようとしています。この認証システムは、キャプティブ ポータル モデルに厳密に従いますが、(カスタム) キャプティブ ポータルの詳細は重要ではないと思います。

これを実現するために、キャプティブポータルと認証を安価なデバイス(Raspberry Piなど)でホストしたいと考えています。ただし、ユーザーが認証した後は、別のアクセスポイントに再接続する必要があります。つまり、Raspberry Piはのみ認証手順を実行しますが、認証されたユーザーの通常使用のアクセス ポイントとしては機能しません。繰り返しますが、これは、通常のパスワードで保護された WiFi ネットワークを持つ任意のアクセス ポイント/ルーターで最適に機能します。

このプロジェクトに必要なログイン フローは次のとおりです。

  1. ユーザーはWiFi対応のRaspberry Piに接続します
  2. ユーザーはPiでホストされているキャプティブポータルサイトに誘導され、ログインします。
  3. (認証が成功したと仮定) ユーザーはPiから切断され、メインアクセスポイントに接続されます
  4. ユーザーは通常通りウェブを閲覧できるようになりました

このようなことを実現する方法はありますか?Raspberry Piをセットアップして、両方アクセス ポイントとキャプティブ ポータルの両方ですが、キャプティブ ポータルだけではありません。

答え1

これを安全に実行するのは実際には不可能ですが、「ルーブ・ゴールドバーグ」タイプの構成を使用すれば可能になるかもしれません。

PI 上の DHCP ルーターをカスタマイズし、解放されるまでのリース期間を短くし、配布される IP アドレスを変更する (ルーターで DHCP を有効にしない) ことで、大雑把に実行できると思いますが、単純な静的アドレス指定でこれをバイパスできないようにするのは大変な作業になるでしょう。

ルータの協力を得て、キャプティブ ポータル以外のデバイスから WAN へのポート DNS (ポート 53 要求) を禁止し、DHCP を使用してキャプティブ ポータル DNS を配布し、ユーザーが解放されるまでキャプティブ ポータルが DNS 応答を自ら提供するようにすれば、ほぼ同様のことを実現できる可能性があります。ただし、これは単純な VPN またはトンネルで回避できます。

見た目よりずっと難しいです (暇なときに遊んでいるものなので、あまり難しくありません!) が、ルーターによっては、DD-WRT の最新バージョンに組み込まれている「Wild Dog」のようなものが機能するかもしれません。ルーターが基礎となるキャプチャを実行し、ポータルの作業を別のデバイスに引き渡すようです。

答え2

OpenBSD が Raspberry Pi 上で動作することを考えると、authpf を使用して各ユーザーが公開鍵/パスワードでセッションを認証し、認証されたクライアントがファイアウォールを通過できるようにすることができます。ただし、フィルタリングを担当するルーター上で直接実行すると最も効果的です。https://www.openbsd.org/faq/pf/authpf.html、実装例については Google で検索してください。

よりユーザーフレンドリーなオプションは次のようになりますhttps://coova.github.io/CoovaChilli/ 積極的にメンテナンスされており、RADIUS もサポートされています。

答え3

繰り返しますが、これはどのアクセスポイント/ルーターでも最適に機能します。

アクセス ポイントは Wi-Fi (リンク層) を処理し、ルーターは IP (ネットワーク層) を処理します。これらは 1 つのプラスチック製の箱にまとめられていることがよくありますが、それでも 2 つの異なる機能を実行します。

キャプティブ ポータルの考え方は、パケットの通常のパス上にあるデバイスがパケットを傍受し、偽の「リダイレクト」応答を生成して、ユーザーにログイン ページにアクセスする必要があることを通知するというものです。リダイレクトは次のように実行できます。

  • デフォルト ゲートウェイ (ルーター) で、iptables を使用して TCP 接続全体を傍受する (最も一般的な方法)。
  • DNS サーバーは、「キャプティブ」サーバー (信頼性が低く、簡単にバイパスできる) を指す偽の DNS ルックアップ応答を返します。
  • アクセスポイントまたはスイッチは、パケットヘッダーを書き換えてパケットが別のゲートウェイに到達するようにする(激レアただし技術的には可能です)…

いずれにせよ、あなたの「キャプティブポータル」ラズベリーもっている通常のパスに挿入されます。「偽のDNSサーバー」方式(トラフィックをほとんど処理しませんが、バイパスするのも非常に簡単です)を使用して構築した場合でも、最低でもDHCP 経由で Raspberry の IP アドレスを提供するには、メイン ルーターを再設定する必要があります。

(そして多くの安価な無線ルーターは実際には構成、設定つまり、通常の DHCP サービスをオフにして、DHCP も Raspberry から完全に提供する必要があると思います。


つまり、簡単に言えば、この方法で「プラグ アンド プレイ」キャプティブ ポータル デバイスを実装することはできないと思います。


実際、セキュリティの観点からは大きな問題があります。だったルーターの設定なしで、Raspberry Pi が接続して全員のトラフィックを何らかの方法で傍受することも可能になります...そうすると、マルウェアに感染した不正なクライアントが接続して全員のトラフィックを傍受することも可能になります。

関連情報