iGdu

耕读

Learner and Observer, be happy to share useful things.

購買VPS後必須要做的事情(2024年)

VPS 的使用、運營維護,是一門學問。做好 VPS 安全防護,需要從點滴做起;作為小白用戶,購買 VPS 之後,建議做好以下設置,最大程度地保護 VPS 的安全。

1. 修改 root 密碼,限制 root 登錄#

1.1 修改 root 密碼#

通過 SSH 工具(如 putty,Xshell 等),輸入 VPS 服務商提供的 IP,端口(22),賬號(root)和密碼即可連接 VPS。如果確定 IP 被屏蔽,則可以聯繫服務商更換可用 IP(通常可以免費更換一次 IP,具體要看各服務商的規定)。

用 root 登錄 VPS 之後,輸入命令:passwd,並輸入要設置的密碼(輸入的密碼不可見),即可更改初始的 root 密碼。

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 創建 shell 腳本

首先,輸入以下命令,進入禁止 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 禁用方法有二:#

方法一:卸載 Virtio-Balloon#

對於 Racknerd,Virtio-Balloon 並非系統內置,可以通過 rmmod virtio_balloon 命令臨時卸載;如果想長期生效,需要修改相關系統規則:

vi /etc/modprobe.d/blacklist.conf 

寫入以下內容後保存、退出:

blacklist virtio_balloon

更新系統信息:
update-initramfs -u

方法一參考這篇文章:禁用 Virtio-Balloon

方法二:通過修改 Grub 配置禁用 Virtio-Balloon#

對於 virtio_balloon 內置的 VPS,如 Cloudcone,輸入 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 日,此處存檔一份。

參考Source1Source2

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。