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

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

252

4 分。

前提条件

作業を行うために、nginxdocker、および ufw をインストールします。

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

ユーザーの初期設定

root ユーザーで作業するのは安全ではないため、adduser your_name コマンドで新しいユーザーを作成し、usermod -aG sudo your_name および groups your_name を使用して管理者権限を付与する必要があります。

その後、コンソールにユーザー追加の通知 Adding user "your_name" ... と、パスワード入力欄が表示されます。

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

これはブルートフォース攻撃に対する確実な防御策です。sshキーが既に存在する場合は、ssh-copy-id your_name@server_ipでサーバーに送信してください。ない場合は、ssh-keygen -t ed25519 -C "your_name@vps"で作成してください。

この方法でコピーする際、サーバーのパスワードの入力が求められる場合があります。セキュリティ上の理由から、パスワードを入力しても画面には表示されません!

パスワードログインとRootアクセスの無効化

次に、sshキー以外の方法でのログインを無効にする必要があります。設定ファイル sudo nano /etc/ssh/sshd_config を開き、以下の行を見つけて変更(または追加)してください:

  • PermitRootLogin no - ssh経由でのrootユーザーによる直接ログインを禁止します;
  • PasswordAuthentication no - 通常のパスワードを使用したサーバーへのログインを無効にします;
  • ChallengeResponseAuthentication no - "チャレンジ・レスポンス"方式による認証を無効にします;
  • UsePAM no - ssh での PAM (Pluggable Authentication Modules) モジュールの使用を無効にします。

サービスを再起動します sudo systemctl restart sshこれで、rootとしてログインしようとすると、root@ip: Permission denied (publickey)というエラーが発生します

ファイアウォールの設定

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

ポートプロトコル用途なぜ重要か?
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 コマンドを実行すると、ufw が有効になっているか、およびどのポートが許可されているかを確認できます。

NextJSにおけるReact2Shellの脆弱性

React2Shellは、ハッカーがサーバー上で自身のコードを実行することを可能にする重大な脆弱性です。

確認するには、プロセスとファイルのリストを確認してください。以下のいずれかが検出された場合、サーバーは感染しています:

  • ssh.shsex.shkai.tar.gz、または httd ファイル;
  • xmrig プロセス(マイナー、CPU使用率100%):
    • top または htop コマンドで確認できます。

ウイルスから保護するには、NextJSを安全なバージョン(NextJSのサイトを参照)に更新し、NodeJSを更新し、--read-onlyオプションを指定してUSER node環境下でDockerコンテナを実行し、Whitelist経由でアクセスできるようにする必要があります。

もしプロジェクトがハッキングされた場合は、感染したポッド/コンテナを削除し、キャッシュをクリアし、必ずすべてのキーとパスワードを変更する必要があります。

記事は随時更新されます

関連記事

  • ウェブサイトにおける悪い慣行

    ウェブデザインにおける致命的なミスの分析。スライダー、自動再生、重いページがコンバージョン率やGoogle・Yandexでの検索順位を低下させる理由

    91

    2 分。

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

    VPN接続時にViteが正常に動作しない問題の解決方法、接続設定、およびローカルトラフィックがVPNトンネルにリダイレクトされるのを防ぐ方法

    410

    3 分。

プロジェクトの種類*