新しいUbuntu VPSを段階的に保護する
新しいUbuntu VPSを更新し、専用の管理者アカウントを作成し、鍵によるSSHアクセスを実証し、公開サービスを制限し、ホストファイアウォールを有効にして、監視とバックアップを用意します。各変更を順番に実施し、事業者のコンソールを使える状態に保ち、二つ目の接続が成功するまで元のSSHセッションを閉じないでください。
重要情報
- 対象
- systemdとOpenSSHを使う、サポート対象のUbuntu Server
- 主な安全策
- コンソールアクセスを保ち、二つ目のセッションを試験
- 認証
- 専用ユーザー用の、パスフレーズで保護したSSH鍵
- 復旧
- 独立したバックアップと検証済みの復元
アクセス設定を変える前に更新と確認を行う
基盤にスナップショット機能があり、それが独立したバックアップではないと理解している場合に限り、事業者スナップショットを作成します。文書化された初期方法でログインし、OSイメージを確認して、sudo apt updateに続けてsudo apt full-upgradeを実行し、リポジトリの更新を適用してください。設定ファイルの置換を受け入れる前に案内を読み、カーネルまたは中核部品で必要ならsudo rebootを実行します。
再接続し、sudo ss -tulpnで待ち受けポートを一覧化します。外部公開される各待ち受けには、担当と目的が必要です。最小構成のUbuntuクラウドイメージはインストーラーイメージと異なる場合があるため、有効なサービスを推測しないでください。アプリケーションスタックを導入する前に基準状態を記録します。
- 意図して信頼するリポジトリと鍵だけを使う。
- 依存関係でないことを確認してから不要なソフトウェアを削除する。
- 初回だけで終わらせず、更新を定期実行する。
専用の管理者アカウントを作成し、SSH鍵を検証する
sudo adduser deployで別アカウントを作成し、deployを選んだ名前に置き換えます。次にsudo usermod -aG sudo deployで管理権限を与えてください。その利用者の~/.ssh/authorized_keysへSSH公開鍵を追加します。事業者の鍵機能またはssh-copy-idを使用できます。秘密鍵ファイルは決してアップロードしないでください。
二つ目の端末を開き、ssh deploy@SERVER_IPを試します。sudo -vが動作することを確認してください。この試験後にのみ、rootの直接ログインとパスワードログインの無効化を検討します。sudoedit /etc/ssh/sshd_config.d/60-local-hardening.confで追加設定を編集し、PermitRootLogin noとPasswordAuthentication noを設定します。sudo sshd -tで検証してから、sudo systemctl reload sshで再読込してください。既存セッションを開いたまま、もう一度試験します。
- 例示の名前とアドレスをすべて明示的に置き換える。
- ローカルのパスフレーズと、パスワード管理ツールまたは安全なエージェントを使う。
- 検証に失敗したらファイルを修正し、SSHを再読込しない。
必要なネットワークサービスだけを許可する
UbuntuのUFWは便利なホストファイアウォールの操作画面です。まずSSHサービスが想定ポートを使用していることを確認します。sudo ufw allow OpenSSHで許可してください。意図的にポートを変更した場合は、代わりに一致する規則を作ります。sudo ufw status verboseで予定状態を確認し、sudo ufw enableで有効にします。古い端末を閉じる前に、新しい端末からアクセスを検証してください。
アプリケーションのポートは、サービスをインストールして準備できた時だけ追加します。Webサーバーでは一般にTCP 80と443を使いますが、普遍的な一覧はありません。事業者ファイアウォールとUFWは相互補完できます。障害対応者がどの層で通信を遮断したか分かるよう、両方を文書化してください。
- SSH許可規則なしに、遠隔からデフォルト拒否のファイアウォールを有効にしない。
- 非公開データベースはローカルまたはプライベートインターフェースにバインドする。
- ソフトウェア導入後に
sudo ss -tulpnを再実行する。
堅牢化を日常の運用手順にする
sudo apt install unattended-upgradesで自動セキュリティ更新をインストールして内容を確認し、自分の保守方針と再起動方針に合わせて設定します。ディスク、メモリ、認証失敗、サービス状態、証明書期限、バックアップ結果を監視してください。認証とネットワーク制限なしに監視エージェントを公開しないでください。
独立した版管理付きバックアップを作成し、隔離した試験システムへ復元します。復旧コードとコンソール手順はVPSと別に保管してください。セキュリティ設定は変化するため、本番稼働前に、この一般的な一覧を最新のUbuntu文書およびアプリケーション要件と照合します。
- 管理者アカウントと鍵を定期的に確認する。
- OSだけでなくアプリケーションにも更新を適用する。
- ログイン方法を削除する前に復旧経路を文書化する。
出典
よくある質問
SSHポートは変更すべきですか?
定型的なスキャンの雑音は減る場合がありますが、鍵認証、更新、アクセス制御、監視の代わりにはなりません。変更する場合はすべてのファイアウォール層を更新し、セッション終了前に試験してください。
rootログインをすぐに無効化できますか?
専用ユーザーが鍵で認証し、必要なsudo権限を得て、別セッションで再接続できた後に限ります。コンソールから復旧できる状態も保ってください。
UFWだけでVPSを保護できますか?
いいえ。ファイアウォールはネットワーク到達性を制限しますが、脆弱なソフトウェアの更新、盗まれた認証情報の保護、アプリケーションロジックの安全化、バックアップの代替はできません。