- ベストアンサー
freespotの仕組みとは?
- freespotとはBuffalo社が提供する無線LANサービスで、各場所に設置されたアクセスポイントを使用してインターネットに接続することができます。
- 接続する際には、freespotのネットワーク設定を行い、yahooなどのウェブサイトにアクセスしようとすると、freespotの登録画面に強制的に移動します。
- 登録画面でMACアドレスとメールアドレスを登録すると、パスワードがメールで送られてきます。再度接続し、MACアドレスとパスワードを入力してログインすることで、インターネットに通常通り接続することができます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>→こちらは具体的にどのようにすれば可能なのでしょうか? 見える動作から推定しただけなので、具体的に…と問われてもちょっと困りますが…。 >LINUXで可能なのでしょうか?素人で申し訳ありません。 iptablesなとである程度までは対応可能でしょう。 ただし、NetFilterのヘルパーモジュール作る必要がありそうですが。 # 登録ページへのパケットは通す iptables -A OUTPUT -p tcp -d "登録ページのホストIP" --dport 80 -j ACCEPT # 接続済みは許可 iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # 登録済みMACアドレスのチェック iptables -A OUTPUT -j MAC_Check # 未登録のHTTPを登録ページへ振り分ける iptables -A OUTPUT -m state --state NEW -m tcp -p tcp --dport 80 -j DNAT --to "登録ページのホストIP" # それ以外はふさぐ iptables -A OUTPUT -j DROP # MACアドレスチェック(パスワード認証したものは動的にこのチェインに) iptables -A MAC_Check -m mac --mac-source 登録されたMACアドレス1 -j ACCEPT iptables -A MAC_Check -m mac --mac-source 登録されたMACアドレス2 -j ACCEPT iptables -A MAC_Check -m mac --mac-source 登録されたMACアドレス3 -j ACCEPT iptables -A MAC_Check -m mac --mac-source 登録されたMACアドレス4 -j ACCEPT iptables -A MAC_Check -m mac --mac-source 登録されたMACアドレス5 -j ACCEPT って感じでしょうか。 MACアドレスのチェックはヘルパーモジュール作って、そっちで(外部のDBなどを参照等で)チェックとすべきでしょうな。 登録されるたびにチェインに追加していく…なんて運用は有り得ないでしょう。 iptablesの設定の応用、あまり自信ないのでコレでOKか微妙ですけどねぇ…。 # たぶん、ちゃんとは動作しないだろうなぁ。
その他の回答 (2)
- Wr5
- ベストアンサー率53% (2173/4061)
OUTPUTではなくFORWARDとすべき…だったかも知れません。 該当ホストがDHCPサーバ&無線LAN子機のデフォルトゲートウェイとして動作している場合…ですが。 # 内部DNS(DNSキャッシュ?)としても動作する必要があるかも知れませんが…。
- Wr5
- ベストアンサー率53% (2173/4061)
使ったことないので、想定ですが… >yahooに接続しているのに、自動的にメール登録画面に行く仕組みと TCPのSYNフラグ付きパケットを受信したら、送信元のMACアドレスが登録済み(パスワード認証も完了している)のものか確認。 未登録のものなら内部でTCP接続を完了して、Webサーバとして動作。 HTTPリダイレクトで登録ページに無理矢理飛ばす。 # このとき登録ページへ接続するときのTCPパケット(SYNフラグ付き)は普通にWAN側に転送する。 >MACaddressとメールアドレスの登録・紐付けを、どのように行っているかが さっぱりわかりません。 紐付けはしていないでしょう。 パスワードの送信先として使用しているだけだと思います。 # メータイのメールアドレス限定なのは…ネットに繋げない状態ではメールも見れないから…でしょう。 って、解除の時にメールアドレスも使っているのか…。 内部のデータベースでハッシュ化でもして持っている…ってところですかね。
補足
有難うございます。 TCPのSYNフラグ付きパケットを受信したら、送信元のMACアドレスが登録済み(パスワード認証も完了している)のものか確認。 未登録のものなら内部でTCP接続を完了して、Webサーバとして動作。 HTTPリダイレクトで登録ページに無理矢理飛ばす。 # このとき登録ページへ接続するときのTCPパケット(SYNフラグ付き)は普通にWAN側に転送する。 →こちらは具体的にどのようにすれば可能なのでしょうか? LINUXで可能なのでしょうか?素人で申し訳ありません。 ご教示ください。