Opengate エラーチェック項目
Opengate は多くのソフトウェアの間の仲介を行うものですので、何が起きているのか判断が難しいです。また現状ではデバッグのために専用の機能は設定してありません。そこで、このメモは、インストールしても Opengate が動かない時の参考のために記します。
うまく動かない場合、まず、関連するソフトウェアが各々単独で正常動作するか確認してください。特に ipfw の設定はあちこちに影響しますので十分注意が必要です。最初はipfwを全開放に近く設定してうまく動くのを確認してから閉じてください。
Opengateは以下のファイルを利用します。これらは正しく配置されていますか。
ディレクトリはdefault位置です。
/usr/local/www/cgi-bin/opengate/opengatesrv.cgi
/usr/local/www/data/index.html.*
/usr/local/www/data/opengate/Opengate.class
/usr/local/www/data/opengate/OpengateClient.class
/usr/local/www/data/opengate/*/index.html
/usr/local/www/data/opengate/*/index-ssl.html
/usr/local/www/data/opengate/*/accept.html
/usr/local/www/data/opengate/*/accept2.html
/usr/local/www/data/opengate/*/deny.html
/etc/opengatesrv.conf
/etc/opengatefw.pl
/var/log/opengate.log
さらに、ロックファイルとして /tmp/opengate.lockを使用しますが、作成は不要
です。消しても構いません。
別に、プログラムフロー解説を用意しています。プログラムの基本的な動きを把握してください。
以下、症状毎に列挙します。
- ライブラリ等が不足しているとのコンパイルエラーが出ます。
- Ver.0.56以降は、FreeBSDv4にて動作確認しています。FreeBSD3ではコンパイルエラーが発生します。
- ゲートウェイのホームページへリダイレクトしない。
- この段階ではOpengatesrv.cgiの本体は無関係です。
- 当ホームページを指定したときは正常に表示されますか。そうでないときは Apache の設定またはドキュメントファイルの位置設定を確認ください。またApacheのアクセスログおよびエラーログを確認下さい。
- Apacheはバージョンによってディレクトリの位置が変わっています。インストールメモとは異なるかも知れません。
- ipfw の設定は正しいですか。特にfwdの位置が追加ルールより優先順位が低くなっているか確認ください。
- 接続しようとしたのがサイトのトップページ以外の場合、トップページで試してください。これでうまくいくのであれば、Apache httpd.confにおいて PageNotFound エラーのときにトップページを表示するよう設定されているか確認ください。
- Microsoft Internet Explorer 5以降は、リダイレクト先のページが512バイト以上でないと、PageNotFound時のリダイレクト表示がうまくいきません。トップページに空白を数百バイト追加してみてください。参考情報はhttp://www.microsoft.com/japan/support/kb/articles/JP218/1/55.aspです。
- 接続しようとしたサイトは当ゲートウェイを通った先に設定されていますか。ゲートウェイを通る通信しかリダイレクトできません。
- 名前が解釈できないのなら、DNSの設定を確認ください。
- 最初の画面はSSL化しないでください。
- ユーザIDとパスワードの入力画面へ移行しない。
- HTMLファイルのあちこちにアドレスが書かれています。もれなく自分のところのアドレスに書き換えてください。
- 自動移動を設定している場合は手動移動ではどうか確認ください。
- SSL化してあれば、まずはSSL無しで動くことを確認ください。
- 移行先アドレスの記述は、相対パスではなくフルパスで指定ください。
- ユーザ ID とパスワードを送っても返事がない。または、Web がエラーを帰す。
- この段階で Opengatesrv.cgi プログラムが起動します。よって様々なエラーの可能性があります。
- トップページを省略して直接にパスワード入力画面へリダイレクトするように設定していると動きません。必ず1ページ経由してください。
- 「ps ax」にてプロセス状況を確認ください。opengatesrv.cgi が起動されていますか。起動されていないなら、cgi の置き場所が、パスワード入力画面内の指定と狂っていないか確認ください。さらに Apache の設定において、cgi の場所や稼動許可の設定が間違っていないか確認ください。
- opengatesrv.cgi のプロセスが起動されているなら /var/log/opengate.log を確認ください。エラーが出ていればそれに対応ください。また、opengatesrv.h中で「#define DEBUG 1」を指定すると、作成関数間の呼び出しがlogに記録されますので、問題の切り分けに利用できます。
- 「ipfw list」にて、アクセスした端末に対するルールが追加されているか確認ください。ipfw は root 権限が必要です。もし追加されていない場合には、opengatesrv.cgi が root 権限で動くようになっているか確認ください。
- ヘッダーファイル opengatesrv.h 、Makefile内の設定を確認ください。それと Web ドキュメント等のファイル位置は合致していますか。
- accept.html の中に、Applet 挿入位置指定が正しく指定されていますか。
- WebブラウザはJavaが稼動可能の設定になっていますか。
- 他のWebブラウザやOSで確認ください。
- Java は正しい位置に保存していますか。その Java は正常に動くプログラムですか。
- confファイル中のサーバアドレスを名前ではなく、数字表記にしてみてください。
- 正しくパスワードを入れているはずなのに拒否される。
- /var/log/opengate.logを調べてください。
- server名がconfファイルにあるのに無いとlogメッセージが出るとき、confファイルの末尾に改行が抜けていることがありました。
- コンソールから認証サーバへアクセスしてみて正しく動くか確認下さい。
- 認証サーバ(POP/FTP)によっては、Welcomeメッセージなどが複数行になっていることがありますが、Opengateは一行を仮定して動作します。認証サーバの設定を変更してください。
例えば、
Windows用のTiny FTP Daemon For Windows95(H.Nomura)では、複数行メッセージがdefaultになっていますが一行に変更すれば動きます。変更不可ならOpengateの会話部分ソースの変更で対応下さい。
- 開放済の端末から重複して要求が来ると拒否します。そのまま外のサイトが見えるなら開放されています。JavaAppletが起動に失敗した場合は、サーバ側プロセスはJavaAppletが接続してくるのをfirewallを開放して一定時間待ち、閉鎖して終了します。
- 利用許可のページが表示されるがしばらく経つとネットワークが切断される。
- 利用許可のページに、黄色いフレームでユーザ名表示が出ていますか。出ていなければ、Javaの起動に失敗したようです。Java関連を確認ください。なおNetscape6、InternetExplorer6は、標準インストールではJavaが入りません。最初のJavaページアクセス時にダウンロードが要求されますのでメッセージに従って導入ください。それでも動作がおかしい場合は別のブラウザを使ってみてください。バージョンによってはJavaが動かない事があります。SunJava2を導入して見てください。
- 出ていれば、JavaAppletの出すメッセージを確認ください。以下の原因が考えられます。(1)ダウンロードしたJavaからサーバに対してコネクトしてこない。(2)Javaが定期通信に応答しない。(3)当端末のパケットが一定期間、ゲートウェイを通過していない。(4)Java終了などでTCPコネクションが閉じた。(5)サーバプログラムが何らかの原因で終了した。
- Javaがコネクトして来ない時は、以下の場合に閉鎖します。(1)認証ページで指定した利用時間が経過した。(2)当端末のパケットが一定期間、ゲートウェイを通過していない。(3)認証時と異なるMACアドレスが検出された。(4)許可ページの利用中断リンクが押された。
- /var/log/opengate.logにエラーが出ていればそれを参考にしてください。
- 上記項目の Java 関連を確認ください。また netstat 等でネットワーク状況を把握ください。Webブラウザ下部のメッセージ行に何か出てないか確認ください。
- 端末とゲートウェイトの間にキャッシュサーバやNAT,Proxyなどが存在する場合、そのサーバの IP アドレスを端末アドレスと誤解するため、Applet が正常動作しません。このような構成は避けてください。
- 利用許可ページの表示がおかしい。
- 正常であれば、2枚のページが重なって表示されます。第1ページには、JavaAppletが黄色の枠の中にユーザID等を表示します。第2ページには、各種リンクと利用上の注意が置かれます。
- 第1ページに黄色い枠が出ない場合は、JavaAppletの起動に失敗したと考えられます。上記の項目を参照ください。
- 第2ページはJavaScriptで出しています。出ない場合はJavaScript関連が疑わしいです。ただし、ページが出なくても利用に支障はありません。なお、Interner Explorerの場合のみ起こるのであれば、ブラウザの設定が壊れているためかも知れません。他のページでも同現象があれば以下を見てください。 http://support.microsoft.com/support/kb/articles/q180/1/76.asp 。IE6でも起きました。
- 利用認証を通らなくても最初からネットワークが利用できる。
- クライアントマシンにWebブラウザが常駐していませんか。Macintoshでは、画面上に無くても右上端のアプリケーションメニューに残っていることがあります。また、ある種のOSでは終了の概念のないものがあります。この場合は、javaに終了ボタンを付加するなどのプログラム変更が必要です。
- システムの突然停止やネットワークの切断のときには、コネクションの終了がサーバに対して即時に伝わりません。opengatesrv は、次の定期連絡の時にそれを検出しますので、しばらく待てば閉鎖されるはずです。
- いつまでも閉鎖されない場合は、何等かの原因で ipfw のルールが生き残ってしまったものと思われます。手動で削除するかシステムをリブートしてください。
- 端末とゲートウェイトの間に NAT が存在する場合、同一アドレスを共有することになりますので、一人が開ければ共有されます。このような構成は避けてください。
- 利用許可を通ったのにネットワークが利用できない。
- 「ipfw list」で ipfw のルールを確認ください。ルールの優先順等で矛盾はないですか。ブート時にipfw 起動エラーメッセージは出てないでしょうか。
- /var/log/opengate.logにエラーが出ていればそれを参考にしてください。
- Redirectされるtoppageが「NoCache」の設定を持っていないと、再度のアクセスではキャッシュが使われる。例えば、YahooアクセスがOpengateへRedirectされたときは、例えネットワークが開いていても、Yahooアクセスに対してOpengateのページがキャッシュから取り出される。
- 正しいパスワードを送っているはずなのに拒否される。
- 利用している認証サーバに対して直接にパスワードを送って認証サーバの状態を確認ください。
- /etc/opengatesrv.conf, radius.conf, pam.conf の認証サーバ設定がおかしくないですか。
- /var/log/opengate.logにエラーが出ていればそれを参考にしてください。
- ページが望む言語以外で表示される。
- index.html内の記述、 そのディレクトリ名、 makefile内の記述を確かめてください。言語指定のIDは一致する必要があります。IDは大文字、小文字も区別します。IDは2文字を使用します。
- 新しい言語を追加する時は、同様な形式でディレクトリにファイルを配置し、MakefileにIDを追加ください。
- 導入以降、サーバのネットワークトラブルが多いようだ。
-
できるだけ新しいものを利用下さい。特にVer.0.54以前には,長期運用に際して致命的なエラーを起こすプログラムミスを含んでいました。
- 認証通過に1分以上も掛かることがある。
-
まずはどこで時間を要しているかを切り分けて下さい。当方では、Apacheのhttpd.confにおいて"HostnameLookups On"が設定されていたため、名前解決に時間を要したことがあります。Offに設定して解決しました。
- どうしようもなくなったとき
-
opengatesrv/opengatesrv.h中に「#define DEBUG」の定義があります。これを「1」に設定すると、opengate.logにデバッグ出力が出ます。また、err_msg()関数は、出力をopengate.logに出します。適当な位置に挿入して下さい。使い方は、プログラム中の例を見れば分かると思いますが、printf()関数と同じ文法です。