Opengate エラーチェック項目
Opengateは多くのソフトウェアの間の仲介を行うものですので、何が起きているのか判断が難しいです。そこで、このメモは、インストールしてもOpengate が動かない時の参考のために記します。
-
うまく動かない場合、まず、関連するソフトウェアが各々単独で正常動作するか確認してください。
時に、ipfw の設定はあちこちに影響しますので十分注意が必要です。最初はipfwを全開放に近く設定してうまく動くのを確認してから閉じてください。
-
Opengateは以下のファイルを利用します。これらは正しく配置されていますか。ディレクトリはdefault位置です。
/usr/local/www/data/index.html.var
/usr/local/www/cgi-bin/opengate/(opengatesrv.cgi, opengatefwd.cgi, opengateauth.cgi)
/usr/local/www/data/opengate/(ja, en)/(topindex.html, index.html, index-ssl.html, accept.html, accept2.hmtl, deny.html, deny-ssl.html, retry.html)
/etc/opengate/(opengatesrv.conf, rc.firewall, ipfwctrl.pl): *.sampleからコピー。
/var/log/opengate.log
さらに、ロックファイルとして/tmp/opengate.lockを使用しますが、作成は不要です。消しても構いません。
-
別に、プログラムフロー解説と関連ソフト間のプロトコルを用意しています。プログラムの基本的な動きを把握してください。
-
また、テストプログラムを用意しました。opengatesrv中にtest-*として置いていますが、使い方はソースを見てください。
-
/var/log/opengate.logに開放、閉鎖のログおよびエラーログを出力します。エラーの場合はこのログを確認ください。/etc/opengate/opengatesrv.conf内のDebugを1にすると、デバッグのための情報を大量に出すようになります。また、Apacheのログやシステムログを確認ください。
- /etc/opengate/opengatesrv.confが設定ファイルです。make installでは、/etc/opengate/opengatesrv.conf.sampleが作られますので、これをopengatesrv.confにコピーしてください。設定ファイルは、バージョンによって設定項目の増減がありますので、対応するバージョンのものを使ってください。
以下、各動作について、その時のエラー状況と対応を列挙します。
- 正常動作
- インストールする。
- ライブラリ等が不足しているとのコンパイルエラーが出る。
- Ver.0.56以降は、FreeBSDv4にて動作確認しています。FreeBSD3ではコンパイルエラーが発生します。
- makeはできるが、make installが失敗する。
- rootユーザで行う必要があります。
- opengateのプロセスが残留しているとインストールできません。psで確認してkillしてください。
- 外部URLをアクセスすると、ipfwのfwdルールによってforwardされて、パケットはローカルのApacheサーバに向く。
- アクセスした外部URLのページが表示される。
- ipfwの設定を確認ください。また、opengateプロセスが残留している状態ではファイアウォールが開いています。psやipfw listで確認ください。
- クライアントとサーバ間に、IPアドレスを集約するNATなどの装置があると、配下の全クライアントが同一のIPアドレスとなるため、一つが空けた穴を他の全ても通過となります。特に無線LAN装置の設定には注意ください。
- opengatefwd.cgiが動作して、topindex.htmlのkeywordを置き換えたRefresh要求ページを送り出す。このページは短時間だけ表示して次に移る。
- Apacheサーバが反応しない。
- Apacheサーバがdefaultページを返す。
- DocumentRootのindex.html.varが、opengatefwd.cgiを呼び出すようになっているかを確認ください。またhttpd.confでそのindex.html.varが使われるようになっているか確認ください。
- ApacheサーバがFile Not Foundのエラーを返す。
- 当該ファイルの存在を確認ください。またhttpd.confでErrorDocument404の設定を確認ください。ApacheのDocument位置とopengatesrv.conf、Makefileの記述が一致しているか確認ください。
- ApacheサーバがInternalエラーを返す。
- 何らかのバグが発生しているのかも知れません。opengate.log、httpd-error.logなどを参照してください。opengatesrv.confでdebugを1に設定するとopengate.logに大量の情報を出します。
- keywordが置き換えられずにそのままのページが表示される。
- opengateの設定を確認ください。ページを編集した場合は、キーワード文字列を誤って変更していないか確認ください。また、HTMLファイル中の1行があまりに長いと、不具合を起こします。適度に改行を入れてください。
- その他
- Refresh要求ページをスキップすると正常に動きません。
- 最初のアクセスは、当マシンを通過するものである必要があります。opengateのページを直接指定してのアクセスや、ゲートウェイを通らないアクセスは無効です。
- 次にopengateauth.cgiが動作して、index.htmlのkeywordを置き換えた認証要求ページを送り出す。このページは認証要求を表示する。
- Refresh要求ページで停止して、認証要求ページへ移行しない。
- ページソースを確認ください。keywordが置き換えられて妥当なRefresh記述になっていなければ上記を参照ください。
- このページはSSLでのアクセスとなっています。topindex.html内のRefresh記述をhttpsからhttpに変更すると表示される場合は、ApacheのSSL設定を確認ください。
- ApacheがInternalエラーやFileNotFoundエラーなどを出す。
- 認証要求ページにユーザIDとパスワードを入れて認証要求を送ると、opengatesrv.cgiが起動して、accept.html(またはaccept-ssl.html)のkeywordを置き換えた許可ページを表示する。
- 認証失敗のページが表示される。
- opengatesrv.confの認証サーバ設定を確認ください。最初はAuthServer/Protocolをacceptにして、opengate単独での正常動作を確認してください。
- opengatesrv.confの認証サーバ設定や認証サーバ単独での動作を確認ください。
- opengatesrv.conf内でExtraSetの設定があると、default設定を上書きします。
- EndWebAndRetryのページが表示される。
- 既に開放されている端末からの要求を拒否しています。ブラウザのBack等を使って再度認証要求をしたときなどに起きます。再試行すれば、認証ページではなく目的とする外部ページが表示されるはずです。
- ApacheがInternalエラーやFileNotFoundエラーなどを出す。
- 許可ページに、黄色いバーが表示され、ここにユーザ名と正常起動のメッセージが出る。
- 黄色いバーが表示されない。
- JavaScriptが動作していません。ブラウザでJavaScriptが動作するように設定してください。
- この場合も、しばらくはネットワークが利用できます。閉鎖は以下の時に起きます。「指定時間が経過」「終了リンクをクリック」「IPアドレスに対するMACアドレスが変化」「一定時間パケットが通らない」。
- ネット利用のためのスタートページを別ウインドウとして表示する。
- 別ウインドウがポップアップしない。
- JavaScriptが有効になっていないとポップアップしません。
- ブラウザでポップアップ禁止に設定されているとポップアップしません。
- これら端末に対応するために別ウインドウを開くためのリンクを付けています。なお、JavaScriptのページを保持できれば、別ウインドウが出なくても利用に支障はありません。
- これ以降、ブラウザを終了するまで、Webアクセスを含む様々なプロトコルの通信が可能となる。
- 許可ページが表示されたのに、通信が通らない。
- ipfw listコマンドで、許可ルールが追加されていることを確認ください。ルート権限で動かないとipfwコマンドは発行が出来ません。opengatesrv.cgiファイルにSビットが立っていることを確認ください。
- ブラウザを終了しないでください。最小化状態でもかまいません。終了するとJavaScriptからの連絡によりネットワークが閉鎖されます。
- 許可ページが表示されてしばらくは通信が出来るが、何分か経つと通信が通らなくなる。
- JavaScriptが動いていない場合の説明は上を参照ください。
- JavaScript稼動時には、以下のいずれかで閉鎖されます。「JavaScriptが停止する(ブラウザ停止、OS停止に伴う停止を含む)」「Helloメッセージ交換にJavaScriptが返答しない」。
- 数分ごとに黄色いバーの中の表示が変わる。
- ブラウザを終了した後で、再度起動して外部URLをアクセスすると、再び認証画面表示になる。
- 外部URLが表示される。
- JavaAppletが動いていない場合、遅延閉鎖となります。なお、異常終了によって、許可ルールの削除が行われないことがあるかも知れません。これが生じるときは、tools下に用意した無駄ルール削除のスクリプトを利用ください。
- OSによっては、終了と思われる処理が終了ではなく常駐非表示であることがあります。