Start typing to search across invoices, services, domains, tickets, and more...
宝塔パネル(aaPanel)はサーバー管理を簡単にしてくれますが、パネル自体も攻撃者に狙われやすい対象です。既定のポート、弱いパスワード、古いバージョンはいずれも侵入の原因になります。本記事では、パネルポートとセキュリティエントリの変更、許可 IP の設定、SSH の強化、こまめな更新、不要なポートの閉鎖といった実践的な宝塔パネルのセキュリティ設定をまとめました。宝塔パネル/aaPanel を利用している Debian/Ubuntu・CentOS/Rocky/AlmaLinux サーバーが対象です。
未使用の高い番号のポート(例:23456)を選び、先にファイアウォールで開放しておきます。空いているか確認します。
ss -tlnp | grep 23456
Debian / Ubuntu で新しいポートを開放:
ufw allow 23456/tcp
CentOS / Rocky / AlmaLinux で新しいポートを開放:
firewall-cmd --permanent --add-port=23456/tcp && firewall-cmd --reload
その後、パネルの設定画面で「パネルポート」を変更して保存します。SSH で bt を実行し、メニューの「パネルポートの変更」に当たる番号を選ぶ方法もあります(番号はバージョンで異なるため、表示を確認してください)。新しいポートでログインできることを確認しましょう。
セキュリティエントリはパネル URL の後ろに付くパスで、完全なパスを知っている人だけがログイン画面を表示できます。設定画面でこれを十分に長いランダム文字列(英数字混在で 12 文字以上推奨)に変更し、パネルのユーザー名も変更、16 文字以上の強力なパスワードを設定してください。可能であれば、組み込みの二要素認証(Google Authenticator)とパネル SSL を有効にし、パネルを HTTPS で提供して認証情報の盗聴を防ぎます。現在のエントリ情報はいつでも確認できます。
bt default
オフィスや自宅の回線が固定 IP であれば、設定画面の「許可 IP(Authorized IP)」に入力し、その IP からのみパネルにアクセスできるようにすることを強くおすすめします。パネルへの総当たり攻撃を防ぐ最も効果的な方法の一つです。
bt を実行し、「IP アクセス制限の解除」に当たるメニューを選んで制限を解除してから、改めて設定してください。まずローカル PC で鍵を作成し、サーバーにコピーします(Windows 10/11 の PowerShell にも ssh-keygen があります)。
ssh-keygen -t ed25519
ssh-copy-id [email protected]
鍵でログインできることを確認したら、/etc/ssh/sshd_config を編集して次の設定を変更・追加します(例としてポート 22022、事前にファイアウォールで開放しておきます)。
Port 22022
PermitRootLogin prohibit-password
PasswordAuthentication no
MaxAuthTries 3
構文を確認して SSH を再起動します(サービス名は Debian / Ubuntu が ssh、CentOS / Rocky / AlmaLinux が sshd)。
sshd -t && systemctl restart ssh
sshd -t && systemctl restart sshd
Rocky / AlmaLinux で SELinux が有効な場合は、先に semanage port -a -t ssh_port_t -p tcp 22022 で新しいポートを許可します。Ubuntu 22.10 以降でソケットアクティベーションを使っている場合は、ポート変更後に systemctl daemon-reload && systemctl restart ssh.socket も実行してください。
最後に Fail2ban を導入し、ログイン失敗を繰り返す IP を自動で遮断します。
apt install -y fail2ban
dnf install -y epel-release && dnf install -y fail2ban
/etc/fail2ban/jail.local を作成して以下を記述し、systemctl enable --now fail2ban を実行します。
[sshd]
enabled = true
port = 22022
maxretry = 5
bantime = 3600
パネルの「Security(セキュリティ)」メニューからも SSH ポートの変更やパスワードログインの無効化が可能で、効果は同じです。
パネルやシステムパッケージの脆弱性は定期的に修正されます。パネルのホーム画面に更新通知が出たらすぐに更新し、OS も更新しましょう。
apt update && apt upgrade -y
dnf update -y
プラグインやソフトウェアは本当に必要なものだけを導入し、使わなくなったもの(phpMyAdmin や FTP など)は停止またはアンインストールして攻撃対象を減らしてください。
現在待ち受けているポートを一覧表示し、それぞれ本当に必要か確認します。
ss -tlnp
通常、外部に公開するのは 80、443、SSH ポート、パネルポートだけで十分です。MySQL の 3306 や Redis の 6379 などのデータベースポートはインターネットに公開しないでください。パネルと SSH のポートを変更したら、古いポートの許可ルールを削除します。
ufw delete allow 8888/tcp
ufw delete allow 22/tcp
firewall-cmd --permanent --remove-port=8888/tcp && firewall-cmd --reload
パネルの「Security」メニューでも許可ポートを一元管理し、不要なルールを削除できます。
新しいポートがシステムのファイアウォールで開放されていない可能性が高いです。SSH または VNC コンソールからポートを開放するか、bt メニューでポートを元に戻してください。
鍵が正しく設定されていません。VNC コンソールからログインし、PasswordAuthentication を一時的に yes に戻して SSH を再起動し、公開鍵を再登録してから無効化してください。
あまり使わないのであれば、使わないときは /etc/init.d/bt stop で停止し、必要なときに起動するとさらにリスクを下げられます(Web サイトは影響を受けません)。
設定中に問題が発生した場合や、サーバーへの侵入が疑われる場合は、チケットを送信して IMIDC の 24時間365日テクニカルサポートへご相談ください。