序章

多くのユーザーはMySQLのようなデータベース管理システムの機能を必要としていますが、MySQLプロンプトだけからシステムを操作することに抵抗を感じる場合があります。

phpMyAdmin は、ユーザーがWebインターフェイスを介してMySQLと対話できるように作成されました。 このガイドでは、phpMyAdminをインストールして保護し、Ubuntu14.04でデータベースを安全に管理できるようにする方法について説明します。

注: phpMyAdminは、起動時にこのスクリプトをユーザーデータに追加することで、ドロップレットに自動的にインストールできます。 ドロップレットユーザーデータの詳細については、このチュートリアルをご覧ください。

前提条件

このガイドを開始する前に、いくつかの基本的な手順を完了する必要があります。

まず、Ubuntu 14.04 初期サーバーセットアップの手順1〜4で説明されているように、sudo権限を持つroot以外のユーザーを使用していると想定します。

また、Ubuntu 14.04サーバーへのLAMP(Linux、Apache、MySQL、およびPHP)のインストールが完了していることを前提としています。 これがまだ完了していない場合は、 Ubuntu14.04へのLAMPスタックのインストールに関するこのガイドに従うことができます。

これらの手順を完了すると、このガイドを開始する準備が整います。

ステップ1—phpMyAdminをインストールします

開始するには、デフォルトのUbuntuリポジトリからphpMyAdminをインストールするだけです。

これを行うには、ローカルパッケージインデックスを更新してから、aptパッケージシステムを使用してファイルをプルダウンし、システムにインストールします。

sudo apt-get update
sudo apt-get install phpmyadmin

これにより、インストールを正しく構成するためにいくつかの質問が表示されます。

警告

最初のプロンプトが表示されると、apache2が強調表示されますが、は選択されていません。 「スペース」を押してApacheを選択しない場合、インストーラーはインストール中に必要なファイルを移動しません。 「SPACE」、「TAB」、「ENTER」の順に押して、Apacheを選択します。

  • サーバーの選択には、apache2を選択します。
  • dbconfig-commonを使用してデータベースをセットアップするかどうかを尋ねられたら、はいを選択します
  • データベース管理者のパスワードの入力を求められます
  • 次に、phpMyAdminアプリケーション自体のパスワードを選択して確認するように求められます

インストールプロセスでは、実際にphpMyAdminApache構成ファイルが/etc/apache2/conf-enabled/ディレクトリに追加され、そこで自動的に読み取られます。

php5-mcrypt拡張機能を明示的に有効にするだけで、次のように入力できます。

sudo php5enmod mcrypt

その後、変更を認識するためにApacheを再起動する必要があります。

sudo service apache2 restart

これで、サーバーのドメイン名またはパブリックIPアドレスに続いて/phpmyadminにアクセスして、Webインターフェイスにアクセスできます。

http:// domain_name_or_IP / phpmyadmin

phpmyadmin login screen

これで、rootユーザー名と、MySQLのインストール中に設定した管理者パスワードを使用してインターフェースにログインできます。

ログインすると、次のようなユーザーインターフェイスが表示されます。

phpmyadmin user interface

ステップ2—phpMyAdminインスタンスを保護します

phpMyAdminインターフェイスをかなり簡単に起動して実行することができました。 ただし、まだ完了していません。 どこにでもあるため、phpMyAdminは攻撃者に人気のあるターゲットです。 不正使用を防ぐために、アプリケーションを保護する必要があります。

これを行う最も簡単な方法の1つは、アプリケーション全体の前にゲートウェイを配置することです。 これは、Apacheの組み込みの.htaccess認証および承認機能を使用して行うことができます。

.htaccessオーバーライドを許可するようにApacheを設定する

まず、Apache構成ファイルを編集して、.htaccessファイルオーバーライドの使用を有効にする必要があります。

Apache構成ディレクトリに配置されているリンクファイルを編集します。

sudo nano /etc/apache2/conf-available/phpmyadmin.conf

次のように、構成ファイルの<Directory /usr/share/phpmyadmin>セクション内にAllowOverride Allディレクティブを追加する必要があります。

オプションFollowSymLinksDirectoryIndexindex.phpAllowOverrideAll 。 . . 

この行を追加したら、ファイルを保存して閉じます。

行った変更を実装するには、Apacheを再起動します。

sudo service apache2 restart

.htaccessファイルを作成する

アプリケーションで.htaccessの使用を有効にしたので、実際にセキュリティを実装するためにアプリケーションを作成する必要があります。

これを成功させるには、ファイルをアプリケーションディレクトリ内に作成する必要があります。 次のように入力して、必要なファイルを作成し、root権限でテキストエディタで開くことができます。

sudo nano /usr/share/phpmyadmin/.htaccess

このファイル内に、次の情報を入力する必要があります。

AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user

これらの各行の意味を見てみましょう。

  • AuthType Basic :この行は、実装する認証タイプを指定します。 このタイプは、パスワードファイルを使用してパスワード認証を実装します。
  • AuthName :認証ダイアログボックスのメッセージを設定します。 許可されていないユーザーが保護されているものに関する情報を取得しないように、この汎用を維持する必要があります。
  • AuthUserFile :認証に使用するパスワードファイルの場所を設定します。 これは、提供されているディレクトリの外にある必要があります。 このファイルはまもなく作成されます。
  • Require valid-user :これは、認証されたユーザーのみにこのリソースへのアクセスを許可する必要があることを指定します。 これは、許可されていないユーザーの侵入を実際に阻止するものです。

終了したら、ファイルを保存して閉じます。

認証用の.htpasswdファイルを作成します

.htaccessファイル内のAuthUserFileディレクティブを使用してパスワードファイルの場所を指定したので、このファイルを作成する必要があります。

このプロセスを完了するには、実際には追加のパッケージが必要です。 デフォルトのリポジトリからインストールできます。

sudo apt-get install apache2-utils

その後、htpasswdユーティリティを利用できるようになります。

パスワードファイル用に選択した場所は「/etc/phpmyadmin/.htpasswd」でした。 このファイルを作成し、次のように入力して初期ユーザーに渡します。

sudo htpasswd-c/etc/phpmyadmin/.htpasswdユーザー名

作成するユーザーのパスワードを選択して確認するように求められます。 その後、入力したハッシュパスワードを使用してファイルが作成されます。

追加のユーザーを入力する場合は、次のように -cフラグなしで入力する必要があります。

sudo htpasswd /etc/phpmyadmin/.htpasswdadditionaluser

これで、phpMyAdminサブディレクトリにアクセスすると、設定した追加のアカウント名とパスワードの入力を求められます。

http:// domain_name_or_IP / phpmyadmin

phpMyAdmin apache password

Apache認証を入力すると、通常のphpMyAdmin認証ページが表示され、他の資格情報を入力できます。 phpMyAdminは過去に脆弱性に悩まされていたため、これによりセキュリティの層が追加されます。

結論

これで、phpMyAdminが構成され、Ubuntu14.04サーバーで使用できるようになります。 このインターフェースを使用すると、データベース、ユーザー、テーブルなどを簡単に作成し、構造やデータの削除や変更などの通常の操作を実行できます。

SSLを使用して通信を暗号化することにより、サーバーとのやり取りをさらに保護する方法については、phpMyAdminを使用したSSL証明書の設定に関する記事をご覧ください。

ジャスティン・エリングウッド