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(通常可以免费更换一次 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

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。