ルーターのファームウェア DD-WRT には,NoCatSplash 機能があり 公衆無線LANのように 指定したWEBページを強制的に表示させ,ユーザーが使用許諾等の手続きをしてからでなければ 外部WEBサイトに接続させない機能がある。日本語情報がかなり少ないので,以下わかったことを幾つか掲載
基本的な設定
NocatSplash 有効
Gateway IP Addr ルーターのLAN側アドレス
ゲートウェイ名 適当
Interface Lan
ホームページ 適当
Homepage Redirection どちらでも
許可したウエブサイト (つまりユーザーが許諾等の手続きをしなくても接続できるサイト)
ルーターのアドレス以外にスプラッシュページを保存している場合は,そのWEBサーバーのIPかドメイン名
http:// はつけないらしい
ドキュメントルート どフォルトで /www があるが スプラッシュページをオリジナルで作成している場合は /www を削除し空欄にする
スプラッシュページ ユーザーに強制的に表示させるURL
(このURLにあるWEBページがルーター起動時に読み込まれてルーターのメモリに保存されるようだ)
拒否するポート 25 (必要に応じて)
MACホワイトリスト スプラッシュページを表示させず,すぐに利用者がWANを利用できるMACアドレス
ログインタイムアウト ユーザーがどれだけの秒数WANを使えるか
詳しさ ・・・ 不明 m(__)m
ルートするのみ 無効
動作について
NoCat で 外部WEBサイトにアクセスできるようにするトリガー的な事柄はブラウザより ルーターの 5280 ポートに対して POST による いくつかの値を送り込むことによって 「許可」 が実行される
<form name="login" METHOD="POST" action="http://ルーターのLAN側アドレス:5280/"> <div align="center"> <input type="hidden" name="accept_terms" value="yes" /> <input type="hidden" name="redirect" value="http://yoursite.comつまりボタン押下後リダイレクトさせるページ,不要ならこの行をカットできる"> <input type="hidden" name="mode_login"> <input type="submit" value="使用注意事項を理解し使用します"> </div></FORM>
注意:
http のサイトのみへのアクセス制限しかできず, POP3 や https ついては 制限できない。これらはいつでもアクセス可能となる。
WEB認証させてから利用を許可するという使い方が一応できるが・・
ネットで探してみると,PHPを使った認証ページを作って実現している方がいる。
ソースコード downlaod
動画
おおまかには以下の流れ
スプラッシュページの登録URLをオリジナルのWEB認証ページのURLにし,認証画面をユーザーに表示させる認証成功したら,上記の「動作について」 で記述した
HTMLが埋め込まれているページへリダイレクトさせるユーザーがボタンを押すと利用可能となる一見大丈夫そうなのだが・・・・
基本的に NoCatSplash は
http://ルーターのLan側アドレス:5280
のページに対して POST によるデータを送信すれば利用可能となるという仕組みのようなので,ローカルに保存した 上記コードが埋め込まれた HTMLファイルをブラウザで開き,POSTデータを送信することでも 認証成功 扱いとなる。 なので 上記の方法によろユーザー認証は完全ではない。 簡易的なものと理解しておくとよい。
番外編:AIPOでログイン後,「WiFiを使用する」ボタンを表示させるアプリ
以下の内容を nocatauthapp.xml としてAIPOサーバーに保存し ,フリーのグループウェアAIPOでアプリ登録してください。(例えば C:\aipo\dpl7020\tomcat\webapps\aipo\nocatauth フォルダに保存し,アプリ登録 にて http://xxxxxx/aipo/nocatauth.nocatauthapp.xml を指定する)
UTF-8 の文字コードで保存してください。aaa.bbb.ccc.ddd の部分はルーターのLAN側アドレスで
<?xml version="1.0" encoding="UTF-8"?> <Module> <ModulePrefs title="NoCatAuth" description="NoCatAuthのためのページです" height="35"> <Require feature="views" /> <Require feature="osapi" /> <Require feature="setprefs" /> <Optional feature="aipostyle" /> <Icon>https://s3-ap-northeast-1.amazonaws.com/gadgets.aipo.com/web-page/img/icon/icon16-trans.png</Icon> </ModulePrefs> <UserPref name="p2homeHeight" display_name="ページの高さ(通常時)" datatype="string" default_value="300" /> <UserPref name="p3canvasHeight" display_name="ページの高さ(最大化時)" datatype="string" default_value="800" /> <Content type="html"> <![CDATA[ <div class="aipostyle"> <div id="content"></div> <div id="formContent" style=""> <form name="login" METHOD="POST" action="http://aaa.bbb.ccc.ddd:5280/"> <div align="center"> <input type="hidden" name="accept_terms" value="yes" /> <input type="hidden" name="redirect" value="http://yoursite.com"> <input type="hidden" name="mode_login"> <input type="submit" value="WiFiを使用する"> </div></FORM> </div> </div> <div class="aipostyle"> <iframe id="iframeContent" style="display:none;border:none;" frameborder="0" src="about:blank" name="pagecontent" width="100%" height="400" border="0"> </iframe> </div> ]]> </Content> </Module>
アプリ登録ができれば,好きなAIPOページに組み込んでください。以下の様な表示になります。
DD-WRT
コメント