はじめに
多くのユーザーはMySQLのようなデータベース管理システムの機能を必要としていますが、MySQLプロンプトのみからシステムと対話することは快適ではないかもしれません。
phpMyAdminは、ユーザーがWebインターフェイスを介してMySQLと対話できるように作成されました。 このガイドでは、phpMyAdminをインストールして保護して、Ubuntu16.04システムからデータベースを安全に管理できるようにする方法について説明します。
前提条件
このガイドを始める前に、いくつかの基本的な手順を完了しておく必要があります。まず、Ubuntu16.04の初期サーバー設定の手順1-4で説明されているように、sudo権限を持つ非rootユーザーを使用していると仮定します。また、Ubuntu16.04サーバーにLAMP(Linux、Apache、MySQL、およびPHP)のインストールが完了したと仮定します。 これがまだ完了していない場合は、Ubuntu16.04にLAMPスタックをインストールするためのこのガイドに従うことができます。
最後に、phpMyAdminのようなソフトウェアを使用する場合、重要なセキュリティ上の考慮事項があります。
- MySQLのインストールと直接通信します
- MySQLの資格情報を使用して認証を処理します
- 任意のSQLクエリの結果を実行して返します
これらの理由から、広く展開されているPHPアプリケーションであり、攻撃の対象となることが多いため、リモートシステム上でphpmyadminをプレーンなHTTP接続を介して実行するべきではありません。 SSL/TLS証明書で構成された既存のドメインがない場合は、Ubuntu16.04でLet’S Encryptを使用したApacheの保護に関するこのガイドに従うことができます。
これらの手順が完了したら、このガイドを開始する準備が整いました。ステップ1—phpMyAdminのインストール
開始するには、デフォルトのUbuntuリポジトリからphpMyAdminをインストールします。これを行うには、ローカルパッケージインデックスを更新し、apt
パッケージシステムを使用してファイルをプルダウンし、システムにインストー:
- sudo apt-get update
- sudo apt-get install phpmyadmin php-mbstring php-gettext
インストールを正しく設定するために、いくつかの質問が表示されます。
警告:最初のプロンプトが表示されると、apache2は強調表示されますが、選択されません。 Apacheを選択するためにスペースをヒットしない場合、インストーラはインストール中に必要なファイルを移動しません。 スペース、タブを押し、次にApacheを選択するために入力します。
- サーバーを選択するには、apache2を選択します。
- データベースを設定するために
dbconfig-common
を使用するかどうかを尋ねられたらyesを選択します - データベース管理者のパスワードの入力を求められます
- その後、
phpMyAdmin
アプリケーション自体のパスワードを選択して確認するよう求められます
インストールプロセスは、実際にphpMyAdmin Apache設定ファイルをphpMyAdmin
アプリケーション自体
インストールプロセスは、phpMyAdmin
アプリケーション自体
インストールプロセスは、実際にphpMyAdmin Apache設定ファイルをphpMyAdmin
アプリケーション自体のパスワードを選択して確認するよう求められます。/etc/apache2/conf-enabled/
ディレクトリ。
私たちがする必要があるのは、PHPmcrypt
mbstring
拡張機能を明示的に有効にすることだけです。
- sudo phpenmod mcrypt
- sudo phpenmod mbstring
その後、変更を認識するためにApacheを再起動する必要があります。
mcrypt
mbstring
拡張機能は次のように入力して行うことができます。
- sudo phpenmod mcrypt
- sudo phpenmod mbstring
その後、変更を認識するためにApacheを再起動する必要があります。
- sudo systemctl restart apache2
サーバーのドメイン名またはパブリックipアドレスの後に/phpmyadmin
にアクセスして、webインターフェイスにアクセスできるようになりました/phpmyadmin
:
https://domain_name_or_IP/phpmyadmin
root
ユーザー名とMySQLのインストール中に設定した管理パスワードを使用してインターフェイ
ログインすると、次のようなユーザーインターフェイスが表示されます。
ステップツー—phpMyAdminインスタンスを保護
phpMyAdminインターフェイスをかなり簡単に起動して実行することができました。 しかし、我々はまだ行われていません。 その遍在性のために、phpMyAdminは攻撃者のための一般的なターゲットです。 不正アクセスを防止するための追加の措置を講じる必要があります。
これを行う最も簡単な方法の一つは、アプリケーション全体の前にゲートウェイを配置することです。 これは、Apacheの組み込み.htaccess
認証と承認の機能を使用して行うことができます。
許可するようにApacheを設定します。htaccessのオーバーライド
まず、Apache設定ファイルを編集して.htaccess
ファイルのオーバーライドの使用を有効にする必要があります。
Apache設定ディレクトリに配置されているリンクファイルを編集します。
- sudo nano /etc/apache2/conf-available/phpmyadmin.conf
設定ファイルの<Directory /usr/share/phpmyadmin>
AllowOverride All
ディレクティブを追加する必要があります。
<Directory /usr/share/phpmyadmin> Options FollowSymLinks DirectoryIndex index.php AllowOverride All . . .
この行を追加したら、ファイルを保存して閉じます。変更を実装するには、Apacheを再起動します。
- sudo systemctl restart apache2
作成します。htaccessファイル
アプリケーションで.htaccess
使用を有効にしたので、実際にセキュリティを実装するために作成する必要があります。
これを成功させるには、アプリケーションディレクトリ内にファイルを作成する必要があります。 必要なファイルを作成し、root権限でテキストエディタで開きます。
- sudo nano /usr/share/phpmyadmin/.htaccess
このファイル内に次の情報を入力する必要があります。
AuthType BasicAuthName "Restricted Files"AuthUserFile /etc/phpmyadmin/.htpasswdRequire valid-user
これらの行のそれぞれが何を意味するのか見てみましょう:p>
AuthType Basic
:この行は、実装している認証タイプを指定します。 このタイプでは、パスワードファイルを使用したパスワード認証が実装されます。AuthName
:これは、認証ダイアログボックスのメッセージを設定します。 許可されていないユーザーが保護されているものに関する情報を取得しないように、この一般的なものを保持する必要があります。AuthUserFile
:これは、認証に使用されるパスワードファイルの場所を設定します。 これは、提供されているディレクトリの外にある必要があります。 このファイルはすぐに作成します。Require valid-user
:これは、認証されたユーザーのみがこのリソースへのアクセス権を与えることを指定します。 これは、不正なユーザーが実際に入るのを止めるものです。完了したら、ファイルを保存して閉じます。
を作成します。認証用のhtpasswdファイル
パスワードファイルに選択した場所は”
/etc/phpmyadmin/.htpasswd
htpasswd
ユーティリティを使用して初期ユーザーに渡すことができます:p>- sudo htpasswd -c /etc/phpmyadmin/.htpasswd username
作成しているユーザーのパスワードを選択して確認するように求められます。 その後、入力したハッシュ化されたパスワードを使用してファイルが作成されます。
追加のユーザーを入力する場合は、
-c
フラグを付けずに入力する必要があります。- sudo htpasswd /etc/phpmyadmin/.htpasswd additionaluser
phpMyAdminサブディレクトリにアクセスすると、設定した追加のアカウント名とパスワードの入力を求められます:
https://domain_name_or_IP/phpmyadmin
Apache認証を入力すると、通常のphpMyAdmin認証ページに移動して他の資格情報を入力します。 これにより、phpMyAdminは過去に脆弱性に苦しんでいたため、セキュリティの追加レイヤーが追加されます。これで、phpMyAdminが設定され、Ubuntu16.04サーバーで使用できるようになりました。 このインターフェイスを使用すると、データベース、ユーザー、テーブルなどを簡単に作成できます。 構造体やデータの削除や変更などの通常の操作を実行します。