いくつかのことができます。私のアイデアと、Apache2内でそれらを実装する方法について説明します。
1. HTTPS接続を使用して、データをスニッフィングから保護します
2.PhpMyAdminのURIを変更します
URIを変更するには、デフォルトの構成内で、このディレクティブの/etc/phpmyadmin/apache.conf最初の部分(/phpmyadmin)を編集および変更する必要があります。
Alias /phpmyadmin /usr/share/phpmyadmin
Apacheを再起動すると、新しいURIを介してPhpMyAdminにアクセスできるようになります。
3.別のポートでPhpMyAdminを実行します
ステップバイステップのマニュアルは次のとおりです。異なるポートでPhpMyAdminを実行する方法。このポートをファイアウォールに開くことを忘れないでください。
4.SSHトンネルを介してローカルでのみPhpMyAdminにアクセスします
別のポートでPhpMyAdminを実行します。それがポートであると仮定しましょう99。このポートをファイアウォールに閉じます。次に、次のようなコマンドでSSH接続を確立します。
ssh -fTN -R 99:localhost:99 <user>@<domain>or<ip>
- このコマンドは、リモートポートが()のローカルポートに転送されるsshトンネルを作成します。
-R9999localhost127.0.0.1
- オプション
-fTNは、接続をバックグラウンドにプッシュします。
次に、PhpMyAdminは、URLでローカルマシンのWebブラウザを介してアクセスできる必要がありますhttp://localhost:99/。より多くのアイデアがここにあります:
5.パスワード認証を介してPhpMyAdminURIパスを保護します
詳細については、このApacheのマニュアル「認証と承認」を参照してください。パッケージをapache2-utilsインストールする必要があります。簡単に言うと、手順は次のとおりです。
/var/wwwパスワードファイルが保存されるの外にフォルダを作成します。次に、パスワードファイルを生成します。この新しいフォルダの名前が次のとおりであると仮定しましょう/var/www-auth:
$ sudo mkdir /var/www-auth
$ cd /var/www-auth
$ sudo htpasswd -c .htpasswd.phpmyadmin <user>
New Password: *********
Re-Type New Password: *********
Adding Password For User <user>
.htpasswd.phpmyadmin パスワードが保存されるファイルの名前です。
user 使用されるログイン名です。
********* パスワードです:)
-c新しいファイルを作成することを意味します。このオプションを省略htpasswdすると、コマンドはlogin name既存のに新しいものを追加しようとし.htpasswd.fileます。
/etc/phpmyadmin/apache.confこの方法で編集(または.htaccessファイルを作成)して、PhpMyAdmin認証タイプを変更します。
<Directory /usr/share/phpmyadmin>
.....
<IfModule mod_authz_core.c>
<IfModule mod_authn_file.c>
AuthType Basic
AuthName "The name of the authentication form - type some user and password hints"
AuthUserFile /var/www-auth/.htpasswd.phpmyadmin
</IfModule>
Require valid-user
</IfModule>
.....
</Directory>
モジュールを有効にし、Apache2を再起動して、新しい構成を適用します。
sudo a2enmod authz_core authz_user authn_file
sudo systemctl restart apache2.service
ここで、PhpMyAdminのURIにアクセスするには、ログイン名userとそのURIを指定する必要がありますpassword。
6.二要素認証(2FA)を介してPhpMyAdminURIパスを保護します。
フォローは、ステップ1と3をから、このマニュアルを生成するために.google_authenticator、あなたの中にあるファイル、$HOMEディレクトリを。ステップ4では、認証コードを生成する方法について説明します。
の下に新しいディレクトリを作成します/var/www-auth。この新しいフォルダの名前が次のとおりであると仮定しましょうgoogle_authenticator:
sudo mkdir -p /var/www-auth/google_authenticator
ファイル$HOME/.google_authenticatorをそのディレクトリにコピーし、そのアクセス許可を変更します(読み取り可能である必要がありますwww-data)。
sudo cp $HOME/.google_authenticator /var/www-auth/google_authenticator/user
sudo chown www-data:www-data /var/www-auth/google_authenticator/user
ファイル名がログイン名を決定することに注意してください!ファイル名は、安全なWebサイトにログインするときにユーザー名として使用されます。
ディレクティブを追加して、新しいファイルを変更します。" PASSWORD=qwertyここqwertyで、は新しいログインパスワードです。
E3CY3TNSNBXXXXXX
"RESETTING_TIME_SKEW..。
"RATE_LIMIT 3 30..。
"WINDOW_SIZE 17
"DISALLOW_REUSE 48885555..。
"TOTP_AUTH
"PASSWORD = qwerty
4567..。
mod_authn_googleApache2用にインストールします。残念ながら、このモジュールはUbuntuのリポジトリ内では使用できませんが、このリポジトリから取得できます。手順は次のとおりです。(1)に移動しDownloads、(2)パッケージをダウンロードしdba-apa24-mod_authn_google-r22... .rpm、(3)抽出しmod_authn_google.so、(4)ファイルを配置し/usr/lib/apache2/modules/、(5)適切なアクセス許可を付与し、(6)モジュールロードファイルを作成します。
cd $HOME/Downloads
wget http://download.opensuse.org/repositories/home:/csbuild:/DBA/RedHat_RHEL-7/x86_64/dba-apa24-mod_authn_google-r22-1.1.x86_64.rpm
rpm2cpio dba-apa24-mod_authn_google-r22-1.1.x86_64.rpm | cpio -iv --to-stdout ./DBA/apache24/WWW/2.4.x/modules/mod_authn_google-r22.so > mod_authn_google.so
sudo mv mod_authn_google.so /usr/lib/apache2/modules/
sudo chown root:root /usr/lib/apache2/modules/mod_authn_google.so
sudo chmod g-w /usr/lib/apache2/modules/mod_authn_google.so
echo "LoadModule authn_google_module /usr/lib/apache2/modules/mod_authn_google.so" | sudo tee /etc/apache2/mods-available/authn_google.load
sudo a2enmod authn_google
/etc/phpmyadmin/apache.confこの方法で編集(または.htaccessファイルを作成)して、PhpMyAdmin認証タイプを変更します。
<Directory /usr/share/phpmyadmin>
.....
<IfModule mod_authz_core.c>
<IfModule mod_authn_google.c>
AuthType Basic
AuthName "The name of the authentication form - type some user and password hints"
AuthBasicProvider "google_authenticator"
GoogleAuthUserPath /var/www-auth/google_authenticator
GoogleAuthCookieLife 3600
GoogleAuthEntryWindow 2
</IfModule>
Require valid-user
</IfModule>
.....
</Directory>
モジュールを有効にし、Apache2を再起動して、新しい構成を適用します。
sudo a2enmod authz_core authz_user authn_google
sudo systemctl restart apache2.service
PhpMyAdminのURIにアクセスするには、ログイン名userとそのpassword6桁の数字を入力する必要がありますtoken code。

7.ApacheにModSecurityを使用する
ModSecurityを使用すると、PhpMyAdminのURIにさらに柔軟な制限を追加できます。では、この答え、セクションの下に「ModSecurityのルール> SAS> iptablesの」、私たちはModSecurityのためのカスタムルールを作成することができますどのように短期的に説明してきました。