GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOS8にphpMyAdminをインストールして保護する

phpMyAdminは、Webベースのインターフェイスを介してMySQLおよびMariaDBサーバーを管理するための無料のオープンソースツールです。 phpMyAdminを使用すると、データベースとユーザーの作成と管理、SQLステートメントの実行、データのインポートとエクスポート、および作成、削除、テーブル、列、インデックス、権限などのデータベースアクティビティの実行を行うことができます。 phpMyAdminは、特にWebホスティングサービスで最も人気があり、最も広く使用されている管理ツールの1つです。

機能

  • シンプルでユーザーフレンドリーなウェブインターフェースを提供します。
  • CSVおよびSQLからデータをインポートします。
  • データベース、テーブル、フィールド、インデックスの作成、コピー、削除、名前変更、削除、変更など、ほとんどのMySQL機能をサポートします。
  • データをPDF、CSV、SQL、XMLなどのさまざまな形式にエクスポートできます。
  • 複数のサーバーの管理。
  • 例によるクエリ(QBE)を使用した複雑なクエリの作成。

このチュートリアルでは、CentOS8サーバーにphpMyAdminをインストールして保護する方法を説明します。

要件
  • CentOS8を実行しているサーバー。
  • ルートパスワードはサーバーで構成されています。

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

まず、Apache、MariaDB、PHP、およびその他のPHPライブラリをサーバーにインストールする必要があります。次のコマンドですべてをインストールできます:

 dnf install httpd mariadb-server php php-pdo php-pecl-zip php-json php-common php-fpm php-mbstring php-cli php-mysqlnd php-json php-mbstring wget unzip 

すべてのパッケージがインストールされたら、ApacheおよびMariaDBサービスを開始し、次のコマンドを使用してシステムの再起動後にそれらを開始できるようにします。

 systemctl start httpd 
systemctl start mariadb
systemctl enable httpd
systemctl enable mariadb

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

MariaDBを構成する

デフォルトでは、MariaDBは保護されていません。したがって、最初にそれを保護する必要があります。 mysql_secure_installationスクリプトを実行することでそれを行うことができます:

 mysql_secure_installation 

以下に示すように、すべての質問に答えてください。

ルートパスワードを設定しますか? [Y / n] Y新しいパスワード:匿名ユーザーを削除しますか? [Y / n] Yリモートログインを許可しませんか? [Y / n] Yテストデータベースを削除してアクセスしますか? [Y / n] Y特権テーブルを今すぐリロードしますか? [Y / n] Y 

完了すると、次の出力が表示されます。

 ...成功!クリーンアップ...すべて完了!上記のすべての手順を完了すると、MariaDBのインストールは安全になります。MariaDBをご利用いただきありがとうございます。

この時点で、MariaDBのインストールは保護されています。

phpMyAdminをインストール

デフォルトでは、phpMyAdminはCentOS8のデフォルトリポジトリでは使用できません。そのため、公式WebサイトからphpMyAdminの最新バージョンをダウンロードする必要があります。次のコマンドでダウンロードできます:

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

ダウンロードしたら、次のコマンドでダウンロードしたファイルを解凍します。

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

次に、以下に示すように、抽出したコンテンツを/ usr/shareディレクトリに移動します。

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

次に、ディレクトリを/ usr / share / phpmyadminに変更し、ファイルの名前をconfig.sample.inc.phpに変更します。

 cd / usr / share / phpmyadmin 
mv config.sample.inc.php config.inc.php

次に、以下に示すように、お気に入りのテキストエディタでファイルを開きます。

 nano config.inc.php 

次の行を変更します:

 $ cfg ['blowfish_secret'] ='your-secret-password'; 

終了したら、ファイルを保存して閉じます。次に、次のコマンドを使用してcreate_tables.sqlをインポートします。

 mysql  

テーブルのインポートを求めるプロンプトが表示されたら、rootパスワードを入力します。

次に、phpmyadminのtmpディレクトリを作成し、適切な権限を付与します。

 mkdir / usr / share / phpmyadmin / tmp 
chown -R apache:apache / usr / share / phpmyadmin
chmod 777 / usr / share / phpmyadmin / tmp

phpMyAdmin用にApacheを構成する

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

 nano /etc/httpd/conf.d/phpmyadmin.conf 

次の行を追加します:

 Alias / phpmyadmin / usr / share / phpmyadmin  AddDefaultCharset UTF-8  #Apache2.4すべての許可を要求  #Apache 2.2 Order Deny、Allow Deny from All Allow from 127.0.0.1 Allow from ::1    #Apache2.4すべての許可を要求  #Apache 2.2 Order Deny、Allow Deny from All Allow from 127.0.0.1 Allow from ::1   

終了したら、ファイルを保存して閉じます。次に、次のコマンドを使用してApacheサービスを再起動します。

 systemctl restart httpd 

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

 systemctl status httpd 

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

? httpd.service-ロードされたApacheHTTPサーバー:ロードされた(/usr/lib/systemd/system/httpd.service;有効;ベンダープリセット:無効)ドロップイン:/usr/lib/systemd/system/httpd.service.d ?? php-fpm.confアクティブ:水2019-12-18 01:07:52 EST以降アクティブ(実行中)。 6秒前ドキュメント:man:httpd.service(8)メインPID:5636(httpd)ステータス: "開始、リッスン中:ポート80"タスク:213(制限:25044)メモリ:28.7M CGroup:/system.slice/httpd .service ?? 5636 / usr / sbin / httpd -DFOREGROUND ?? 5639 / usr / sbin / httpd -DFOREGROUND ?? 5640 / usr / sbin / httpd -DFOREGROUND ?? 5641 / usr / sbin / httpd -DFOREGROUND ?? 5642 / usr / sbin / httpd -DFOREGROUNDDec 18 01:07:52 centos8 systemd [1]:ApacheHTTPサーバーを停止しました。Dec1801:07:52 centos8 systemd [1]:ApacheHTTPサーバーを起動しています...Dec 18 01: 07:52 centos8 httpd [5636]:AH00558:httpd:fe80 ::200:d0> Dec 18 01:07:52 centos8 httpd [5636]:サーバーが構成され、リッスンしているため、サーバーの完全修飾ドメイン名を確実に判別できませんでした:ポート80Dec 18 01:07:52 centos8 systemd [1]:ApacheHTTPサーバーを開始しました。
SELinuxとファイアウォールを構成する

デフォルトでは、SELinuxはCentOS 8で有効になっているため、phpMyAdminが正しく機能するようにSELinuxを構成する必要があります。

まず、policycoreutils-python-utilsパッケージをインストールして、次のコマンドでSELinux環境を管理します。

 dnf install policycoreutils-python-utils 

次に、次のコマンドを使用して/ usr / share/phpmyadminディレクトリへのアクセスを有効にします。

 semanage fcontext -a -t httpd_sys_rw_content_t'/ usr / share / phpmyadmin /'
semanage fcontext -a -t httpd_sys_rw_content_t "/usr/share/phpmyadmin/tmp(/.*)?"

次に、次のコマンドを実行して、phpmyadminディレクトリ内のすべてのファイルを繰り返し処理します。

 restorecon -Rv'/ usr / share / phpmyadmin /'

次に、外部ネットワークからのHTTPサービスを許可するファイアウォールルールを作成する必要があります。次のコマンドで許可できます:

 Firewall-cmd --permanent --add-service =http 
Firewall-cmd --reload

これでphpMyAdminがインストールおよび構成されました。次に、機能しているかどうかを確認します。

Webブラウザーを開き、URL http:// your-server-ip/phpmyadminを入力します。次のページにリダイレクトされます:

安全なphpMyAdmin

この時点で、phpMyAdminインスタンスは正しく機能しています。ただし、phpMyAdminインスタンスを外部から保護することは、あなたにとって重要なタスクです。このセクションでは、phpMyAdminインスタンスを保護する方法を説明します。

特定のIPからのphpMyAdminを許可する

まず、自宅の接続のIPアドレスからのみアクセスできるようにphpMyAdminを設定する必要があります。

/etc/httpd/conf.d/phpmyadmin.confファイルを編集して設定できます:

 nano /etc/httpd/conf.d/phpmyadmin.conf 

次の行を見つけます:

付与されたすべての要件

そして、それらを次のものに置き換えます:

  Require ip your-home--connection-ip-address Require ip ::1  

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

認証の追加レイヤーを構成する

基本認証を設定して、phpmyadminディレクトリをパスワードで保護することをお勧めします。

これを行うには、以下に示すように、htpasswdツールを使用して新しい認証ファイルを作成します。

 mkdir / etc / phpmyadmin 
htpasswd -c /etc/phpmyadmin/.htpasswd admin

以下に示すように、管理者パスワードを入力するように求められます。

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

次に、.htpasswdファイルを使用するようにApacheを設定する必要があります。これを行うには、ファイル/etc/httpd/conf.d/phpmyadmin.confを編集します。

 nano /etc/httpd/conf.d/phpmyadmin.conf 

「AddDefaultCharsetUTF-8」の行の下に次の行を追加します。

オプション+FollowSymLinks+ Multiviews +IndexesAllowOverrideなしAuthTypebasicAuthName "Authentication Required" AuthUserFile /etc/phpmyadmin/.htpasswd Require valid-user 

ファイルを保存し、Apacheサービスを再起動して、変更を有効にします。

 systemctl restart httpd 

phpMyAdminにアクセス

これで、phpMyAdminインスタンスは追加のセキュリティレイヤーで保護されます。 Webブラウザーを開き、URL http:// your-server-ip/phpmyadminを入力します。以下に示すように、以前に作成したユーザーのログイン資格情報を入力するように求められます。

管理者のユーザー名とパスワードを入力し、[OK]ボタンをクリックします。 phpMyAdminログインページにリダイレクトされます:

次に、MySQL管理ユーザーのログイン資格情報を入力し、[実行]ボタンをクリックします。次のページが表示されます:

結論

おめでとう! CentOS8サーバーにphpMyAdminを正常にインストールして保護しました。これで、データベース、ユーザー、テーブルを作成し、Webベースのインターフェースからそれらを管理できます。ご不明な点がございましたら、お気軽にお問い合わせください。


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

  2. CentOS6.4にMariaDBをインストールします

  3. Nginx、PHP-FPM、MariaDBを使用してCentOS7にMagentoをインストールします

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

  2. CentOS6にMariaDB10.0をインストールします

  3. CentOS8にMongoDB4をインストールして保護する方法

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

  2. CentOS7にMariaDBをインストールします

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