在 Debian 系统中提升安全性需要从系统配置、软件管理、权限控制、网络防护等多个层面综合进行。以下是关键的安全加固措施:
及时更新系统
Debian 的安全更新通过 security.debian.org 提供,务必定期更新:
sudo apt update && sudo apt upgrade -y
sudo apt dist-upgrade -y # 处理依赖变更的重大更新
可配置自动更新(需谨慎,避免生产环境意外中断):
sudo apt install unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades # 按提示启用
仅使用官方源和可信软件
检查 /etc/apt/sources.list 确保仅包含官方源(如 deb.debian.org),避免第三方源。安装软件前验证签名:
sudo apt install debian-keyring # 确保密钥环最新
移除无用软件
卸载不需要的服务和软件包,减少攻击面:
sudo apt purge <package-name> # 彻底删除包及配置
sudo apt autoremove # 清理依赖残留
禁用 root 直接登录
使用普通用户 + sudo 管理,编辑 SSH 配置:
sudo nano /etc/ssh/sshd_config
设置 PermitRootLogin no,重启 SSH:sudo systemctl restart sshd。
强化密码策略
安装 libpam-pwquality 并配置密码复杂度:
sudo apt install libpam-pwquality
sudo nano /etc/security/pwquality.conf
添加:
minlen = 12 # 最小长度
dcredit = -1 # 至少1个数字
ucredit = -1 # 至少1个大写字母
lcredit = -1 # 至少1个小写字母
ocredit = -1 # 至少1个特殊字符
限制 sudo 权限
仅允许必要用户使用 sudo,编辑 /etc/sudoers(需用 visudo 避免语法错误):
sudo visudo
例如,允许 user1 执行所有命令:
user1 ALL=(ALL:ALL) ALL
或限制特定命令。
启用账户锁定
防止暴力破解,编辑 /etc/pam.d/common-auth 添加:
auth required pam_tally2.so deny=5 unlock_time=300 # 5次失败后锁定300秒
修改默认端口
编辑 /etc/ssh/sshd_config,将 Port 22 改为非默认端口(如 2222),并重启 SSH。
禁用密码登录,使用 SSH 密钥
ssh-keygen -t ed25519(推荐)或 rsa。ssh-copy-id -p 2222 user@server-ip。PasswordAuthentication no,重启 SSH。其他 SSH 优化
# /etc/ssh/sshd_config
Protocol 2 # 仅用 SSHv2
MaxAuthTries 3 # 最大尝试次数
ClientAliveInterval 300 # 超时断开
AllowUsers user1 user2 # 仅允许指定用户登录
启用 UFW 或 nftables
sudo apt install ufw
sudo ufw allow 2222/tcp # 允许自定义 SSH 端口
sudo ufw enable
sudo ufw status verbose
/etc/nftables.conf),仅开放必要端口,拒绝其他流量。禁用不必要的服务
停止并禁用不需要的服务(如 telnet、ftp):
sudo systemctl disable --now telnetd # 若已安装
配置 Fail2ban
防止暴力破解,自动屏蔽恶意 IP:
sudo apt install fail2ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
启用 SSH 防护:
[sshd]
enabled = true
port = 2222 # 自定义 SSH 端口
maxretry = 3
bantime = 3600
重启:sudo systemctl restart fail2ban。
磁盘加密(LUKS)
安装时选择“加密磁盘”,或手动加密分区:
sudo cryptsetup luksFormat /dev/sdX # 加密分区(谨慎操作,会清空数据)
sudo cryptsetup open /dev/sdX cryptdisk # 解锁
限制文件系统权限
/etc/shadow)设置严格权限:sudo chmod 600 /etc/shadow
sudo chown root:shadow /etc/shadow
chattr 锁定关键文件(如 /etc/passwd):sudo chattr +i /etc/passwd # 禁止修改(需解锁时用 -i)
启用审计(auditd)
监控敏感操作:
sudo apt install auditd
sudo auditctl -w /etc/passwd -p wa # 监控 passwd 写入/属性变更
安装入侵检测系统(IDS)
sudo apt install aide
sudo aideinit # 初始化数据库
sudo aide --check # 定期检查时修改
sudo apt install rkhunter chkrootkit
sudo rkhunter --check
日志管理
确保日志服务(rsyslog 或 systemd-journald)运行,并定期检查:
sudo journalctl -u sshd # 查看 SSH 日志
sudo tail -f /var/log/auth.log # 实时监控认证日志
启用内核安全选项
编辑 /etc/default/grub,添加内核参数(需更新 grub:sudo update-grub):
GRUB_CMDLINE_LINUX="... apparmor=1 security=apparmor # 启用 AppArmor
或启用 SELinux(Debian 支持但默认未启用,需手动配置)。
禁用不必要的内核模块
编辑 /etc/modprobe.d/blacklist.conf,禁用无用模块(如 usb_storage 若无需 USB 存储):
blacklist usb_storage
rsync、borgbackup 等工具备份关键数据,并验证备份可用性。www-data)。/etc/sysctl.conf 添加:net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
生效:sudo sysctl -p。Debian 安全是一个持续过程,需结合定期更新、权限控制、网络防护、监控审计等措施。生产环境建议参考 Debian 安全手册 进行深度加固。