Authentication




Cancel OK
B!コメントする  2011-06-30 14:53:00 by old

phpMyAdminのセキュリティ

 phpMyAdminを設置したらいつも「config.inc.php」や「config.default.php」を編集してましたが、つい先ほど

phpmyadmin/scripts/setup.php

でも色々と設定出来ることを始めて知った。
まぁ普通は常識だったんでしょうけど、最初からいまのように使ってきたのでこんな画面があること自体知りませんでした。
いや・・・まぁ・・・phpMyAdmin自体がGUIなのでそれを管理するものがあった場合にそれもGUIであるのは当たり前といえば当たり前なんですけどね・・・
 でもこれよく考えたらトップ画面は認証あるからいいけど、ここは丸見えではござらんかね。
 もともと公開フォルダに置くこと自体滅多にないですけど、もし置く場合は必ず以下の事をしてますので参考までに置いておきます。
<p class="selector03">フォルダ名を変える</p>当たり前ですがデフォルトのフォルダ名は危ないので推測の難しいものにしておきます。
<p class="selector03">Aliasを使用して公開フォルダ設置を避ける</p>Alias使えないサーバーだとアウトですが、公開フォルダに置くのは危険です。
もしAliasが使えるならマッピングして公開サーバーで公開しましょう。
<p class="selector03">phpMyAdmin内にBasic認証(もしくはDigest認証)を置く</p>トップはログイン出来なくても他の部分にはアクセス出来たり、phpMyAdmin自体の脆弱性を突かれることもあるので認証は複数段構えていたほうがいいでしょう。
<p class="selector03">アクセス制限をする</p>ルーターやファイアーウォールで出来ればいいのですが、手っ取り早く.htaccessで特定PCやドメインのみからアクセス出来るようにします。

order deny,allow
deny from all
allow from 127.0.0.1
allow from 192.168.0.123
allow from .example.com
allow from 192.168.9.
allow from localhost

こんな感じで追加すればphpMyAdminには指定アドレスからしかアクセスが出来なくなります。
<p class="selector03">認証に使用するパスフレーズを変更する</p>phpmyadmin/config.inc.php
にある
$cfg['blowfishsecret'] 

を変更します。
$cfg['blowfishsecret'] = 'ggYTCwsIJ1yUsZV8Zo4ShzoCrTnUVxFH';

ちなみに46文字まで指定出来ますが、それを超えるとphpMyAdminが機能しなくなりますので46文字にしておきましょう。

あと個人的にはデフォルトのログイン時間(1800秒)を変更します。
libraries/config.default.php

内の以下の数値を変更することでセッションの有効時間を変更出来ます。

$cfg['LoginCookieValidity'] = '10800';

MySQL自体のセキュリティもしておく必要がありますが、それをコントロールするものにphpMyAdmin自体を利用している際は最低限これくらいはしておいて損はありません。


サーバー  

  • コメント
  • コメントはまだありません