加固思路与优先级
从攻击链视角,建议按以下顺序落地:先堵住已知漏洞与弱口令入口,再收紧网络与身份边界,随后用强制访问控制与系统加固降低单点被攻破后的影响,最后用监控、审计与备份形成闭环与可恢复性。
基础防护清单
- 保持系统与软件为最新,启用安全更新自动化:执行sudo apt update && sudo apt upgrade;安装并启用unattended-upgrades以自动安装安全补丁。
- 启用防火墙并只放行必要端口:使用UFW执行sudo ufw enable,仅开放SSH/HTTP/HTTPS等必要服务(如:sudo ufw allow OpenSSH)。
- 最小化安装与清理:仅安装必需软件,移除不需要的包与后台服务,降低攻击面。
- 强化SSH:禁用root远程登录(设置PermitRootLogin no),优先使用SSH密钥认证并禁用密码认证(PasswordAuthentication no),必要时更改默认端口以减少自动化扫描。
- 权限与账户:遵循最小权限原则,日常使用普通用户并通过sudo提权;为所有账户设置强密码策略。
纵深防御与系统加固
- 强制访问控制(MAC):启用AppArmor(Debian默认支持良好),为关键服务(如nginx、sshd、docker)加载或编写profile,限制进程对文件、网络与能力的访问;如需更强策略,可考虑SELinux(配置复杂度更高)。
- 系统调用与文件监控:安装并启用auditd,对关键目录与系统调用进行审计,便于事后取证与异常检测。
- 日志与入侵防护:集中与轮转日志,使用fail2ban防御暴力破解;部署IDS/IPS(如Snort、Suricata)进行流量异常检测;对关键服务(如Apache/Nginx)进行安全配置与模块精简。
- 内核与网络参数加固:在**/etc/sysctl.conf中启用关键防护项(如net.ipv4.conf.all.rp_filter=1、net.ipv4.icmp_echo_ignore_broadcasts=1、net.ipv4.tcp_syncookies=1、fs.protected_hardlinks=1、fs.protected_symlinks=1**),执行sysctl -p使配置生效。
- 文件系统与权限:收紧**/etc/shadow、/etc/ssh、/etc/cron等关键目录权限;定期排查异常SUID/SGID*文件与可疑定时任务。
持续监控与响应
- 日志集中与告警:将**/var/log/auth.log、/var/log/syslog等关键日志集中到ELK或Graylog**,设置异常登录、权限提升与端口扫描等告警规则。
- 主动漏洞管理:定期使用OpenVAS/Nessus进行漏洞扫描,结合Lynis做系统基线审计,对发现的问题建立修复SLA。
- 恶意代码与后门检测:定期运行ClamAV、rkhunter、chkrootkit进行恶意软件与后门检查。
- 备份与演练:制定3-2-1备份策略(3份副本、2种介质、1份异地/离线),定期做恢复演练,确保勒索或入侵后的业务连续性。
- 安全通告与培训:订阅Debian安全公告与邮件列表,开展安全意识培训,减少社工与钓鱼风险。
一键加固命令清单示例
-
更新与自动安全更新
sudo apt update && sudo apt full-upgrade -y
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades
-
防火墙与端口
sudo apt install -y ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw enable
-
SSH安全
sudo sed -i ‘s/^#PermitRootLogin./PermitRootLogin no/’ /etc/ssh/sshd_config
sudo sed -i ‘s/^#PasswordAuthentication./PasswordAuthentication no/’ /etc/ssh/sshd_config
sudo systemctl restart ssh
-
Fail2Ban
sudo apt install -y fail2ban
sudo systemctl enable --now fail2ban
-
AppArmor
sudo apt install -y apparmor apparmor-utils
sudo systemctl enable --now apparmor
-
审计与内核加固
sudo apt install -y auditd audispd-plugins
sudo systemctl enable --now auditd
echo -e “net.ipv4.conf.all.rp_filter=1\nnet.ipv4.icmp_echo_ignore_broadcasts=1\nnet.ipv4.tcp_syncookies=1\nfs.protected_hardlinks=1\nfs.protected_symlinks=1” | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
-
备份示例(按日增量,保留7天)
sudo rsync -aAX --delete --info=progress2 / /backup/debian-$(date +%F)
find /backup -maxdepth 1 -type d -mtime +7 -exec rm -rf {} +
提示:变更SSH端口或禁用密码登录前,务必先在本地控制台验证密钥登录可用,避免被锁死。