Ubuntu14.04にphpMyAdminをインストールして保護する方法
序章
多くのユーザーは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
これで、root
ユーザー名と、MySQLのインストール中に設定した管理者パスワードを使用してインターフェースにログインできます。
ログインすると、次のようなユーザーインターフェイスが表示されます。
ステップ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
Apache認証を入力すると、通常のphpMyAdmin認証ページが表示され、他の資格情報を入力できます。 phpMyAdminは過去に脆弱性に悩まされていたため、これによりセキュリティの層が追加されます。
結論
これで、phpMyAdminが構成され、Ubuntu14.04サーバーで使用できるようになります。 このインターフェースを使用すると、データベース、ユーザー、テーブルなどを簡単に作成し、構造やデータの削除や変更などの通常の操作を実行できます。
SSLを使用して通信を暗号化することにより、サーバーとのやり取りをさらに保護する方法については、phpMyAdminを使用したSSL証明書の設定に関する記事をご覧ください。