Skip to main content

购买VPS后第一时间需要做的事

Table of Contents

购买VPS后需要做哪些事情来强化服务器的安全性,这篇文章将介绍我总结出来的经验。

这篇文章使用到的服务器来自 wap.ac

# 登入服务器

首先打开系统的终端,使用以下命令通过 SSH 连接到服务器。username 通常是 rootserver IP 通常会寄到邮箱中。

ssh [username]@[server IP]

如果购买的是 IPv6 的服务器,但电脑没有 IPv6 地址,则无法连接。购买前可以至 test IPv6 检查服务器的连通性。

一般默认是 22 端口,如果是其他端口,则需要在命令中添加对应的端口。

ssh -p [port] [username]@[server IP]

输入密码时,密码不会显示在屏幕上。如果没有先设置密码,则通常可以在 VPS 提供商的邮件中找到相关信息。

# 基本设置

以下以 Debian/Ubuntu 为例。

首先需要更新系统组件。输入指令后,按 y 同意安装更新。

sudo apt update
sudo apt upgrade

关闭系统默认的 ufw 防火墙服务。

sudo systemctl stop ufw
sudo systemctl disable ufw
sudo ufw --force reset

安装 firewall-cmd,开启 firewall-cmd 服务并设置开机启动。

sudo apt install firewalld
sudo systemctl start firewalld
sudo systemctl enable firewalld

可以使用以下命令检查 firewall-cmd 是否正常启动。

sudo systemctl status firewalld

以下时 firewall-cmd 常用的指令。

# 重启服务

sudo systemctl restart firewalld

# 关闭开机启动

sudo systemctl disable firewalld

# 修改规则后需要重新加载

sudo firewall-cmd --reload

# 查看目前的规则

sudo firewall-cmd --list-all

# 查看目前的作用区域

sudo firewall-cmd --get-active-zones

# 查看目前区域中的端口(假設是 public)

sudo firewall-cmd --zone=public --list-ports

# 限制登入

通过这个网站来查看 IP,并在 firewall-cmd 中设置仅允许本机或是受信任的 IP 登入 VPS。

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="[your IP]" service name="ssh" accept'
sudo firewall-cmd --reload

如果 SSH 端口不是默认的 22,则需要在指令中修改成对应端口。

由于使用 roor 登入可能增加密码被暴力破解的风险。因此,建议新增一个新的用户并禁止 root 用户登入,同时禁止使用密码登入,只能使用公钥进入。

新增一个新的用户。

sudo adduser [new username]

新增用户时,会被要求设置密码,推荐使用随机密码生成器生成密码,推荐密码设置 15 位以上且包含特殊符号,并保存在安全的位置。

如果没有必要设置新用户的详细信息,可以全部按 Enter 跳过。

切换到新的用户。

su [new username]

新建一个 .ssh 数据夹存储公钥,并设置权限。

mkdir -p ~/.ssh
chmod 700 ~/.ssh

将本机或受信任的公钥存入。

如果没有公钥,可以参考以下内容。

Windows 为例,打开终端并使用 ssh-keygen 生成 RSA 密钥。

ssh-keygen -t rsa -b 2048
ssh-keygen -t rsa -b 2048

密码保存在默认位置即可(C:\Users\[your username]\.ssh\),私钥默认名为 id_rsa,公钥默认名为 id_rsa.pub

echo "[your public key]" > ~/.ssh/authorized_keys

允许新用户使用 sudo 指令

sudo usermod -aG wheel [new username]

切换至 root 用户。

sudo su root

修改 SSH 的配置,实现禁止 root 用户登入并只能使用公钥登入。

vim /etc/ssh/sshd_config
  1. PermitRootLogin 设置为 no

  2. PubkeyAuthentication 设置为 yes

  3. PasswordAuthentication 设置为 no

修改完成后重新启动 sshd

systemctl restart sshd

推荐使用 termius 保存SSH设置与公钥,并实现跨设备同步。