6月 2005のアーカイブ
問題解決:MT 3.17と AdminCGIPath https+複数パス
Movable Type 3.17-ja, 3.17(3.16)-en_US では、App.pm を下記のように編集することにより、
mt.cfg
AdminCGIPath https://ss1.xrea.com/ユーザーID.s*.xrea.com/複数path/to/MT_DIR/mt.cgi
へのアクセスでは、
ScriptURI = ‘/ユーザーID.s*.xrea.com/複数path/to/MT_DIR/mt.cgi’ と正しくなります。
AdminCGIPath http://ユーザーID.s*.xrea.com/MT_DIR/mt.cgi
へのアクセスでは、
ScriptURI = ‘/MT_DIR/mt.cgi’
となります。
[MT]/lib/MT/App.pm の変更行
597行目あたりの サブルーチン sub app_path
if ($path =~ m!^https?://[^/]+(/?.*)$!i) {
$path = $1;
} elsif (!$path) {
$path = '/';
}
を下記のように変更します。
if ($path =~ m!^https?://[^/]+(/?.*)$!i) {
if ($ENV{REMOTE_ADDR} eq '192.168.1.xyz')
{ $path = '/ユーザーID.s*.xrea.com/複数path/to/MT_DIR/';}
else { $path = $1;}
} elsif (!$path) {
$path = '/';
}
Xrea.com さんのサーバでは、環境変数 HTTPS の on, off を取得できませんので、HTTPS によるアクセスは特定のローカル IP経由であることを利用し、環境変数 $ENV{REMOTE_ADDR}による条件文としました。サーバ名 (例: s150)には、ローカルなIPアドレスが設定されています (例: xyz=50であれば, 192.168.1.50) 。
注) ブログそのものは httpプロトコルで運用します。CGIPath, AdminCGIPath ともに https ではエラーが発生する可能性があります。
MT 3.17の問題点:AdminCGIPath, SSLサーバ( https プロトコル)
Movable Type 3.17-ja を Xrea.com さんのサーバにインストールすると、AdminCGIPath は SSL サーバ (サーバ名 ss1) 経由で利用できません。
[追記 2005/6/29] Movable Type 3.17-ja (デフォルト)のインストールで発生するこの問題点は Xrea.com さんのサーバでは解決しました。
エントリー「問題解決:MT 3.17とAdminCGIPath https+複数パス」
http://shellscript.biz/archives/000062.html
Movable Type (MT) 設定ファイル mt.cfg の中で、MT のベーシック・ディレクトリ (仮に MT_DIR とします) にある mt.cgi までの パス( PATH )を指定します。
CGIPath http://www.example.com/path/to/MT_DIR/
CGIPath https://www.example.com/path/to/MT_DIR/
形式は、http://, https:// で始まる「絶対 URL」です。ドメイン・ルートからの経路 (PATH) をすべて指定します。CGIPathであれば、PATH の数 (階層) には制限はありませんが、下記のように、mt.cgi のみ異なる URL で運用するとき (セキュリティ対策等のため、AdminCGIPath 利用時) 、
MT 3.17-ja MT 3.16-us MT 3.17-us
では、
AdminCGIPath https://ss1.xrea.com/ユーザーID.s*.xrea.com/www.example.com/path/to/MT_DIR/ [設定不可]
AdminCGIPath https://ss1.xrea.com/ユーザーID.s*.xrea.com/www.example.com/MT_DIR/ [設定不可]
AdminCGIPath http://ユーザーID.s*.xrea.com/www.example.com/MT_DIR/ [設定不可]
AdminCGIPath http://ユーザーID.s*.xrea.com/path/to/MT_DIR/ [設定不可]
AdminCGIPath http://ユーザーID.s*.xrea.com/MT_DIR/ [設定可]
AdminCGIPath https://www.example.com/MT_DIR/ [設定可]
となるようです。つまり、Xrea.com さんのサーバでは、必ず、ドメイン・ルート直下のMT_DIRにMTをインストールし、AdminCGIPath は SSL サーバ (サーバ名 ss1)を経由しないPATHとします。。MT 3.15-ja では、SSL サーバ (サーバ名 ss1) 経由など可能でしたので、セキュリティ上、とても残念なことです。
不正な ScriptURI : MT3.17, 3.16 / App.pm
[追記 2005/6/29] Movable Type 3.17-ja (デフォルト)のインストールで発生するこの問題点は Xrea.com さんのサーバでは解決しました。
エントリー「問題解決:MT 3.17とAdminCGIPath https+複数パス」
http://shellscript.biz/archives/000062.html
Xrea.com さんのサーバご利用の方は、エントリー:
「AdminCGIPath と SSLサーバ (https プロトコル)」
http://shellscript.biz/archives/000061.html
もご覧下さい。
Movable Type 3.17-ja では、AdminCGIPath を利用したとき、ウェブログの管理画面の ScriptURI (の PATH) は下記のように不正となります。
TMPL_VAR NAME=SCRIPT_URL の右辺に問題があります。
【CONFIGURATION SETTINGS】
http://www.sixapart.com/movabletype/docs/mtmanual_configuration.html#configuration%20settings
mt.cfg
CGIPath
AdminCGIPath
Examples:
CGIPath http://www.example.com/path/to/mt/
AdminCGIPath https://www.example.com/path/to/mt/
【MT 管理画面 ログイン・ページ】
MT version 3.17-ja ScriptURI = '/to/mt/mt.cgi'; ScriptBaseURI = ''; StaticURI = '/path/to/mt/'; MT version 3.15-ja ScriptURI = '/path/to/mt/mt.cgi'; ScriptBaseURI = ''; StaticURI = '/path/to/mt/';
【MT 管理画面 メニュー・ページ】
MT version 3.17-ja ScriptURI = '/mt/mt.cgi'; ScriptBaseURI = ''; StaticURI = '/path/to/mt/'; MT version 3.15-ja ScriptURI = '/path/to/mt/mt.cgi'; ScriptBaseURI = ''; StaticURI = '/path/to/mt/';
[2006.02.2005]
Changed files in MT 3.17
http://www.sixapart.com/pronet/weblog/2005/06/changed_files_i.html
lib/MT.pm lib/MT/App.pm lib/MT/App/CMS.pm lib/MT/Plugin.pm lib/MT/Template/Context.pm mt-db2sql.cgi php/mt.php plugins/nofollow/README.txt plugins/nofollow/nofollow.pl plugins/nofollow/tmpl/nofollow.tmpl tmpl/cms/edit_comment.tmpl
(一部のみ引用しました)
[追記 2005/6/23]
上記のファイルを調査を行ったところ、[MT]/lib/MT/App.pm 2005年作成版 が原因でした。
MT315-ja: App.pm,v 1.119.2.1 2004/10/06 22:46:46
ScriptURI は正常な URLとなりますが, 旧バージョンのため、
Error loading : syntax error at (eval 10) line 1, at EOF
と表示され、管理画面は作動しません。以下のバージョンでは、すべて異常な ScriptURIとなります。
MT316-us: App.pm 10862 2005-04-01 01:33:56Z MT317-us: App.pm 12790 2005-06-02 15:57:42Z MT317-ja: App.pm 12790 2005-06-02 15:57:42Z
[追記 2005/6/26]
MT 3.17-ja の管理画面を AdminCGIPath http://独自ドメイン/mt/mt.cgi で運用すると、SCRIPT_URL のPATH 不具合は発生しません。しかし、 AdminCGIPath http://複数の階層/mt/mt.cgi (または, AdminCGIPath https://複数の階層/mt/mt.cgi) にすると、エントリー、ウェブログの設定、サイトの再構築などのリンクは、URLのPATHが1階層短縮されるためアクセス不能となり、メイン・メニュー、ログアウトなどのリンクをクリックすると、ログイン・ページにリダイレクトされるなど、ブログのURL以外はすべて不正となります。大幅に変更された [MT]/lib/MT/App.pm ファイル内に問題がありそうです。
phpPgAdmin / phpMyAdmin
Xrea.com さんのサーバでは、データベース MySQL, PostgreSQL を複数同時使用できます。両DBをリモートで管理するデータベース補助プログラム (それぞれ) phpPgAdmin, phpMyAdmin も管理画面で簡単に自動インストールできます。
しかし、絶対パス /virtual/ユーザーID/public_html/log/
内にデフォルトで設定される .htpasswd, .htaccess ファイル はごくシンプルなものです。たとえば、Basic認証情報は、【 ユーザー名:ユーザーID, パスワード:****(4桁) 】です。
つまり、ユーザーID は、オリジナルドメインの運用でなければ、だれでも URL から読み取ることができます。パスワードは、ユーザー管理用パスワード 12桁 ************ の 上4桁(文字)です。暗号強度は、決して安全なものではありません。
しかも、このパスワードがクラッキングされると、ユーザー管理用パスワード 12文字をマスク法でクラッキングできますので、暗号強度は 8桁 (12桁-4桁) に著しく低下します。
http://tokyo-pax.co.jp/200207.htm
また、phpPgAdmin, phpMyAdmin にログインする際、.htaccess ファイル は http:// のアクセスも可能となっていますので、「オンラインパスワードクラッキング」ツールなどが利用されると、とても危険です。
参照ページ:
http://akademeia.info/main/lecture1/tokubetu_online_password_cracking.htm
絶対パス /virtual/ユーザーID/public_html/log/ には、ログ閲覧のページも含まれます(ただし、管理画面で有効とした時に限ります)。
よって、暗号強度をより安全なものにするための対策として、ドットファイル .htaccess / .htpasswd を以下のように変更します。
(1) 「ユーザー名」を【ユーザーID】以外に変更し、パスワードは Xrea.com さんの linux サーバで許可されている 8 桁のランダムな英数字 (大小英文字, 数字の組み合わせなど) に変更する。
検索サイトにて、キーワード「パスワード生成ツール htpasswd」を入力すると、オンラインで htpasswd用の暗号化パスワードを自動生成するサイトがいくつもヒットします。
他の参照ページ:
· 「BooCGIプログラム」
http://www.booboo.ne.jp/contents/cgi/program/limit/index.html
http://www.booboo.ne.jp/contents/cgi/program/limit/bpcl/bpcl.pl
参照サイトでは、アクセス制限cgi はリンクウエアで提供されています。また、商用サイトでの使用が禁止されていますので、主催者のページをよくご覧下さい。
Apache を利用した自サーバであれば、htpasswd コマンド に -m オプション を使用すれば、9桁以上の長いパスワードが作成できます (注: Xrea.com さんのサーバにSSH接続すると利用できる 制限シェル( rbash ) は htpasswd コマンドを許可していません)。
· 「ok24.jp – 技術ドキュメント Apache:htpasswd コマンド」
http://www.ok24.jp/tech/apache_htpasswd.html
(2) phpPgAdmin, phpMyAdmin (および、ログ閲覧) は https:// のみのアクセスとする。
Xrea.com さんのサーバでは、.htaccess 内に
Order deny,allow
Deny from all
Allow from 192.168.1 219.101.229
を追記し、アクセスの URL は、
http://sb.xrea.com/showthread.php?&threadid=6646
を参照します。
https://ss1.xrea.com/ユーザーID.s***.xrea.com/log/phpmyadmin/
暗号強度 128bit のSSL通信のみ許可しますので、クラッキングのためには、暗号強度 128bitで 8桁パスワードを解読することになりますが、Basic認証のユーザー名は変更されていますので、「ユーザーID」ではアクセスできません。
なお、念のため(ブラウザからドットファイルに直接アクセスされないように)、.htaccess 内に
<FilesMatch "^\.(htaccess|htpasswd|htgroup)$"> Order deny,allow Deny from all </FilesMatch>
を追記します。
固定リンク(関連エントリ):
· 「SSLで暗号化すべきウエブページが http でアクセスできる」
http://www.osbsd.net/archives/000082.php
· 「パスワードの暗号強度」
http://k-12.be/notes/000088.php
· .htaccess ファイルにより SSL 接続のみ許可する方法
http://shellscript.biz/archives/000041.html
SSLで暗号化すべきウエブページが http でアクセスできる
cookie 盗聴、フィッシング詐欺による偽ウェブサイトへの強制的なリダイレクトなどにより、ウエブ上の重要なユーザ情報が盗まれないために。
セッション管理のため cookie を使用するとき[2つのプロトコル(モード): 標準(http) | SSL(https) を使い分ける場合も含む]、ログイン用の認証ページ、内部リンク先で暗号化によるデータ送信のみ行いたいページでは、、http:// ページ用 cookieとは別のものを作成し、かつ http:// では決してアクセスできないように設定する必要があります。
http://www.ipa.go.jp/security/ciadr/20030808cookie-secure.html
また、https:// ページの cookie には、secure 属性を必ず記述し、暗号送信します。
cookie 設定に際して、通常、有効期限を設けますので、
http://www.yanagisawa.ws/WBL/ASP/session.asp#Cookie
Cookie 値は、クライアントPC のハードディスクに保存されます。
万一、cookie 情報が、仕掛けられたスパイウエアなどによりクライアントPCのハードディスクから流出( https:// であってもおこります)したり、ネットワーク傍受 ( http:// )により、悪用されたとき、
変数名=値 に [ログインID] そのものを使用していると、
「オンラインパスワードクラッキング」のためのブルートフォースアタック用ツールなどがあれば、少ない文字数のパスワードについてはその解読は短時間で終了します。
参照ページ: http://akademeia.info/main/lecture1/tokubetu_online_password_cracking.htm
ブルートフォース攻撃を防ぐためには、パスワードの連続入力回数を制限することも大切です。また、変数名に対応する「値」には [ログインID]以外のものを使用します。
SSL, cookie が正しく設定されていないサイトを利用するときの一般的な対策として、
「Cookie盗聴によるWebアプリケーションハイジャックの危険性とその対策」
http://securit.gtrc.aist.go.jp/research/paper/AIST03-J00017/
文章内の 補足3 を以下に引用します
・・・対策が不完全なサイト(1. すべてのページが http
s:// で構成されているが、セッション追跡用cookieにsecure属性が付けられていないサイト、 2. SSLで保護すべき画面に http
:// でアクセスできてしまうサイト)においては、利用者による自衛手段がある。
· 攻撃者が仕掛けた罠のリンクにジャンプしてしまうことを防止するため、当該サイトにログイン中に他のサイトへアクセスに行かないようにする。
· HTMLメールを表示しただけで罠のURLへのアクセスが生ずることがあるので、ログイン中にメールを読まないようにする。