仮想化生活への軌跡

Feed Rss


MySQL管理ツール – SQL Buddyの導入

12.09.2013, Apache, MySQL, Ubuntu Server, Webアプリ, by .

はじめに

先日、遅まきながら自宅サーバーにMySQ管理ツール”SQL Buddy”を導入してみました。
SQL Buddyを導入することで複雑なコマンドライン入力を行うことなく、ブラウザ上のGUI操作でMySQLの操作・管理を行うことができます。

今回はその導入の手順をまとめておきます。


前提となる環境

● Ubuntu Server 12.04 x64
● LAMP環境を構築済みであること

SQL BuddyはPHPで動くWebアプリであるため、LAMP環境の構築が必須となります。
LAMP環境の構築方法については、別稿を参照してください。


導入手順

まずは公式サイトよりプログラム(sqlbuddy.zip)をダウンロードします。

ここでは/tmpディレクトリで作業を行います。
cd /tmp
wget https://github.com/calvinlough/sqlbuddy/raw/gh-pages/sqlbuddy.zip


zipファイルを解凍するため、”unzip”をインストールします。
sudo apt-get install unzip


インストールを終えたら”sqlbuddy.zip”を解凍し、解凍してできたディレクトリをApacheのドキュメントルート(ここでは/var/www)に移動します。
unzip sqlbuddy.zip
sudo mv sqlbuddy /var/www
sudo chown -R www-data:www-data /var/www/sqlbuddy


以上の操作でインストール自体は完了です。

ブラウザから http://サーバーのip/sqlbuddy にアクセスすると下のようなログイン画面が現れるはずです。
sqlbuddy


セキュリティ対策

SQL Buddyを公開サーバーに導入する場合には、以上のままでは第三者が容易にログイン画面に到達することができてしまうため、セキュリティの観点から問題があります。
第三者によるMySQLへの不正な侵入を防止するため、以下のような対策を講じる必要があります。

■ ディレクトリ名を変更する
/sqlbuddy というディレクトリ名を別の名称に変更することで第三者によるSQL Buddyへのアクセスをある程度抑制することができます。
たとえばsqlbuddyのディレクトリ名を”example”に変更する場合には以下のようにコマンドを入力します。
sudo mv /var/www/sqlbuddy /var/www/example


■ アクセス制限(BASIC認証)
/var/www/sqlbuddy のディレクトリへのアクセス制限をかけることで、限られたユーザーのみがSQL Buddyのログイン画面にアクセスすることができるようになります。
ここではApacheのBASIC認証を利用します。

まずは以下のコマンドで認証用のユーザー(ここではhogehoge)を作成します。
コマンドを入力すると”hogehoge”に対するパスワードの設定を要求されるので、任意のパスワードを設定します。
htpasswd -c /etc/apache2/.htpasswd hogehoge


追加ユーザーを作成する場合のコマンドは以下のようになります。
-c のオプションをつけたままユーザーを作成すると/etc/apache2/.htpasswdに保存された既存の設定情報が上書きされてしまうので注意してください。
htpasswd /etc/apache2/.htpasswd hogehoge2


次にApacheのサイト定義ファイル(ここではデフォルトの/etc/apache2/sites-available/default)を編集します。
まずはエディタで定義ファイルを開きます。
sudo vi /etc/apache2/sites-available/default


ファイルを開いたら、以下のように編集します。
...
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>
#--- ここから追加 ---
#SQL Buddy
     <Directory "/var/www/sqlbuddy">
                AuthType Basic
                AuthName "Basic Authentication"
                AuthUserFile /etc/apache2/.htpasswd
                Require user hogehoge
        </Directory>
#--- ここまで ---
        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
...


編集を終えたらApacheを再起動しておきます。
service apache2 restart


■ SSL通信化
BASIC認証では、認証の際のIDとパスワードが平文で送信されてしまうため、これらの情報を盗聴されてしまう恐れがなお残ります。
しかし、SSLを使えば認証の際に送られる情報が暗号化されるため、盗聴行為を防止することができます。

SSLを利用するための方法には複数の手段が存在しますが、筆者は当サイトで既に紹介したリバースプロキシー”Pound”を介して、クライアント⇔フロントエンド間の通信を暗号化する方法を採用しています。
Poundの導入方法については別稿を参照してください。

MySQLサーバーと異なるサーバーに導入する場合

MySQLが稼動するDBサーバーとは別個のWEBサーバーにSQL Buddyを導入した場合、そのままではSQL BuddyからMySQLにアクセスすることができません。
当サイトの別稿を参照の上必要な対策を行ってください。


Advertisement


RelatingPosts

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*