Debian12服务器安全基线配置实战:从零开始加固系统
为什么要做安全基线配置
新安装的Debian12系统默认配置存在不少安全隐患,比如root可直接登录、SSH端口暴露、防火墙未启用。
安全基线配置就是按标准加固服务器,阻断常见攻击路径。
本文适合刚接触服务器的新手,跟着操作就能完成一套基础防护。
前置准备
- 一台已安装Debian12的服务器(VPS或物理机)
- 能通过SSH连接到服务器(默认root用户或sudo用户)
- 建议使用root用户执行初始配置,完成后立即创建普通用户
第一步:更新系统软件包
登录服务器后,先更新所有软件包到最新版本,避免已知漏洞。
apt update && apt upgrade -y
更新完成后重启系统(可选):reboot
第二步:创建普通用户并设置sudo权限
安全原则之一:避免直接使用root日常操作。
创建一个普通用户,授予sudo权限。
# 创建用户(以deploy为例)
adduser deploy
# 按提示输入密码等,其余可回车默认
# 将用户加入sudo组
usermod -aG sudo deploy
验证:su - deploy 切换后执行 sudo whoami,返回root代表成功。
第三步:SSH安全加固
SSH是最常用的远程管理通道,必须加固。
主要修改:更换默认端口、禁用root登录、仅允许密钥认证。
- 编辑SSH配置文件:
sudo nano /etc/ssh/sshd_config - 修改以下参数:
Port 2222 # 默认22改为其他端口(如2222)
PermitRootLogin no # 禁止root直接登录
PubkeyAuthentication yes # 开启密钥认证
PasswordAuthentication yes # 先保留密码,等密钥配置完成后再改为no
- 保存退出,重启SSH服务:
sudo systemctl restart ssh
注意:修改端口后,请确保当前SSH连接不被断开(最好另开一个终端测试新端口)。
配置SSH密钥登录(可选但推荐)
- 在本地电脑生成密钥对:
ssh-keygen -t rsa -b 4096 - 将公钥复制到服务器:
ssh-copy-id -p 2222 deploy@你的服务器IP - 测试通过后再修改
PasswordAuthentication no,彻底禁用密码登录。
第四步:配置UFW防火墙
Debian12默认防火墙未启用,需要手动设置规则。
# 安装UFW(通常已预装,未装则执行)
apt install ufw -y
# 设置默认规则:拒绝入站,允许出站
ufw default deny incoming
ufw default allow outgoing
# 允许SSH新端口(例如2222)
ufw allow 2222/tcp
# 如果后续需要开放Web服务(80/443),可添加
# ufw allow 80/tcp
# ufw allow 443/tcp
# 启用UFW
ufw enable
验证状态:ufw status verbose,看到Status: active和规则列表即成功。
第五步:启用自动安全更新
确保系统能自动安装关键安全补丁。
apt install unattended-upgrades -y
dpkg-reconfigure --priority=low unattended-upgrades
配置时选择“是”即可。
之后系统每天自动检查并安装安全更新。
避坑指南
- SSH断开后无法重连:修改SSH端口后,务必先测试新端口是否可用。建议保留一个root会话不退出,另开终端验证成功后关闭旧会话。
- UFW启用后SSH被拒绝:必须在启用UFW之前先添加允许SSH端口的规则,否则自己会被锁在外面。
- 密钥权限错误:SSH密钥文件权限必须为600(
chmod 600 ~/.ssh/authorized_keys),家目录权限为700。 - sudo用户未生效:创建用户后要确保该用户属于sudo组,且系统有sudo包。
效果验证
执行以下命令确认配置生效:
# 检查SSH端口和root登录状态
sudo grep -E "^(Port|PermitRootLogin)" /etc/ssh/sshd_config
# 检查防火墙规则
sudo ufw status numbered
# 查看自动更新状态
sudo systemctl status unattended-upgrades
# 验证普通用户sudo权限
sudo -l -U deploy
所有输出应符合预期配置。
高频问题
Q:我修改SSH端口后连不上了怎么办?
A:如果你还有root会话,立即改回原始22端口并重启SSH;如果没有,请联系服务器提供商通过VNC或控制台恢复。
Q:UFW启用后忘记允许SSH端口,进不去了?
A:同样通过云服务商的VNC或救援模式进入,执行ufw disable恢复。
Q:我需要开放其他端口怎么办?
A:使用ufw allow 端口/tcp添加规则,例如ufw allow 80/tcp。
完成以上步骤后,你的Debian12服务器已具备了基础的安全基线防护。
建议定期检查更新和安全日志,并根据业务需要进一步强化。
如果你正在处理Debian12服务器安全基线配置,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑和高频问题部分。