phpMyAdminは、MySQL/MariaDBデータベースの管理に使用されるオープンソースのソフトウェアツールです。これは、Webブラウザを介してMySQLと対話する簡単な方法を提供します。 phpMyAdminは、コマンドラインからデータを管理することに慣れていないユーザーにとって非常に便利です。そのため、システム管理者は、さまざまな種類の攻撃からphpMyAdminを保護することが不可欠です。
このチュートリアルでは、CentOS8にphpMyAdminをインストールして保護する方法を紹介します。
前提条件
- Atlantic.netクラウドプラットフォーム上の新しいCentOS8VPS。
- サーバーで構成されているrootパスワード。
ステップ1-Atlantic.Netクラウドサーバーを作成する
まず、Atlantic.Netクラウドサーバーにログインします。 1GB以上のRAMを搭載したオペレーティングシステムとしてCentOS8を選択して、新しいサーバーを作成します。 SSH経由でクラウドサーバーに接続し、ページの上部で強調表示されているクレデンシャルを使用してログインします。
CentOS 8サーバーにログインしたら、次のコマンドを実行して、ベースシステムを最新の利用可能なパッケージで更新します。
dnf update -y
ステップ2– Apache、MariaDB、PHPをインストールする
開始する前に、次のコマンドを使用して、Apache、MariaDB、PHP、およびその他の必要なPHP拡張機能をインストールします。
dnf install httpd mariadb-server php php-cli php-json php-mbstring php-pdo php-pecl-zip php-mysqlnd -y
すべてのパッケージをインストールしたら、次のステップに進むことができます。
ステップ3–MariaDBルートパスワードを設定する
まず、MariaDBサービスを開始し、次のコマンドを使用して起動時に開始できるようにします。
systemctl start mariadb systemctl enable mariadb
次に、次のスクリプトを使用してMySQLルートパスワードを設定します。
mysql_secure_installation
このスクリプトは、以下に示すように、MySQLルートパスワードを設定し、匿名ユーザーを削除し、rootログインをリモートで禁止し、テストデータベースとアクセスを削除します。
ルートの現在のパスワードを入力します(なしの場合は入力します):
Set root password? [Y/n] Y New password: Remove anonymous users? [Y/n] Y Disallow root login remotely? [Y/n] Y Remove test database and access to it? [Y/n] Y Reload privilege tables now? [Y/n] Y
ステップ4–phpMyAdminをインストールする
まず、次のコマンドを使用して、最新バージョンのphpMyAdminをApacheWebルートディレクトリにダウンロードします。
cd /var/www/html wget https://files.phpmyadmin.net/phpMyAdmin/4.9.4/phpMyAdmin-4.9.4-all-languages.zip
ダウンロードしたら、次のコマンドでダウンロードしたファイルを解凍します。
unzip phpMyAdmin-4.9.4-all-languages.zip
次に、以下に示すように、抽出したディレクトリの名前をphpmyadminに変更します。
mv phpMyAdmin-4.9.4-all-languages phpmyadmin
次に、phpmyadminディレクトリの所有権をapacheユーザーに変更します。
chown -R apache:apache /var/www/html/phpmyadmin
次に、config.sample.inc.phpファイルの名前を変更します。
cd /var/www/html/phpmyadmin mv config.sample.inc.php config.inc.php
次に、ファイルを編集して安全なパスワードを定義します:
nano config.inc.php
以下の行を見つけて、以下に示すように、安全なパスワードで更新します。
$cfg['blowfish_secret'] = 'your-secure-password';
ファイルを保存して閉じます。次に、次のコマンドを使用してphpMyAdminのテーブルをインポートします。
mysql < sql/create_tables.sql -u root -p
完了したら、次のステップに進むことができます。
ステップ5–phpMyAdmin用にApacheを構成する
次に、phpMyAdmin用のApache仮想ホスト構成ファイルを作成します。
nano /etc/httpd/conf.d/phpmyadmin.conf
次の行を追加します:
Alias /phpmyadmin /var/www/html/phpmyadmin <Directory /var/www/html/phpmyadmin/> AddDefaultCharset UTF-8 <IfModule mod_authz_core.c> # Apache 2.4 <RequireAny> Require all granted </RequireAny> </IfModule> <IfModule !mod_authz_core.c> # Apache 2.2 Order Deny,Allow Deny from All Allow from 127.0.0.1 Allow from ::1 </IfModule> </Directory> <Directory /var/www/html/phpmyadmin/setup/> <IfModule mod_authz_core.c> # Apache 2.4 <RequireAny> Require all granted </RequireAny> </IfModule> <IfModule !mod_authz_core.c> # Apache 2.2 Order Deny,Allow Deny from All Allow from 127.0.0.1 Allow from ::1 </IfModule> </Directory>
ファイルを保存して閉じます。次に、Apacheサービスを開始し、次のコマンドを使用してシステムの再起動後に開始できるようにします。
systemctl start httpd systemctl enable httpd
次に、Webブラウザーを開き、URL http:// your-server-ip/phpmyadminにアクセスします。次の画面にphpMyAdminWebインターフェイスが表示されます。
以前に作成したMySQLクレデンシャルを使用してログインします。
ステップ6–phpMyAdminを保護する
このセクションでは、phpMyAdminWebインターフェイスを保護するためのさまざまな方法を紹介します。
phpMyAdminのアクセス場所を変更する
phpMyAdminインターフェイスのアクセスURLを変更することをお勧めします。 phpmyadmin.confファイルを編集して変更できます:
nano /etc/httpd/conf.d/phpmyadmin.conf
次の行を見つけます:
Alias /phpmyadmin /var/www/html/phpmyadmin
次の行に置き換えます:
Alias /securelocation /var/www/html/phpmyadmin
ファイルを保存して閉じてから、Apacheサービスを再起動して変更を実装します。
systemctl restart httpd
これで、URL http:// your-server-ip/securelocationを使用してphpMyAdminインターフェイスにアクセスできます。
特定のIPからのphpMyAdminを許可する
phpMyAdminに特定のIPアドレスからのみアクセスできるようにすることは常に良い考えです。
これを行うには、phpmyadmin.confファイルを開きます:
nano /etc/httpd/conf.d/phpmyadmin.conf
次の行を見つけます:
<RequireAny> Require all granted </RequireAny>
次のように置き換えます:
<RequireAny> Require ip your-client-ip-address Require ip ::1 </RequireAny>
ファイルを保存して閉じてから、Apacheサービスを再起動して変更を実装します。
systemctl restart httpd
phpMyAdminインターフェースには、指定したIPアドレスからのみアクセスできるようになりました。
パスワードプロテクトphpMyAdminインターフェース
基本認証を設定することで、phpMyAdminにパスワード保護のレイヤーを追加することもできます。
まず、次のコマンドを使用して認証ファイルを作成します。
htpasswd -c /etc/httpd/.htpasswd phpadmin
以下に示すように、安全なパスワードを入力してください:
New password: Re-type new password: Adding password for user phpadmin
次に、phpmyadminディレクトリ内に.htaccessファイルを作成します。
nano /var/www/html/phpmyadmin/.htaccess
次の行を追加します:
AuthType basic AuthName "Authentication Required" AuthUserFile /etc/httpd/.htpasswd Require valid-user
終了したら、ファイルを保存して閉じます。
次に、phpmyadmin.confファイルを編集し、.htpasswdファイルを使用するようにApacheを設定します。
nano /etc/httpd/conf.d/phpmyadmin.conf
「AddDefaultCharsetUTF-8」の行の下に次の行を追加します。
AllowOverride All
ファイルを保存してから、Apacheサービスを再起動して変更を実装します。
systemctl restart httpd
ステップ7–phpMyAdminをテストする
この時点で、phpMyAdminインターフェイスはパスワード保護の追加レイヤーで保護されています。テストするには、Webブラウザーを開き、URL http:// your-server-ip/securelocationを入力します。以前に作成したログイン資格情報を入力するように求められます:
ユーザー名とパスワードを入力し、 OKをクリックします ボタン。 phpMyAdminログインページにリダイレクトされます:
MySQLのユーザー名とパスワードを入力し、移動をクリックします。 ボタン。次の画面にphpMyAdminWebインターフェイスが表示されます。
結論
上記のガイドでは、CentOS 8にphpMyAdminをインストールして保護する方法を学びました。これで、phpMyAdminインターフェイスが追加のパスワード保護で保護されました。この方法を使用して、Atlantic.NetVPSホスティングプランでサーバーを保護できます。
VPSホスティングサービスと仮想プライベートサーバーの詳細をご覧ください。