VPSのセキュリティ、Nginx、UFW、ユーザーの設定、SSHによるログイン

VPSのセキュリティ、Nginx、UFW、ユーザーの設定、SSHによるログイン

28

2 分。

事前要件

作業には nginxdocker が必要です。まだインストールされていない場合は、次のコマンドを実行してください:

sudo apt update && sudo apt install nginx docker.io -y

または、インストールされているかどうかを確認します:

docker --version && nginx -v

ユーザーの基本設定

root ユーザーで作業することは絶対に避けてください。新しいユーザーを作成し、そのユーザーに管理者権限を付与します。

  • ユーザーの追加:

    adduser user  # 『user』 を自分の名前に置き換えてください

    出力は次のようになります: Adding user "user" ... Enter new UNIX password: (パスワードを入力してください。文字は表示されません)。

  • 権限の付与と確認:

    usermod -aG sudo user
    groups user

    期待される出力: user : user sudo

SSH キーによるログインの設定

これはブルートフォース攻撃から保護する最も確実な方法です。

  1. すでに SSH キーをコンピュータに持っている場合は、それをサーバーに送信してください:

     ssh-copy-id user@サーバーの IP アドレス
  2. キーがない場合、キーを作成してください:

    ssh-keygen -t ed25519 -C 「user@vps」
    # その後、上記の ssh-copy-id コマンドで送信してください    

パスワードによるログインとルートアクセスを無効化

次に、鍵以外の方法でログインできないように設定します。

  1. 設定ファイルを開きます: sudo nano /etc/ssh/sshd_config

  2. 以下の行を見つけて変更(または追加)します:

    • PermitRootLogin no - SSH経由でrootユーザーとして直接ログインすることを禁止します。
    • PasswordAuthentication no - 通常のパスワードを使用したサーバーへのログインを無効にします。
    • ChallengeResponseAuthentication no - 「呼び出し-応答」方式による認証を無効にします。
    • UsePAM no - SSH 用の PAM (Pluggable Authentication Modules) モジュールの使用を無効にします。
  3. サービスを再起動します:sudo systemctl restart ssh

これで、root としてログインしようとすると、root@ip: Permission denied (publickey) というメッセージが表示されます。

ファイアウォール (UFW) の設定

ファイアウォールは、許可したポート以外のすべてのポートをブロックします。

ポートプロトコル用途重要度
22TCPSSH必須! これがないとサーバーとの接続が失われます。
80TCPHTTPNginx の標準ポート。
443TCPHTTPSSSL トラフィック用の保護されたポート。

より安全にするために、SSHのポートを別のポートに変更し、UFWの設定にも追加してください!

UFW の設定:

sudo ufw enable
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw status

status コマンドの出力は次のようになります。

Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere

Next.js の React2Shell 脆弱性

React2Shell は、ハッカーが React フォームを介してサーバー上でコードを実行することを可能にする重大な脆弱性です。Next.js 上のクラウドインスタンスの 69% がこの脅威にさらされています。

侵害を確認する方法

プロセスとファイルのリストを確認してください。疑わしい兆候:

  • システム内のファイル:ssh.shsex.shkai.tar.gzhttd
  • xmrig プロセス(マイナー、CPU を 100% 負荷)。
    • top または htop コマンドで確認できます。

防御方法

  1. Next.js の更新: 安全なバージョン 15.0.515.1.915.2.615.3.615.4.815.5.716.0.7 に緊急更新してください。

  2. Node.js 24: ファイルへのアクセスを制限するために、新しい Node 権限モデルを使用してください。

  3. 安全な Docker:

    • --read-only フラグを指定してコンテナを起動してください。
    • Dockerfile での root からの起動を削除し、USER node を使用してください。
    • コンテナが内部リソースのみにアクセスできるように設定してください(ホワイトリスト)。
  4. ハッキングされた場合:感染したサブディレクトリ/コンテナを削除し、キャッシュをクリアし、必ずすべての秘密鍵とパスワードを変更してください。

類似カテゴリ:

関連記事

  • VPNを有効にした状態でViteを使用する方法、迅速な解決策

    VPNを有効にした状態でのViteの動作に関する問題を解決し、ローカルトラフィックがVPNトンネルにリダイレクトされるのを防ぐための接続設定

    29

    1 分。

ご連絡ください

プロジェクトの種類*