加固原则#
新服务器上线前先降低暴露面,再安装业务。目标不是堆叠安全软件,而是让每个入口都有负责人、最小权限、日志和恢复方法。
账户与 SSH#
bash
adduser deploy
usermod -aG sudo deploy
install -d -m 700 -o deploy -g deploy /home/deploy/.ssh
install -m 600 -o deploy -g deploy /tmp/deploy.pub /home/deploy/.ssh/authorized_keys
sshd -t
确认新账户可以登录并执行必要命令后,再调整 sshd_config:
conf
PermitRootLogin prohibit-password
PasswordAuthentication no
PubkeyAuthentication yes
MaxAuthTries 4
AllowUsers deploy
防火墙与自动更新#
bash
ufw default deny incoming
ufw default allow outgoing
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable
ss -lntup
apt install unattended-upgrades fail2ban auditd
| 检查项 | 合格标准 |
|---|---|
| 公网监听 | 只有 SSH、HTTP、HTTPS |
| SSH | 密钥可登录,root 密码登录关闭 |
| 更新 | 安全更新自动安装并有重启计划 |
| 时间 | 时区正确,NTP 同步 |
| 备份 | 已做一次异机恢复演练 |
审计与日常检查#
bash
systemctl --failed
journalctl -p warning --since "24 hours ago"
last -a | head -20
lastb -a | head -20
find /etc -xdev -type f -mtime -1 -ls
加固完成后记录开放端口、管理员、公钥指纹、备份位置和回滚方式。没有文档的安全配置,往往会在下一次紧急变更中被绕过。
讨论区 19
分享你的经验、补充或不同观点。支持 Markdown 基础语法。