为什么要做这些
刚买的服务器面向全网开放 22 端口,机器人 1 小时内就会开始扫密码。基础防线不立,等于把家门钥匙挂门外。
下面这套5 分钟搞定的清单,挡掉 99% 的脚本小子。
1. 创建非 root 用户
以 Ubuntu 为例:
adduser wadely # 创建用户,设密码
usermod -aG sudo wadely # 加进 sudo 组
把你本地公钥也放到新用户:
mkdir -p /home/wadely/.ssh
cp ~/.ssh/authorized_keys /home/wadely/.ssh/
chown -R wadely:wadely /home/wadely/.ssh
chmod 700 /home/wadely/.ssh
chmod 600 /home/wadely/.ssh/authorized_keys
新开一个终端测试 ssh wadely@ip 能进,再继续。
2. 禁掉 root 远程登录 + 密码登录
编辑 /etc/ssh/sshd_config:
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
重启:
sudo systemctl restart ssh
之后只能用 key + 非 root 账号进。
3. 防火墙:只开必需端口
Ubuntu 用 ufw:
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp # SSH
sudo ufw allow 80/tcp # HTTP(备案后)
sudo ufw allow 443/tcp # HTTPS
sudo ufw enable
sudo ufw status
别忘了开 22,否则你下一秒就连不上了。
4. 自动安全更新
sudo apt install unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades
之后系统每天自动装安全补丁——除非有特殊运维需求,普通项目都该开。
5. fail2ban:自动封爆破 IP
sudo apt install fail2ban
sudo systemctl enable --now fail2ban
默认配置就够用——SSH 连续失败几次自动 ban 几小时。
6. 时区 + 主机名(小事但有用)
sudo timedatectl set-timezone Asia/Shanghai
sudo hostnamectl set-hostname my-vps
一键脚本
把上面所有步骤写成一个 init.sh,下次开新机器一行跑完。社区也有现成模板(搜 "vps initialization script")。
下一篇:解决域名问题(备案 / DNS 怎么配)。