GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu20.04LTSにLEMPスタックを使用してphpMyAdminをインストールする

Ubuntu20.04にLAMPスタックを使用してphpMyAdminをインストールする方法はすでに知っています。 。今日は、Ubuntu20.04LTSエディションにLEMPスタックを使用してphpMyAdminをインストールする方法を見てみましょう。次に、一般的な脅威からphpmyadminを保護するのに役立ついくつかのセキュリティプラクティスについても説明します。まず、次のリンクで説明されているように、Ubuntu20.04でLEMPスタックをセットアップしていることを確認してください。

  • Ubuntu 20.04 LTSにNginx、MySQL、PHP(LEMPスタック)をインストールします

LEMPスタックをインストールした後、次のセクションの説明に従ってphpMyAdminをインストールして保護します。

Ubuntu20.04LTSにLEMPスタックを使用してphpMyAdminをインストールする

次のコマンドを実行して、ターミナルからphpMyAdminをインストールします。

$ sudo apt install phpmyadmin

次のウィンドウで、phpMyAdminを実行するように自動的に構成する必要があるWebサーバーを選択するように求められます。以下のスクリーンショットでわかるように、NginxはWebサーバーリストで利用できません。 Apacheとlighttpdはここにのみリストされています。したがって、選択しないでください 任意のWebサーバーを空白のままにします。 [OK]を選択し、Enterキーを押して続行します:

PhpMyAdminを使用するには、データベースをインストールして構成する必要があります。 dbconfig-commandで実行できます。

はいを選択します dbconfig-commonを使用してphpmyadminのデータベースを構成するには:

MySQLデータベースサーバーに登録するには、phpmyadminのパスワードを指定する必要があります。パスワードが指定されていない場合、ランダムなパスワードが生成されます。

強力なパスワードを入力し、Enterキーを押して続行します:

パスワードを再入力してください:

このガイドを書いている時点で、phpmyadminのパスワードを設定しようとすると、次のエラーがスローされます。

 An error occurred while installing the database:
mysql said: ERROR 1819 (HY000) at line 1: Your password does not satisfy
 the current policy requirements . Your options are:                                  
* abort - Causes the operation to fail; you will need to downgrade,             
reinstall, reconfigure this package, or otherwise manually intervene          
to continue using it. This will usually also impact your ability to           
install other packages until the installation failure is resolved.            
* retry - Prompts once more with all the configuration questions                
(including ones you may have missed due to the debconf priority               
setting) and makes another attempt at performing the operation.               
* retry (skip questions) - Immediately attempts the operation again,            
skipping all questions. This is normally useful only if you have 
solved the underlying problem since the time the error occurred.              
* ignore - Continues the operation ignoring dbconfig-common errors.             
This will usually leave this package without a functional database.

このエラーは、 VALIDATE PASSWORDを有効にしたために発生します 「2.2MySQLrootユーザーの認証方法の変更」というタイトルのセクションで説明されているコンポーネント 上記のLEMPスタックインストールガイドに記載されています。

この問題を修正するには、パスワードの検証コンポーネントを一時的に無効にし、phymyadminのパスワードを設定した後で再度有効にする必要があります。 [OK]をクリックして上記のエラーメッセージを閉じ、[中止]を選択します phpmyadminのインストールをキャンセルします。

次に、次のコマンドを実行してMysqlプロンプトにログインします。

$ mysql -u root -p

mysqlプロンプトから、次のコマンドを調整して、ValidatePasswordプラグインを無効にします。

mysql> UNINSTALL COMPONENT "file://component_validate_password";

上記のコマンドはプラグインを無効にするだけで、削除しないことに注意してください。後で有効にすることができます。次に、「exit」と入力してMysqlプロンプトを終了します。

mysql> exit

次に、コマンドを使用してphpmyadminを再度インストールしてみてください:

$ sudo apt install phpmyadmin

「はい」を選択し、Enterキーを押して、dbconfig-commonを使用してphpmyadminのデータベースを構成します。今回は、phpmyadminのインストールは問題なく機能します。

phpmyadminをインストールしたら、ValidatePasswordプラグインを再度有効にします。これを行うには、Mysqlプロンプトにログインします:

$ mysql -u root -p

mysqlプロンプトから、次のコマンドを調整して、ValidatePasswordプラグインを無効にします。

mysql> INSTALL COMPONENT "file://component_validate_password";

exitと入力して、mysqlプロンプトを終了します。

mysql> exit

次に、コマンドを使用してphpmyadminを実行するようにNginxWebサーバーを構成するためのシンボリックリンクを作成します。

$ sudo ln -s /usr/share/phpmyadmin/ /var/www/html/phpmyadmin

このコマンドは、Nginxルートディレクトリの下に「phpmyadmin」という名前のシンボリックリンクを作成します。このシンボリックリンクは、実際には実際のファイルが保存されている/ usr / share/phpmyadminディレクトリを指しています。

終わり! LEMPスタックを使用してPhpMyAdminを正常にインストールしました。

phpMyAdminダッシュボードにアクセス

Webブラウザーを開き、 "http:// IP-Address / phpmyadmin"に移動します。 アドレスバーから。

phpmyadminログインページが表示されます。データベースユーザーとそのパスワードを入力します:

phpMyAdminダッシュボードに満足するでしょう。

ここから、データベースを作成、削除、および管理できます。

phpMyAdminダッシュボードにアクセスするための専用ユーザーを作成する

phpMyAdminがインストールされると、'phpmyadmin'という名前のデータベースユーザー インストール時に設定した管理者パスワードで自動的に作成されます。 'phpmyadmin'ユーザーまたはmysqlrootを使用してphpmyAdminダッシュボードにログインできます 上記のようなユーザー。ただし、phpMyAdminWebインターフェイスを介してデータベースを管理するための専用ユーザーを作成することをお勧めします。

これを行うには、次のコマンドを使用してmysqlシェルにログインします。

$ mysql -u root -p

mysqlルートパスワードを入力します。これで、mysqlシェルになります。

次のコマンドを入力して、phpmyadminの新しい専用ユーザーを作成します。

mysql> CREATE USER 'phpmyadminuser'@'localhost' IDENTIFIED BY 'Password123#@!';

ここでは、 phpmyadmin phpmyadminダッシュボードにアクセスするための新しいユーザーです。 phpmyadminuserのパスワードはPassword123#@!です。 。これらの値を独自の値に置き換えてください。

次に、コマンドを使用して「phpmyadminuser」に適切な権限を付与します。

mysql> GRANT ALL PRIVILEGES ON *.* TO 'phpmyadminuser'@'localhost' WITH GRANT OPTION;

最後にmysqlシェルを終了します:

mysql> exit

これで、phpmyadminWebインターフェイスを介してデータベースを管理するための専用ユーザーが作成されました。さあ、phpmyadminダッシュボードにアクセスしましょう。

Webブラウザーを開き、「http:// IP-Address /phpayadmin。新しく作成したデータベースユーザーとそのパスワードを入力します。おめでとうございます。専用ユーザーでphpMyAdminWebダッシュボードにログインしました。

セキュアphpMyAdmin

このセクションでは、PhpMyAdminのインストールを保護するためのヒントをいくつか紹介します。次の手順だけでは、phpMyAdminを100%安全に保護できないことに注意してください。ただし、少なくとも、実行者がphpmyadminダッシュボードに侵入しようとする試みは遅くなります。

phpmyadminダッシュボードへのMySQLルートログインを無効にする

特にネットワーク経由でデータベースを管理する場合、mysqlrootユーザーにphpMyAdminダッシュボードへのアクセスを許可することは安全ではありません。これが、前のセクションで専用ユーザーを作成した理由です。すでに専用ユーザーがいるため、mysqlrootログインを安全に無効にしてphpmyadminダッシュボードにアクセスして攻撃を最小限に抑えることができます。

通常、phpmyadminは / usr / share / phpmyadmin /の下にインストールされます ディレクトリとその設定ファイルは/etc / phpmyadminに保存されます ディレクトリ。

phpmyadmin設定ファイルを編集します:

$ sudo nano /etc/phpmyadmin/config.inc.php

次のパラメータを追加/変更します:

[...]
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['AllowRoot'] = FALSE;
[...]

ファイルを保存して閉じます。

次のコマンドを使用してNginxWebサーバーを再起動します:

$ sudo systemctl restart nginx

次に、rootユーザーとしてphpmyadminにログインしてみます。 アクセスが拒否されました エラーメッセージ:

phpmyadminWebインターフェイスのURLを変更する

これは、phpmyadminにアクセスするためのボットが従う最も一般的な戦術です。 URLを推測しにくいものに変更することで、これを防ぐことができます。 phpmyadmin URLを変更すると、ボットや自動スクリプトがURLスキャンやブルートフォース攻撃を実行するのを回避できます。

Nginxルートディレクトリの下に「phpmyadmin」というシンボリックリンクを作成したことを覚えていますか?

$ ls -l /var/www/html/
total 8
-rw-r--r-- 1 root root 612 Jun  2 07:15 index.nginx-debian.html
-rw-r--r-- 1 root root  20 Jun  2 07:35 info.php
lrwxrwxrwx 1 root root  22 Jun  2 08:14 phpmyadmin -> /usr/share/phpmyadmin/

ここで、phpmyadminは、/ usr / share/phpmyadminディレクトリを指すシンボリックリンクです。

コマンドを使用してシンボリックリンク名を変更します:

$ sudo mv /var/www/html/phpmyadmin /var/www/html/ostechnix

名前にランダムな文字が含まれていて、推測が非常に難しいことを確認してください。

今後、誰かがhttp:// IP-Address / phpmyadmin URLに移動してphpmyadminページにアクセスしようとすると、次のエラーメッセージが表示されます。

URLを変更したからです。 phpmyadminへの新しいURLはhttp:// IP-Address/ostechnixです。

パスワードで保護するphpMyAdminログインページ

基本HTTP認証方式でphpmyadminログインページへのアクセスを制限することで、セキュリティの層を追加できます。意味-phpmyadminログインページのパスワード保護を有効にしているため、ユーザーは実際のphpMyAdminログインページにアクセスする前に追加のユーザー名/パスワードを入力する必要があります。

まず、 htpasswdを使用してパスワードファイルを生成する必要があります 効用。 htpasswdユーティリティはapache2-utilsの一部です パッケージ。それでは、コマンドを使用してインストールしましょう:

$ sudo apt install apache2-utils

次に、コマンドを使用して暗号化されたパスワードファイルを作成します:

$ sudo htpasswd -c /etc/nginx/.htpasswd ostechnix

「ostechnix」を任意のユーザー名に置き換えます。強力なパスワードを2回入力して、パスワードファイルを生成します。

新しく生成されたファイルの内容を表示するには、次のように「cat」コマンドを実行します。

$ cat /etc/nginx/.htpasswd

以下のような出力が表示されます:

ostechnix:$apr1$Us9YABHL$CMPDIuHaOB2lK/DVIzA2C/

次に、Nginxのデフォルト設定ファイルで上記のパスワードファイルのパスを指定する必要があります。上記のLEMPインストールチュートリアルに従った場合、デフォルトのNginx構成は / etc / nginx / sites-available / defaultになります。

デフォルトのNginx構成ファイルを編集します:

$ sudo nano /etc/nginx/sites-available/default

「場所」の下に次の行を追加します ブロック:

[...]
location /ostechnix {
                auth_basic "Restricted Zone";
                auth_basic_user_file /etc/nginx/.htpasswd;
        }
[...]

前の手順でphpMyAdminURL(http:// IP-Address / ostechnix)を変更したことを覚えていますか?そのため、上記のブロックでブロック名を「ostechnix」と記載しました。自分のものと交換してください。ファイルを保存して閉じます。

次のコマンドを使用して、構文エラーがないかNginx構成ファイルを確認します。

$ sudo nginx -t

出力例:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

エラーが表示されない場合は、nginxサービスを再起動して変更を有効にします。

$ sudo systemctl restart nginx

次に、ブラウザからphpMyAdminURLにアクセスしてみます。ユーザー名とパスワードの入力を求められます:

「htpasword」ユーティリティを使用して以前に作成された正しいユーザー名とパスワードを入力します。これで、実際のphpMyAdminログインページにリダイレクトされます。ここで、データベースユーザーとそのパスワードを入力して、phpMyAdminWebダッシュボードにログインできます。


Ubuntu
  1. Ubuntu 20.04 LTSにPHPとMySQL(LEMPスタック)を使用してNginxをインストールする方法

  2. Ubuntu20.04にLEMPスタックを使用してWordPressをインストールする

  3. Ubuntu14.10にphpMyAdminをインストールします

  1. Ubuntu16.04にLEMPスタックをインストールする方法

  2. Ubuntu18.04LTSにLAMPスタックを使用してphpMyAdminをインストールします

  3. Ubuntu20.04LTSにLAMPスタックを使用してphpMyAdminをインストールする

  1. Ubuntu18.04LTSにMEAN.JSスタックをインストールします

  2. Ubuntu20.04にLEMPスタックを使用してWordPressをインストールする

  3. Nginx(LEMPスタック)を使用してUbuntu20.04にProjectSendをインストールします