ユーザーの資格情報を使用して「半パブリック Wi-Fi ネットワーク」を作成するためのコードを書いています。
セミパブリックと言うのは、これはまだプライベート Wi-Fi ネットワーク (すべてのトラフィックが暗号化されている) ですが、Wi-Fi パスワードなしで接続できるように、Wi-Fi インターフェースでパブリックとして設定されているためです。
サーバー/ルーター側では、各パケットを傍受し、その権限をチェックしてから、再ディスパッチまたはドロップする必要があります。そのために、IOCTL を使用して、各サブネットワーク上のパケットをキャプチャし、必要に応じて転送またはドロップする (「中間ルーター」) タップ インターフェイスを設定しました。これはうまく機能します。1 つのサブネットワーク上のパケットは、コードによって処理されずに別のサブネットワークに移動することはできません。ただし、アプリがネットワークに許可されていない暗号化されていないパケットを送信するのを防ぐことはできません (iptables でルールを設定して、API 自体を除くすべてをタップ インターフェイスにリダイレクトしない限り)。
しかし、その方法は一種の「ハック」のように思えます。私がやりたいのは、カーネルに私のコードを呼び出してルーティング手順を実行させることです。