购买VPS后第一时间需要做的事
Table of Contents
购买VPS后需要做哪些事情来强化服务器的安全性,这篇文章将介绍我总结出来的经验。
这篇文章使用到的服务器来自 wap.ac
#
登入服务器
首先打开系统的终端,使用以下命令通过 SSH 连接到服务器。username
通常是 root
,server 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
-
将
PermitRootLogin
设置为no
-
将
PubkeyAuthentication
设置为yes
-
将
PasswordAuthentication
设置为no
修改完成后重新启动 sshd
systemctl restart sshd
推荐使用 termius 保存SSH设置与公钥,并实现跨设备同步。