phpMyAdmin

拙宅サーバーで採用しているMySQLですが、
テーブル作成や削除など簡単なものは
コマンドでの操作もやりますが、
込み入った作業はphpMyAdminが便利です。
ブラウザからの操作で、やるべきことが
タブにずらっと並び、例えばテーブルの
修復や分析、最適化などがワンクリックで♪

いつも言っていますが、便利なものには
リスクが付きまとう・・・
これを書いている時点でのphpMyAdmin最新は
ver.4.28でしょうか。
そしてCentoOS6.5のyumコマンドでインストール
(アップデート)できるのはver.3.5.7のようです。
これらのバージョンで新しい脆弱性が発覚したかは
定かではありませんが、これ以前のバージョンにおいて
多くの穴が見つかり、これらを対象にしたクラッキングが
横行しています。

じゃあ最新なもの使えば?

phpMyAdminはもちろんphpで書かれています。
phpMyAdminのバージョンにより、必要なphpの
バージョンや扱えるMySQLのバージョンが限定されます。
CentOS6.5にver.4.28を導入してブラウザからアクセス
すると、MySQLのバージョンが5.5以上でないとダメ!
って怒られるだけで使用できません。
CentOS6.5においてアップデートができるMySQLの
バージョンは現時点で5.1なんです。

PHPであれMySQLであれソースからコンパイルすれば
最新バージョンが使えるかもしれませんが、ほかの
サーバーアプリとの整合性に問題が発生した場合、個々に
対応する必要があります。
標準でインストール(アップデート)される各バージョンは
整合性が取れているので、phpMyAdminのためにそんな
苦労はしたくなんぞありませぬ。。。

勿論phpMyAdminはFTPなどでユーザーがアップしても
使用できます。
拙宅サーバーはMySQLを一般ユーザーに触らせないので
問題ありませんが、ユーザーがサワれる環境において
古いバージョンのphpMyAdminをインストールしたままだったら。。
そこから穴が開きます。

そんな面倒臭がり屋は拙生だけかと思ったら、
古いバージョンをそのまま使い続けている例は世界中に
あるようで、だからこそクラッキングも横行するわけです。
多くのクラッキングは新しいバージョンではなくなった
setupディレクトリへのアタックから行われます。

【勘違い】

かなり昔のあるバージョンから、認証機能が付きました。
それ以前はディレクトリにBASIC認証などを自前で
設定しておりました。では必要ないのか・・・
この認証はアプリケーション認証であって、パスが予測できる
setupディレクトリへはダイレクトにアクセス出来ちゃいます。

【対策】

ですから、昔のようにディレクトリ自体への認証機能は
必要であり、それによりsetupディレクトリアタックによる
クラッキングはなくなるのです。

【更に問題点】

BASIC認証自体のセキュリティにも問題があります。
BASIC認証はパケットにBASE64でエンコードした
パスワードとIDを流すシステムなので、セキュリティ
的には決して高いとは言えません。

流れるパッケットからBASE64のデコードでIDと
パスワードを解析することは比較的簡単ですが、
setupディレクトリへのダイレクトアクセスと
組み合わせてアタックしてくるクラッキングは
稀であると思われ、十分役目を果たしてくれるでしょう。

気にする方はMD5により文字列をhash化したDigest認証を
使用すると良いでしょう。

【参考】

CentOS7からMySQLは標準から外れました。
(標準はMariaDB)

MySQLをインストールするためには
インストールパッケージをダウンロード・展開(tar→rpm)
・インストールできますが、MySQL公式リポジトリを
インストールしてyumで管理する方が楽チンでしょう。

yum install http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

yum install mysql
yum install mysql-server
yum install mysql-****

すでにMariaDBがインストールされている場合は
事前にアンインストールしておきます。

HOME