类别:Linux / 日期:2026-08-05 / 浏览:2479 / 评论:0

VPS 刚开出来,默认状态是裸奔的——root 密码录、防火墙没开(部分厂商会在平台有默认安全组平台级,不是VPS级,需自行查看是否开启)、没有任何防护。全世界的扫描器 24 小时在扫公网 IP,一台没加固的 VPS 平均几分钟就会被尝试爆破。

今天咱们不是"建议你做"的选读内容,是"必须做"的操作手册。所有命令在 Ubuntu 22.04 / Debian 12 上验证通过,可以直接复制粘贴。


连上去

云厂商会给你 IP 地址和 root 密码。Mac / Linux 打开终端:

ssh root@123.45.67.89

Windows 推荐 Termius(界面好、跨平台)或 FinalShell(国产、免费、带文件管理)。输入 IP 和端口 22(默认SSH端口),用户名 root,密码填云厂商给的初始密码(购买开通既有)。(阿伟是懒人,用的Windows,操作简单,可视化面)

连上后看到 root@xxxxx:~# 就说明登录成功了。

PixPin_2026-08-05_08-39-25.jpg


第一步:更新系统

apt update && apt upgrade -y

刚装好的系统有过期的包,可能包含已知安全漏洞,这一步把所有包更新到最新版本,堵掉已知漏洞。等它跑完。


第二步:改 root 密码

passwd

云厂商给的初始密码不一定安全——你不确定有没有别人知道。改成你自己的强密码,至少 12 位,混合大小写字母、数字、符号。输入时不显示字符是正常的。(有些平台是可以直接在平台上更改的,怎么方便怎么来)


第三步:建普通用户

日常操作不要用 root。root 权限太大,一条 rm -rf / 就能把系统删没。建一个普通用户,需要的时候临时提权:

adduser deploy

设置密码,其他信息回车跳过。然后给 sudo 权限:

usermod -aG sudo deploy

以后日常用 deploy 登录,需要 root 权限时命令前加 sudo。这样即使误操作,系统也会要求你确认,多一道保险。


第四步:配 SSH 密钥登录

密码登录有两个问题:记不住,而且会被暴力破解。SSH 密钥更安全也更方便——用密钥对代替密码,机器帮你验证身份,暴力破解在数学上不可行。

在你本地电脑生成密钥对:

ssh-keygen -t ed25519 -C "your_email@example.com"

一路回车,默认路径 ~/.ssh/id_ed25519。会生成两个文件:私钥(id_ed25519,不能给别人)和公钥(id_ed25519.pub,放服务器上)。

把公钥传到服务器:

ssh-copy-id deploy@123.45.67.89

输入 deploy 的密码,公钥就自动传过去了。

测试一下: 开新终端,ssh deploy@123.45.67.89,不用输密码就进去了,说明密钥配好了。

下一步要禁用密码登录。确认密钥能登录了再继续,否则你会把自己锁在外面。

第五步:禁密码登录、禁 root 登录

sudo nano /etc/ssh/sshd_config

找到这两行改掉(前面有 # 的删掉 #):

PermitRootLogin no
PasswordAuthentication no

重启 SSH 服务:

sudo systemctl restart ssh

从现在起 root 不能直接 SSH 登录,密码登录也关了,只有持有密钥的 deploy 用户能进来。暴力破解彻底失效。


第六步:开防火墙

# 先放行 SSH,否则防火墙一开你就断了
sudo ufw allow 22/tcp

# 放行 Web 服务
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# 开启防火墙
sudo ufw enable

输入 y 确认。以后跑其他服务需要开端口,sudo ufw allow 端口号/tcp 就行。


第七步:装 fail2ban(需求可选)

sudo apt install fail2ban -y

你已经关了密码登录,SSH 爆破对你无效了。但 fail2ban 还能保护其他服务(比如 Nginx、邮件),而且它几乎不占资源,装上没坏处。它会监控登录日志,有人反复尝试失败就自动封 IP。

v2-ce9c17b8b9fb960e577dcb281dc506bf_1440w.png


基础环境配一下

安全加固做完了,顺手把环境配好。

时区改成北京时间(如果是海外VPS,默认时区不是国内,会有时间不一致情况):

sudo timedatectl set-timezone Asia/Shanghai

加 swap—如果你只有 1G 内存,跑 MySQL 这类吃内存的服务容易触发 OOM 被杀。swap 文件拿硬盘当虚拟内存顶着:

sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

装常用工具:

sudo apt install -y git wget curl vim htop unzip

最后跑一遍检查

# SSH 配置是否生效
sudo sshd -T | grep -E "permitrootlogin|passwordauthentication"
# 应该输出 permitrootlogin no 和 passwordauthentication no

# 防火墙状态
sudo ufw status
# 应该是 active,22/80/443 端口开放

# fail2ban 在不在跑
sudo systemctl is-active fail2ban
# 应该输出 active

# swap 有没有
free -h | grep Swap
# 应该显示 swap 空间

# 时区对不对
date
# 应该是 CST

全过,你的 VPS 从裸奔状态变成了安全可用的服务器。接下来就可以开始部署你的应用了。


打赏

感谢您的赞助~

打开支付宝扫一扫,即可进行扫码打赏哦~

版权声明 : 本文未使用任何知识共享协议授权,您可以任何形式自由转载或使用。

 可能感兴趣的文章