为什么要做这些

刚买的服务器面向全网开放 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 怎么配)。