iGdux

耕读无限

Learner and Observer, be happy to share useful and nice things.
youtube
follow
tg_channel
github
email

VPSを購入した後に行う必要があること(2024年)

VPS の使用、運営、およびメンテナンスは専門知識が必要です。VPS のセキュリティを確保するためには、細部にわたって対策を行う必要があります。初心者の場合、VPS を購入した後、以下の設定を行うことをおすすめします。これにより、VPS のセキュリティを最大限に保護することができます。

1. root パスワードの変更と root ログインの制限#

1.1 root パスワードの変更#

SSH ツール(例:putty、Xshell など)を使用して、VPS プロバイダーが提供する IP、ポート(22)、アカウント(root)、およびパスワードを入力して VPS に接続します。IP がブロックされていることが確認された場合、プロバイダーに連絡して使用可能な IP に変更することができます(通常、1 回の IP 変更は無料で行えますが、各プロバイダーの規定によります)。

root で VPS にログインした後、次のコマンドを入力してパスワードを変更します:passwd。変更するパスワードを入力します(入力したパスワードは表示されません)。

1.2 VPS ログインアカウントの変更#

VPS ログインアカウントを変更し、root アカウントのログインを制限し、通常のアカウントで VPS に接続します(注意して操作してください)。この操作の理由は、root アカウントがスキャンやブルートフォース攻撃の対象になりやすいため、VPS ログインアカウントの変更により攻撃の難易度を上げることです。具体的な手順は以下の通りです:

1.2.1 root で通常のユーザーを作成します:sudo adduser を設定するユーザー名に置き換えてください);

1.2.2 新しいユーザー(で指定したユーザー)を sudo グループに追加して管理者権限を取得します:sudo usermod -aG sudo

1.2.3 新しいユーザー名でのログインが成功するかテストします。

方法 1:コマンド su - を入力して新しいユーザーの環境に切り替えます。この時、パスワード(先ほど変更した root のパスワード)を入力する必要があります。新しいユーザーでログインした後、sudo コマンドを入力すると、新しいユーザーの管理者環境に入ることができます。
方法 2:1.2.2 の手順で root ログインの設定を行った後、root アカウントの SSH 接続を終了し、新しいユーザー名と root のパスワードで再度ログインします。

1.3 Root ログインの無効化#

新しいユーザー名で VPS に接続した後、次のコマンドを入力します:sudo nano /etc/ssh/sshd_config で SSH 設定ファイルを編集します。
"PermitRootLogin" の項目を "PermitRootLogin no" に変更し、ファイルを保存して終了します(ctrl+x で保存して終了します)。
SSH サービスを再起動します:sudo systemctl restart ssh。再起動後、VPS は root ユーザー名でのログインができなくなります。

1.4 SSH のブルートフォース攻撃対策#

1.4.1 シェルスクリプトの作成

まず、以下のコマンドを入力して、SSH のブルートフォース攻撃を防ぐためのスクリプトファイルにアクセスします。

vi /usr/local/bin/secure_ssh.sh

次に、スクリプトファイルに以下の内容を書き込みます:

#! /bin/bash
cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /usr/local/bin/black.txt
for i in `cat  /usr/local/bin/black.txt`
do
  IP=`echo $i |awk -F= '{print $1}'`
  NUM=`echo $i|awk -F= '{print $2}'`
   if [ $NUM -gt 7 ];then
      grep $IP /etc/hosts.deny > /dev/null
    if [ $? -gt 0 ];then
      echo "sshd:$IP:deny" >> /etc/hosts.deny
    fi
  fi
done

1.4.2 タスクの作成

まず、crontab -e を入力してタスクの編集環境に入り、以下の内容をファイルに追加します(SSH のブルートフォース攻撃を防ぐスクリプトを 3 分ごとに実行するタスク):

*/3 * * * *  sh /usr/local/bin/secure_ssh.sh

2. システムの更新と追加・削除の実行#

2.1 システムと必要な依存関係の更新、不要なインストールパッケージの削除#

Ubuntu/Debian の場合は、次のコマンドを入力します:

apt update -y && apt full-upgrade -y && apt autoremove -y && apt autoclean -y

CentOS/RHEL の場合は、次のコマンドを入力します:

yum update -y && yum upgrade -y && yum autoremove -y && yum clean all

2.2 ゴミの一括削除#

Ubuntu/Debian の場合は、次のコマンドを入力します:

sudo apt autoremove --purge -y
sudo apt clean -y
sudo apt autoclean -y
sudo apt remove --purge $(dpkg -l | awk '/^rc/ {print $2}') -y 
sudo journalctl --rotate
sudo journalctl --vacuum-time=1s
sudo journalctl --vacuum-size=50M
sudo apt remove --purge $(dpkg -l | awk '/^ii linux-(image|headers)- +/{print $2}' | grep -v $(uname -r | sed 's/-.*//') | xargs) -y

CentOS の場合は、次のコマンドを入力します:

sudo yum autoremove
sudo yum clean all
sudo journalctl --rotate
sudo journalctl --vacuum-time=1s
sudo journalctl --vacuum-size=50M
sudo yum remove $(rpm -qa kernel | grep -v $(uname -r))

3. Virtio-Balloon の無効化、VPS プロバイダーによるパフォーマンスへの影響を防止#

Virtio-Balloon は、VPS の仮想メモリの動的割り当てプラグインとして理解できますが、VPS プロバイダーが超過販売を行った場合、他のユーザーの VPS のパフォーマンスに影響を与える可能性があります。そのため、このプラグインが存在するかどうかを確認し、存在する場合は無効化することをおすすめします。

3.1 コマンドのクエリ:#

lsmod | grep virtio_balloon

私の Racknerd では有効になっています。以下の画像を参照してください:

img
Racknerd Virtio Ballon

3.2 無効化方法は 2 つあります:#

方法 1:Virtio-Balloon のアンインストール#

Racknerd の場合、Virtio-Balloon はシステムに組み込まれていないため、一時的に rmmod virtio_balloon コマンドでアンインストールすることができます。永続的に適用するには、関連するシステムルールを変更する必要があります:

vi /etc/modprobe.d/blacklist.conf 

以下の内容を書き込んで保存し、終了します:

blacklist virtio_balloon

システム情報を更新します:
update-initramfs -u

方法 1 の参考文献:禁用 Virtio-Balloon

方法 2:Grub の設定を変更して Virtio-Balloon を無効化する#

Cloudcone など、virtio_balloon が組み込まれた VPS の場合、lsmod | grep virtio_balloon コマンドでは検出されませんが、rmmod virtio_balloon コマンドを入力すると、virtio_balloon が組み込まれていることが表示されます。この場合、virtio_balloon はモジュールとしてロードされるのではなく、カーネルに直接コンパイルされています。そのため、Grub の設定を変更する必要があります。

  1. Grub の設定ファイルにアクセスします:

    sudo nano /etc/default/grub

  2. GRUB_CMDLINE_LINUX="virtio_balloon=0" というコマンドラインを追加します。または、既存の GRUB_CMDLINE_LINUX に追加するパラメータの前に virtio_balloon=0 を挿入し、スペースを追加します。

  3. Ctrl+X で保存して終了し、sudo update-grub コマンドを入力して設定を更新し、sudo reboot コマンドを入力してシステムを再起動します。

上記の設定を行うことで、VPS のセキュリティが相対的に向上します。

注記:この記事は 2024 年 1 月 17 日に元の記事として公開されました。こちらでアーカイブされています。

参考文献参考文献 1参考文献 2

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。