記事ディレクトリ
最新 ヘスティアCP このAdminerインストール完全ガイドには、ワンクリック展開、セキュリティ強化、自動構成手順が含まれています。データベース管理ツールの展開方法とサーバーの保護方法をステップバイステップで解説しているので、初心者でもすぐに使い始めることができ、HestiaCP + Adminerの運用とメンテナンスにおける課題を解決します。
もしあなたがまだ何の保護対策も施していないデータベース管理ツールを使っているなら、ハッカーに鍵を渡しているようなものです。
Adminerを選ぶ理由... phpMyAdminの?
Adminerは1MB未満の単一のPHPファイルで構成されているため、導入が非常に簡単、迅速、かつリソース効率に優れています。
phpMyAdminの複雑な構造と比較すると、AdminerはVPS、小規模なウェブサイト、個人プロジェクトにより適しています。

HestiaCPに管理者をインストールする手順
1. 管理者ファイルをダウンロードする
に行く 管理者公式サイト 最新バージョンをダウンロード adminer.php。
ファイルをHestiaCPウェブサイトのディレクトリにアップロードしてください。例:
/home/username/web/adminer.domain.com/public_html/adminer.php
2. サブドメインを作成し、SSLを有効にします。
HestiaCPパネルでサブドメインを追加する adminer.domain.com安全な通信を確保するため、Let's Encrypt SSLを有効にしてください。
3. Nginxのパスワード保護を設定する
サブドメインのNginx設定ファイルに以下を追加してください。
location / {
auth_basic "Restricted Area";
auth_basic_user_file /etc/nginx/.htpasswd;
root /home/username/web/adminer.domain.com/public_html;
index index.php adminer.php;
}
パスワードファイルを生成する:
sudo apt-get install apache2-utils
sudo htpasswd -c /etc/nginx/.htpasswd adminuser
管理者アカウントにアクセスすると、パスワード入力ダイアログボックスが表示されます。正しいユーザー名とパスワードを入力しないとログインできません。
管理者ファイルを自動的に更新する
古いバージョンを使用することに伴うセキュリティリスクを回避するために、シェルスクリプトとCronスケジュールタスクを使用して自動更新を行うことができます。
更新スクリプトの例
#!/bin/bash
URL="https://www.adminer.org/latest.php"
TARGET="/home/username/web/adminer.domain.com/public_html/adminer.php"
wget -q -O "$TARGET" "$URL"
chown username:username "$TARGET"
chmod 644 "$TARGET"
名前を付けて保存 /usr/local/bin/update-adminer.shそして、スケジュールされたタスクを追加します。
crontab -e
0 3 * * 1 /usr/local/bin/update-adminer.sh
こうすることで、管理者ファイルは毎週月曜日の午前3時に自動的に更新されます。
Fail2Banによるブルートフォース攻撃対策
シンプルな基本認証はブルートフォース攻撃に対して脆弱ですが、Fail2Banは悪意のあるIPアドレスを自動的にブロックできます。
フィルタ設定
資料:/etc/fail2ban/filter.d/nginx-adminer.conf
[Definition]
failregex = ^<HOST> - .* "GET /adminer.php HTTP/.*" 401
ignoreregex =
刑務所設定(段階的な追放期間)
資料:/etc/fail2ban/jail.local
[nginx-adminer]
enabled = true
filter = nginx-adminer
port = http,https
logpath = /var/log/nginx/access.log
maxretry = 3
findtime = 600
bantime.increment = true
bantime.rndtime = 60
bantime.factor = 2
bantime = 600
効果:最初のBANは10分、2回目は20分、3回目は40分、といった具合に、BAN時間が長くなります。攻撃を繰り返すユーザーに対しては、BAN時間が徐々に長くなります。
ワンクリックでデプロイできるスクリプト
名前を付けて保存 /usr/local/bin/setup-fail2ban-adminer.sh:
#!/bin/bash
FILTER_PATH="/etc/fail2ban/filter.d/nginx-adminer.conf"
JAIL_PATH="/etc/fail2ban/jail.local"
cat > $FILTER_PATH << 'EOF'
[Definition]
failregex = ^<HOST> - .* "GET /adminer.php HTTP/.*" 401
ignoreregex =
EOF
cat >> $JAIL_PATH << 'EOF'
[nginx-adminer]
enabled = true
filter = nginx-adminer
port = http,https
logpath = /var/log/nginx/access.log
maxretry = 3
findtime = 600
bantime.increment = true
bantime.rndtime = 60
bantime.factor = 2
bantime = 600
EOF
systemctl restart fail2ban
fail2ban-client status nginx-adminer
行程:
sudo chmod +x /usr/local/bin/setup-fail2ban-adminer.sh
sudo /usr/local/bin/setup-fail2ban-adminer.sh
結論:安全性と効率性のバランス
データベース管理ツールは、インターネット上に放置して安心して使用できるものではないと私は強く信じています。Adminerの軽量設計は魅力的ですが、セキュリティ対策もそれに追随する必要があります。パスワード保護は第一の防御線であり、自動更新は継続的な保護を提供し、Fail2Banはインテリジェントな対策を提供します。これら3つの要素を組み合わせることによってのみ、効率的かつ安全なデータベース管理環境を構築できるのです。
真の達人とは、道具の作り方を知っているだけでなく、道具を守る方法を知っている人のことである。
Hope Chen Weiliang ブログ ( https://www.chenweiliang.com/ こちらで共有されている記事「HestiaCP 管理者インストール:セキュリティ自動化設定+データベース管理の最適化」が参考になるかもしれません。
この記事のリンクを共有することを歓迎します。https://www.chenweiliang.com/cwl-34018.html
