GNU/Linux >> Linux の 問題 >  >> Debian

Debian11にphpMyAdminをインストールして保護する方法

phpMyAdminは、WebインターフェイスからMySQLおよびMariaDBデータベースを管理するために使用される無料のオープンソースのWebベースのアプリケーションです。コマンドラインインターフェイスからデータベースを作成および管理することは、初心者ユーザーにとっては非常に困難です。 phpMyAdminは、MySQLデータベース、ユーザーアカウント、および特権を管理し、SQLステートメントを実行し、Webブラウザーを介してデータをインポートおよびエクスポートするためのより簡単な方法を提供します。

この投稿では、Debian11にphpMyAdminデータベース管理ツールをインストールして保護する方法を紹介します。

前提条件
  • Debian11を実行しているサーバー。
  • ルートパスワードはサーバーで構成されています。
はじめに

開始する前に、システムパッケージを最新バージョンに更新することをお勧めします。次のコマンドを使用して、すべてのパッケージを更新できます。

 apt-get update -y 

システムが更新されたら、次のステップに進むことができます。

LAMPサーバーをインストールする

phpMyAdminはPHPベースのアプリケーションであり、Webサーバー上で実行されます。そのため、サーバーにLAMPサーバーをインストールする必要があります。次のコマンドを使用してインストールできます:

 apt-get install apache2 mariadb-server libapache2-mod-php php-cli php-mysql php-zip php-curl php-xml php-mbstring php-zip php-gd unzip -y 

すべてのパッケージがインストールされたら、次のステップに進むことができます。

phpMyAdminのインストールと構成

まず、次のコマンドを使用して、公式WebサイトからphpMyAdminの最新バージョンをダウンロードします。

 wget https://files.phpmyadmin.net/phpMyAdmin/5.1.1/phpMyAdmin-5.1.1-all-languages.zip 

ダウンロードが完了したら、次のコマンドを使用してダウンロードしたファイルを解凍します。

phpMyAdmin-5.1.1-all-languages.zipを解凍

次に、次のコマンドを使用して、抽出したディレクトリを/ usr/shareに移動します。

 mv phpMyAdmin-5.1.1-all-languages / usr / share / phpmyadmin 

次に、次のコマンドを使用して必要なディレクトリを作成します。

 mkdir -p / var / lib / phpmyadmin / tmp 

次に、phpMyAdminディレクトリに適切な所有権を設定します。

 chown -R www-data:www-data / var / lib / phpmyadmin 

次に、phpMyAdminサンプル構成ファイルをコピーします。

 cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php 

次に、pwgenをインストールし、次のコマンドを使用してシークレットキーを生成します。

 apt-get install pwgen -y 
pwgen -s 32 1

出力:

 pau9t1SG6lmaeCFxKqeeaY5N4erIa25K 

次に、config.inc.phpファイルを編集して構成します。

 nano /usr/share/phpmyadmin/config.inc.php 

シークレットキーを定義し、次の行のコメントを解除します。

 $ cfg ['blowfish_secret'] ='pau9t1SG6lmaeCFxKqeeaY5N4erIa25K'; / * COOKIE A​​UTHの場合は、これを入力する必要があります。 * / $ cfg ['Servers'] [$ i] ['controluser'] ='pma'; $ cfg ['Servers'] [$ i] ['controlpass'] ='password'; $ cfg ['Servers' ] [$ i] ['pmadb'] ='phpmyadmin'; $ cfg ['Servers'] [$ i] ['bookmarktable'] ='pma__bookmark'; $ cfg ['Servers'] [$ i] ['relation '] ='pma__relation'; $ cfg ['Servers'] [$ i] ['table_info'] ='pma__table_info'; $ cfg ['Servers'] [$ i] ['table_coords'] ='pma__table_coords'; $ cfg ['Servers'] [$ i] ['pdf_pages'] ='pma__pdf_pages'; $ cfg ['Servers'] [$ i] ['column_info'] ='pma__column_info'; $ cfg ['Servers'] [$ i] ['history'] ='pma__history'; $ cfg ['Servers'] [$ i] ['table_uiprefs'] ='pma__table_uiprefs'; $ cfg ['Servers'] [$ i] ['tracking'] ='pma__tracking'; $ cfg ['Servers'] [$ i] ['userconfig'] ='pma__userconfig'; $ cfg ['Servers'] [$ i] ['recent'] ='pma__recent'; $ cfg ['サーバー'][$ i] ['favorite'] ='pma__favorite'; $ cfg ['Servers'] [$ i] ['users'] ='pma__users'; $ cfg ['Servers'] [$ i] [ 'usergroups'] ='pma__usergroups'; $ cfg ['Servers'] [$ i] ['navigationhiding'] ='pma__navigationhiding'; $ cfg ['Servers'] [$ i] ['savedsearches'] ='pma__savedsearches'; $ cfg ['サーバー'][$ i] ['central_columns'] ='pma__central_columns'; $ cfg ['Servers'] [$ i] ['designer_settings'] ='pma__designer_settings'; $ cfg ['Servers'] [$ i] [ 'export_templates'] ='pma__export_templates'; $ cfg ['TempDir'] ='/ var / lib / phpmyadmin / tmp'; 

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

phpMyAdmin管理者ユーザーを作成

phpMyAdminを介してデータベースを管理するための別のユーザーを作成することを常にお勧めします。

まず、次のコマンドを使用してphpMyAdminテーブルをMariaDBデータベースにインポートします。

 mysql  

次に、次のコマンドを使用してMariaDBシェルに接続します。

 mysql 

接続したら、次のコマンドを使用して、phpmyadminデータベースに必要なすべての権限を付与します。

 MariaDB [(none)]> phpmyadmin。*でSELECT、INSERT、UPDATE、DELETEを付与します。* TO'pma' @'localhost' IDENTIFIED BY'password'; 

次に、次のコマンドを使用して管理者ユーザーを作成します。

 MariaDB [(none)]> CREATE USER myadmin; 

次に、次のコマンドを使用して、管理者ユーザーにすべての権限を付与します。

 MariaDB [(none)]>すべての特権を*。*に付与して'myadmin'@'localhost'に'password'で識別します。

次に、特権をフラッシュし、次のコマンドを使用してMariaDBシェルを終了します。

 MariaDB [(none)]> FLUSH PRIVILEGES; 
MariaDB [(none)]> EXIT;

終了したら、次のステップに進むことができます。

phpMyAdmin用にApacheを構成する

次に、phpMyAdmin用のApache仮想ホスト構成ファイルを作成する必要があります。次のコマンドを使用して作成できます:

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

次の行を追加します:

エイリアス/phpmyadmin/ usr / share / phpmyadmin オプションSymLinksIfOwnerMatchDirectoryIndexindex.php   AddType application / x-httpd-php .php SetHandler application / x-httpd-php php_valueinclude_path。 php_admin_value upload_tmp_dir / var / lib / phpmyadmin / tmp php_admin_value open_basedir / usr / share / phpmyadmin /:/ etc / phpmyadmin /:/ var / lib / phpmyadmin /:/ usr / share / php / php-gettext /:/ usr / share / php / php-php-gettext /:/ usr / share / javascript /:/ usr / share / php / tcpdf /:/ usr / share / doc / phpmyadmin /:/ usr / share / php / phpseclib / php_admin_value mbstring func_overload 0    AddType application / x-httpd-php .php SetHandler application / x-httpd- php php_valueinclude_path。 php_admin_value upload_tmp_dir / var / lib / phpmyadmin / tmp php_admin_value open_basedir / usr / share / phpmyadmin /:/ etc / phpmyadmin /:/ var / lib / phpmyadmin /:/ usr / share / php / php-gettext /:/ usr / share / php / php-php-gettext /:/ usr / share / javascript /:/ usr / share / php / tcpdf /:/ usr / share / doc / phpmyadmin /:/ usr / share / php / phpseclib / php_admin_value mbstring func_overload 0  #セットアップの承認
   AuthType Basic AuthName "phpMyAdmin Setup" AuthUserFile / etc / phpmyadmin / htpasswd.setup有効なユーザーを要求する#それを必要としないディレクトリへのWebアクセスを禁止するすべてを拒否することを要求する<ディレクトリ/usr/ share / phpmyadmin/libraries>すべて拒否する必要があります<ディレクトリ/usr/ share / phpmyadmin / setup/lib>すべて拒否する必要があります

終了したらファイルを保存して閉じ、次のコマンドでphpMyAdmin構成ファイルを有効にします。

 a2enconf phpmyadmin.conf 

次に、Apacheサービスをリロードして、変更を適用します。

 systemctl reload apache2 

次のコマンドを使用して、Apacheサービスのステータスを確認できます。

 systemctl status apache2 

次の出力が表示されます。

? apache2.service-ロードされたApacheHTTPサーバー:ロードされました(/lib/systemd/system/apache2.service;有効;ベンダープリセット:有効)アクティブ:アクティブ(実行中)Tue 2021-08-17 10:16:28 UTC; 2秒前ドキュメント:https://httpd.apache.org/docs/2.4/プロセス:45027 ExecStart =/ usr / sbin / apachectl start(code =exited、status =0 / SUCCESS)メインPID:45031(apache2)タスク: 6(制限:2341)メモリ:14.6M CPU:89ms CGroup:/system.slice/apache2.service ?? 45031 / usr / sbin / apache2 -k start ?? 45032 / usr / sbin / apache2 -k start ?? 45033 / usr / sbin / apache2 -k start ?? 45034 / usr / sbin / apache2 -k start ?? 45035 / usr / sbin / apache2 -k start ?? 45036 / usr / sbin / apache2 -k startAug 17 10:16: 28 debian systemd [1]:ApacheHTTPサーバーを起動しています...

phpMyAdminにアクセス

この時点で、phpMyAdminがインストールおよび構成されています。次に、Webブラウザーを開き、URL http:// your-server-ip / phpmyadminを使用してphpMyAdminにアクセスします。 。 phpMyAdminログインページが表示されます:

管理者のユーザー名とパスワードを入力し、[移動]をクリックします ボタン。次のページにphpMyAdminダッシュボードが表示されます。

安全なphpMyAdmin

二要素認証でphpMyAdminを保護することをお勧めします。これは、.htaccess認証および承認機能を使用して行うことができます。

まず、phpMyAdmin構成ファイルを編集します。

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

次のサーバーブロックに「AllowOverrideAll」行を追加します。

 オプションFollowSymLinksDirectoryIndexindex.php AllowOverride All  

終了したらファイルを保存して閉じ、Apacheサービスを再起動します。

 systemctl restart apache2 

次に、.htaccessファイルを作成し、Apache認証タイプを定義します。

 nano /usr/share/phpmyadmin/.htaccess 

次の行を追加します:

 AuthType BasicAuthName "Restricted Files" AuthUserFile /usr/share/phpmyadmin/.htpasswdRequire valid-user 

ファイルを保存して閉じてから、次のコマンドでユーザーを作成します。

 htpasswd -c /usr/share/phpmyadmin/.htpasswd secureuser 

以下に示すように、パスワードを設定するように求められます。

新しいパスワード:新しいパスワードを再入力:ユーザーsecureuserのパスワードを追加

phpMyAdminを確認

この時点で、phpMyAdminは追加の認証で保護されています。確認するには、ウェブブラウザを開き、URL http:// your-server-ip / phpmyadminを使用してphpMyAdminにアクセスします。 。以下に示すように、追加のユーザー名とパスワードの入力を求められます。

ユーザー名とパスワードを入力すると、通常のphpMyAdminログインページにリダイレクトされます。

結論

おめでとう!これで、Debian 11にphpMyAdminが正常にインストールされ、保護されました。これで、phpMyAdminを調べて、Webブラウザからデータベースの管理を開始できます。


Debian
  1. Debian11にMongoDBをインストールして保護する方法

  2. Debian11にMariaDBをインストールして保護する方法

  3. Debian9にphpMyAdminをインストールする方法

  1. Debian9にphpMyAdminをインストールして保護する方法

  2. UbuntuにphpMyAdminをインストールして保護する方法

  3. Debianバックポートをインストールして使用する方法

  1. Debian9でApacheを使用してphpMyAdminをインストールして保護する方法

  2. Debian9にRedisをインストールして設定する方法

  3. Debian9にFFmpegをインストールして使用する方法