VPSを堅牢化する:20分で終わるチェックリスト
このガイドは英語から翻訳されています。リンク先の一部のページは英語のみです。
日和見的な攻撃の大多数を止める、具体的な手順。
サーバーを完全に安全にすることはできません。しかし約20分で「狙う価値の低い標的」にすることはできます。それだけで、自動化された攻撃のほぼすべてをかわせます。
1. 鍵のみのSSH
詳しくはSSH鍵とアクセスで説明しています。これが最も効果の高い単独の手順です。パスワードの総当たりは公開インターネット上で最も一般的な侵入手法であり、これで排除できます。
PasswordAuthentication no
PermitRootLogin prohibit-password2. デフォルト拒否のファイアウォール
実際に提供しているものだけを許可します。Debian/Ubuntuの場合:
apt install -y ufw
ufw default deny incoming
ufw default allow outgoing
ufw allow 22/tcp # SSH — see the warning below
ufw allow 80,443/tcp # web
ufw enable
ufw status verboseRHEL系ではfirewalldを使います。
firewall-cmd --permanent --add-service=ssh
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload警告: SSHセッションを開いたままファイアウォールを有効にし、切断する前にSSHが許可されていることを確認してください。SSHポートを変更する場合は、先に新しいポートを許可してください。詳細はファイアウォールの基本をご覧ください。常に許可しておく必要がある当社のプライベートメッシュインターフェースについても記載しています。
3. 自動セキュリティアップデート
apt install -y unattended-upgrades
dpkg-reconfigure -plow unattended-upgrades # choose yes
# verify:
systemctl status unattended-upgrades --no-pagerRHEL系ではdnf-automaticが同じ役割を果たします。自動セキュリティパッチにより、脆弱性の公開から悪用までの猶予(実際には数時間のことも多い)を埋められます。
4. Fail2ban
ログイン失敗が繰り返されたIPをブロックし、終わりのない総当たり攻撃を行き止まりにします。Fail2banの基本をご覧ください。
apt install -y fail2ban
systemctl enable --now fail2ban5. 使わないものは止める
待ち受けているサービスはすべて侵入口になり得ます。
ss -tulpn # what is listening, and who owns it
systemctl --type=service --state=running # what is running依頼していないものは停止して無効にしてください。最小構成のサーバーは安全なサーバーです。
6. サービスは権限のないユーザーで実行する
データベース、Webアプリ、ワーカーをrootで実行してはいけません。ほとんどのパッケージは専用のサービスユーザーを自動作成するので、それを使います。独自のユニットファイルを書く場合は、User=とGroup=を明示してください。
7. 秘密情報を守る
秘密情報をgitにコミットしない。
chmod 600の環境ファイルを使う。パスワードや鍵を含む設定ファイルを、全員が読める状態にしない。
共有の管理者資格情報1つより、サービスごとの資格情報を優先する。
8. 戻る手段を用意する
/panel/vpsのレスキューコンソールが、必要になる前に動作することを確認する。
リスクのある変更の前にスナップショットを取る — リサイズ、スナップショット、再インストールをご覧ください。
普段使いのノートPC以外の場所にも、SSH鍵を少なくとも1つ保管する。
9. 監視する
一度も見ないサーバーは守れません。監視チェックを追加し、ときどきログを読みましょう。方法はログの読み方で説明しています。
オプション:侵入検知
価値の高いホストには、CrowdSec(クラウドソース型ブロック、MITライセンス)とWazuh(ホスト型侵入検知)が実質的な深みを加えます。どちらもアプリホスティングガイドで解説しています。
関連記事