phpMyAdminは、無料のオープンソースPHPベースのアプリケーションであり、Webベースのインターフェイスを介したMySQLおよびMariaDBサーバーの管理を簡素化するように設計されています。
phpMyAdminを使用すると、MySQLデータベース、ユーザーアカウントと権限の管理、SQLステートメントの実行、さまざまなデータ形式でのデータのインポートとエクスポートなどを行うことができます。
このチュートリアルでは、ApacheWebサーバーを使用してDebian9にphpMyAdminをインストールして保護するために必要な手順について説明します。
前提条件#
このチュートリアルを進める前に、次の要件を満たしていることを確認してください。
- DebianサーバーにLAMP(Linux、Apache、MySQL、およびPHP)をインストールします。
- sudo権限を持つユーザーとしてログインしました。
オプションですが、HTTPS経由でphpMyAdminインストールにアクセスすることをお勧めします。ドメインがSSLでまだ保護されていない場合は、このガイドに従って、Debian 9でLet’sEncryptを使用してApacheを保護できます。
phpMyAdminのインストール#
Debian 9にphpMyAdminをインストールするには、次の手順を実行します。
-
パッケージインデックスを更新し、システムパッケージを最新バージョンにアップグレードします。
sudo apt update && sudo apt upgrade
-
次のように入力して、デフォルトのDebianリポジトリからphpMyAdminパッケージをインストールします。
sudo apt install phpmyadmin
インストーラーは、phpMyAdminを実行するように自動的に構成する必要があるWebサーバーを選択するように求めます。
Space
を押してapacheを選択します。 次にEnter
。次に、
dbconfig-common
を使用するかどうかを尋ねられます データベースを設定するには、[Yes
]を選択しますEnter
を押します 。phpMyAdminがデータベースに登録するためのパスワードを入力し、
OK
を選択しますEnter
を押します 。パスワードを確認し、
OK
を選択しますEnter
を押します 。 -
インストールプロセスが完了したら、変更を有効にするためにApacheを再起動します。
sudo systemctl restart apache2
MariaDB 10.1(およびそれ以降)を実行しているDebianシステムでは、rootユーザーはauth_socket
を使用するように設定されています。 デフォルトの認証方法。
auth_socket
プラグインは、ローカルホストからUnixソケットファイルを介して接続するユーザーを認証します。これは、パスワードを入力してrootとして認証できないことを意味します。
MySQLユーザーrootの認証方法を変更する代わりに、新しい管理用MySQLユーザーを作成します。このユーザーはrootユーザーと同じ権限を持ち、mysql_native_password
を使用するように設定されます。 認証方法。
このユーザーを使用してphpMyAdminダッシュボードにログインし、MySQLまたはMariaDBサーバーで管理タスクを実行します。
rootユーザーとしてMySQLサーバーにログインすることから始めます:
sudo mysql
MySQLシェル内から、次のコマンドを実行して、新しい管理ユーザーを作成し、適切な権限を付与します。
管理ユーザーにCREATE USER 'padmin'@'localhost' IDENTIFIED BY 'super-strong-password';
GRANT ALL PRIVILEGES ON *.* TO 'padmin'@'localhost' WITH GRANT OPTION;
padmin
という名前を付けました 。任意の名前を使用できますが、必ず強力なパスワードを設定してください。 phpMyAdminへのアクセス#
phpMyAdminインターフェースにアクセスするには、お気に入りのブラウザを開き、サーバーのドメイン名またはパブリックIPアドレスに続けて/phpmyadmin
を入力します。 :
https://your_domain_or_ip_address/phpmyadmin
以前に作成した管理ユーザーのログイン資格情報を入力し、[Go
]をクリックします 。
ログインすると、phpMyAdminダッシュボードが表示されます。これは次のようになります。
phpMyAdminの保護#
セキュリティの層を追加するために、基本認証を設定してphpMyAdminディレクトリをパスワードで保護します。
まず、htpasswd
を使用してユーザーと一緒にパスワードファイルを作成します Apacheパッケージに付属するツール。 .htpasswd
を保存します /etc/phpmyadmin
のファイル ディレクトリ:
sudo htpasswd -c /etc/phpmyadmin/.htpasswd padmin
この例では、padmin
という名前のユーザーを作成しています。 。任意のユーザー名を選択できます。管理用のMySQLユーザーと同じである必要はありません。
上記のコマンドにより、ユーザーのパスワードを入力して確認するように求められます。
New password:
Re-type new password:
Adding password for user padmin
ユーザーを追加する場合は、-c
なしで同じコマンドを使用できます。 フラグ:
sudo htpasswd /etc/phpmyadmin/.htpasswd padmin2
次のステップは、phpMyAdminディレクトリをパスワードで保護し、.htpasswd
を使用するようにApacheを設定することです。 ファイル。
これを行うには、phpmyadmin.conf
を開きます phpMyAdminのインストール中に自動的に作成されたファイル:
sudo nano /etc/apache2/conf-available/phpmyadmin.conf
そして、黄色で強調表示されている次の行を編集/挿入します。
/etc/apache2/conf-available/phpmyadmin.conf<Directory /usr/share/phpmyadmin>
Options +FollowSymLinks +Multiviews +Indexes # edit this line
DirectoryIndex index.php
AllowOverride None
AuthType basic
AuthName "Authentication Required"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user
<IfModule mod_php5.c>
...
ファイルを保存して閉じ、Apacheを再起動して変更を有効にします:
sudo systemctl restart apache2
これで、phpMyAdminにアクセスするときに、以前に作成したユーザーのログインクレデンシャルを入力するように求められます。
https://your_domain_or_ip_address/phpmyadmin
基本認証を入力すると、phpMyAdminログインページが表示され、MySQL管理ユーザーのログイン資格情報を入力する必要があります。
/phpmyadmin
を変更することもお勧めします よりユニークで安全なものへのエイリアス。