前書き

多くのユーザーは、MySQLのようなデータベース管理システムの機能を必要としますが、MySQLプロンプトだけからシステムとやり取りするのは気分が悪いかもしれません。

  • phpMyAdmin *は、ユーザーがWebインターフェイスを介してMySQLとやり取りできるように作成されました。 このガイドでは、phpMyAdminをインストールしてセキュリティで保護し、Ubuntu 16.04システムからデータベースを安全に管理できるようにする方法について説明します。

前提条件

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

まず、https://digitalocean.com/community/articles/initial-server-setup-with-ubuntu- 16-04 [Ubuntu 16.04の初期サーバーセットアップ]。

また、Ubuntu 16.04サーバーでLAMP(Linux、Apache、MySQL、およびPHP)のインストールを完了したと想定します。 これがまだ完了していない場合は、https://digitalocean.com/community/articles/how-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntu-16-04でこのガイドに従うことができます[Ubuntu 16.04にLAMPスタックをインストール]。

最後に、phpMyAdminなどのソフトウェアを使用する際には、次の理由から重要なセキュリティ上の考慮事項があります。

  • MySQLインストールと直接通信します

  • MySQLクレデンシャルを使用した認証を処理します

  • 任意のSQLクエリの結果を実行して返します

これらの理由により、また攻撃の対象となることが多い、広く配備されたPHPアプリケーションであるため、プレーンHTTP接続を介してリモートシステムでphpMyAdminを実行しないでください。 SSL / TLS証明書で構成された既存のドメインがない場合は、https://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s-でこのガイドに従うことができますencrypt-on-ubuntu-16-04 [Ubuntu 16.04でLet’s Encryptを使用してApacheを保護する]。

これらの手順を完了したら、このガイドを開始できます。

ステップ1-phpMyAdminのインストール

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

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

sudo apt-get update
sudo apt-get install phpmyadmin php-mbstring php-gettext

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

  • サーバーを選択するには、* apache2 *を選択します。

  • `+ dbconfig-common +`を使用してデータベースをセットアップするかどうかを尋ねられたら、* yes *を選択します

  • データベース管理者のパスワードの入力を求められます

  • 次に、 `+ phpMyAdmin +`アプリケーション自体のパスワードを選択して確認するように求められます

インストールプロセスは、実際にphpMyAdmin Apache設定ファイルを `+ / etc / apache2 / conf-enabled / +`ディレクトリに追加し、そこで自動的に読み込まれます。

行う必要があるのは、PHPの `+ mcrypt `および ` mbstring +`拡張機能を明示的に有効にすることだけです。

sudo phpenmod mcrypt
sudo phpenmod mbstring

その後、変更が認識されるようにApacheを再起動する必要があります。

sudo systemctl restart apache2

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

https:///phpmyadmin

image:https://assets.digitalocean.com/articles/phpmyadmin_1604/small_login_screen.png [phpMyAdminログイン画面]

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

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

image:https://assets.digitalocean.com/articles/phpmyadmin_1604/small_user_interface.png [phpMyAdminユーザーインターフェイス]

ステップ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 +`ディレクティブを追加する必要があります。

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

<Directory /usr/share/phpmyadmin>
   Options FollowSymLinks
   DirectoryIndex index.php

   . . .

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

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

sudo systemctl restart apache2

.htaccessファイルを作成する

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

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

sudo nano /usr/share/phpmyadmin/.htaccess

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

/usr/share/phpmyadmin/.htaccess

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

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

  • + AuthType Basic +:この行は、実装する認証タイプを指定します。 このタイプは、パスワードファイルを使用してパスワード認証を実装します。

  • + AuthName +:これは、認証ダイアログボックスのメッセージを設定します。 権限のないユーザーが保護対象に関する情報を取得できないように、この汎用を保持する必要があります。

  • + AuthUserFile +:これは、認証に使用されるパスワードファイルの場所を設定します。 これは、提供されるディレクトリの外部にある必要があります。 このファイルはすぐに作成します。

  • + Require valid-user +:これは、認証されたユーザーのみにこのリソースへのアクセスを許可することを指定します。 これは、許可されていないユーザーの侵入を実際に阻止するものです。

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

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

パスワードファイル用に選択した場所は「 + / etc / phpmyadmin / .htpasswd」です。 これでこのファイルを作成し、 `+ htpasswd +`ユーティリティで初期ユーザーに渡すことができます:

sudo htpasswd -c /etc/phpmyadmin/.htpasswd

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

追加のユーザーを入力する場合は、次のように `+ -c +`フラグを*せずに入力する必要があります。

sudo htpasswd /etc/phpmyadmin/.htpasswd

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

https:///phpmyadmin

image:https://assets.digitalocean.com/articles/phpmyadmin_1404/apache_auth.png [phpMyAdmin apache password]

Apache認証を入力すると、通常のphpMyAdmin認証ページに移動して、他の認証情報を入力します。 phpMyAdminは過去に脆弱性に悩まされていたため、これによりセキュリティのレイヤーが追加されます。

結論

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