安全管理
确保 Debian 系统的安全是系统管理中的一项核心任务。本指南将介绍几个关键领域,帮助您加固系统,防范潜在威胁。
🔐 用户与访问控制
限制对系统的访问是安全的第一道防线。
强制执行强密码策略
使用 libpam-pwquality 模块可以强制用户创建更安全的密码。
安装模块:
bashsudo apt update sudo apt install libpam-pwquality配置策略: 编辑
/etc/security/pwquality.conf文件来定义密码规则。ini# 示例配置: minlen = 10 # 最小长度为 10 dcredit = -1 # 至少包含 1 个数字 ucredit = -1 # 至少包含 1 个大写字母 lcredit = -1 # 至少包含 1 个小写字母 ocredit = -1 # 至少包含 1 个特殊字符 difok = 3 # 新密码中至少有 3 个字符与旧密码不同
SSH 安全加固
远程访问服务器最常用的方式是 SSH。以下是一些加固建议:
编辑 SSH 配置文件:
bashsudo nano /etc/ssh/sshd_config推荐配置:
- 禁用 root 登录:
PermitRootLogin no - 禁用密码认证 (推荐使用密钥):
PasswordAuthentication no - 启用公钥认证:
PubkeyAuthentication yes - 更改默认端口 (可选):
Port 2222
- 禁用 root 登录:
重启 SSH 服务:
bashsudo systemctl restart sshd
🔥 防火墙配置 (UFW)
Debian 默认不启用防火墙。UFW (Uncomplicated Firewall) 是一个用户友好的前端,可以轻松管理 iptables。
安装 UFW:
bashsudo apt install ufw配置基本规则:
bashsudo ufw default deny incoming # 拒绝所有入站连接 sudo ufw default allow outgoing # 允许所有出站连接 sudo ufw allow ssh # 允许 SSH 连接 (或者你更改的端口) sudo ufw allow http # 如果是 Web 服务器,允许 HTTP sudo ufw allow https # 允许 HTTPS启用 UFW:
bashsudo ufw enable系统会警告你这可能会中断现有的 SSH 连接,确认即可。
检查状态:
bashsudo ufw status verbose
🔄 自动安全更新
及时应用安全补丁至关重要。unattended-upgrades 可以自动安装安全更新。
安装:
bashsudo apt install unattended-upgrades启用: 运行配置向导,它会创建一个基础配置文件。
bashsudo dpkg-reconfigure -plow unattended-upgrades在弹出的对话框中选择“是”。
微调配置 (可选): 您可以编辑
/etc/apt/apt.conf.d/50unattended-upgrades文件,以自定义更新行为,例如启用自动重启。
🛡️ 入侵防护 (Fail2Ban)
Fail2Ban 可以监控日志文件,并根据可疑行为(如多次失败的登录尝试)自动更新防火墙规则来封禁 IP 地址。
安装 Fail2Ban:
bashsudo apt install fail2ban创建本地配置文件: 不要直接修改
.conf文件,而应创建.local文件进行覆盖。bashsudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local sudo nano /etc/fail2ban/jail.local配置 SSH 防护: 在
jail.local中找到[sshd]部分,并确保enabled = true。您可以调整maxretry(最大尝试次数) 和bantime(封禁时长)。ini[sshd] enabled = true port = ssh maxretry = 3 bantime = 3600 # 封禁 1 小时重启服务:
bashsudo systemctl restart fail2ban
📝 日志管理与审计
定期检查系统日志是发现异常活动的关键。
- 使用
journalctl查看日志:bash# 查看所有日志 (从旧到新) journalctl # 实时监控日志 journalctl -f # 查看特定服务的日志,例如 sshd journalctl -u sshd.service # 查看内核日志 journalctl -k