购买VPS后第一时间需要做的事
Table of Contents
购买 VPS 后,如何提升服务器的安全性?这篇文章将分享我的经验。
这篇文章使用到的服务器来自 wap.ac
#
登入服务器
首先打开系统的终端,使用以下命令通过 SSH 连接到服务器。 username 通常是 root,server IP 通常会寄到邮箱中。
ssh [username]@[server IP]如果购买的是 IPv6 的服务器,但电脑没有 IPv6 地址,则无法连接。购买前可以至 test IPv6 检查服务器的连通性。
对于中国用户,可以至 ping.pe 检查服务器 IP 是否被“墙”。
一般默认是 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 2048ssh-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 sudo [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设置与公钥,并实现跨设备同步。