✧ 君と集まって星座になれたら ✦ ROKUTOSEI
587 字
3 分钟
VPS 新机基础安全加固与系统优化(精简版)

本文记录 Debian/Ubuntu 新购 VPS 的常规性能优化与安全加固配置步骤


1. 系统基础优化#

1.1 清除开机预置任务#

部分服务商在系统镜像中预置了首次开机脚本或监控探针。

Terminal window
sudo crontab -e

删除其中如 @reboot /admin/firstbootkvm yes 等第三方残留自启动项。

1.2 开启 BBR 加速#

Terminal window
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p

验证启用状态:

Terminal window
sysctl net.ipv4.tcp_congestion_control
# 返回: net.ipv4.tcp_congestion_control = bbr

1.3 虚拟内存 (Swap) 配置#

对小内存配置 2GB Swap 空间及 swappiness 阈值(设置为 10,避免频繁读写磁盘):

Terminal window
# 创建并挂载 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
# 优化交换阈值
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

1.4 切换默认 Shell 为 Bash#

将 /bin/sh 的链接从默认的 dash 指向 bash。

Terminal window
echo "dash dash/sh boolean false" | sudo debconf-set-selections
sudo ln -sf bash /bin/sh

2. SSH 服务安全加固#

2.1 部署 Ed25519 密钥认证#

在本地客户端生成密钥对并上传至服务器,禁用密码登录以防暴力破解。

本地生成密钥:

Terminal window
ssh-keygen -t ed25519 -C "vps-key" -f ~/.ssh/id_ed25519_vps

上传公钥至 VPS:

Terminal window
ssh-copy-id -i ~/.ssh/id_ed25519_vps.pub -p <PORT> root@<VPS_IP>

2.2 修改 SSHD 配置文件#

编辑 /etc/ssh/sshd_config:

Port 54321 # 修改为自定义高位端口
PasswordAuthentication no # 禁用密码认证
PubkeyAuthentication yes # 启用密钥认证

注:检查 /etc/ssh/sshd_config.d/ 目录下是否有其他配置文件覆盖此项,如存在 50-cloud-init.conf,须将其中的 PasswordAuthentication 修改为 no。

重启 SSHD 服务:

Terminal window
sudo systemctl restart sshd

在未测试成功前不要关闭当前会话。新开终端执行 ssh -i ~/.ssh/id_ed25519_vps -p 54321 root@<VPS_IP> 验证正常后再关闭旧终端。


3. 权限管理:创建非 Root 用户#

Terminal window
# 新建用户与密码
sudo useradd -m -u 1000 user_name
sudo passwd user_name
# 赋予管理员权限
sudo usermod -aG sudo user_name

4. 部署 Fail2ban 防御端口扫描#

安装并配置 Fail2ban,对频繁连接失败的 IP 进行临时封锁。

Terminal window
# 安装服务
sudo apt update && sudo apt install fail2ban -y
# 编辑配置文件 /etc/fail2ban/jail.local
[sshd]
enabled = true
port = 54321
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
findtime = 600
bantime = 86400

10 分钟内发生 3 次登录失败的 IP 将被封禁 24 小时。

启动服务:

Terminal window
sudo systemctl enable --now fail2ban

可通过 sudo fail2ban-client status sshd 检查当前封锁状态。

Rokutosei
Rokutosei ✦ 六等星
“君と集まって星座になれたら”
VPS 新机基础安全加固与系统优化(精简版)
https://blog.rokutosei.com/posts/linux/vps-basic-optimization-and-security/
作者
Rokutosei
发布于
2026-07-13
许可协议
CC BY-NC-SA 4.0
✧ 文章目录 ✦
1
1. 系统基础优化
1.1 清除开机预置任务
1.2 开启 BBR 加速
1.3 虚拟内存 (Swap) 配置
1.4 切换默认 Shell 为 Bash
2
2. SSH 服务安全加固
2.1 部署 Ed25519 密钥认证
2.2 修改 SSHD 配置文件
3
3. 权限管理:创建非 Root 用户
4
4. 部署 Fail2ban 防御端口扫描