[DD-WRT] NoCatSplash

[DD-WRT] NoCatSplash

ルーターのファームウェア 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-WRTaipo-wifi

解決しましたら、いいね か ツイート をお願いします

コメントする