1. 系统与软件安全更新
保持Debian系统及所有安装的软件包处于最新状态,是防范已知漏洞的首要措施。通过sudo apt update && sudo apt upgrade命令定期更新系统,安装安全补丁。建议启用自动安全更新(安装unattended-upgrades包),确保系统自动获取并安装关键安全更新,减少因未修补漏洞导致的数据泄露风险。
2. 用户与权限管理
useradd命令创建普通用户,并使用usermod -aG sudo 用户名将其加入sudo组,以sudo命令执行需要特权的操作。pam_pwquality)设置密码复杂度要求(如长度、大小写字母、数字和特殊字符组合),禁止使用简单密码。/etc/ssh/sshd_config),将PermitRootLogin设置为no或prohibit-password,防止攻击者通过暴力破解root密码入侵系统。3. SSH安全配置
SSH是远程管理的主要通道,需重点加固:
/etc/ssh/sshd_config中的Port参数(如改为2222),降低被自动化工具扫描到的概率。ssh-keygen -t rsa -b 4096),将公钥(id_rsa.pub)添加到服务器的~/.ssh/authorized_keys文件中,禁用密码登录(PasswordAuthentication no),防止密码泄露导致的非法访问。/etc/ssh/sshd_config中添加AllowUsers 用户名@允许的IP,仅允许特定IP地址访问SSH服务。4. 防火墙配置
使用防火墙限制入站和出站流量,仅开放必要的端口(如HTTP的80端口、HTTPS的443端口、SSH的22端口)。推荐使用ufw(Uncomplicated Firewall)工具:
sudo apt install ufwsudo ufw enablesudo ufw allow 22/tcp(SSH)、sudo ufw allow 80/tcp(HTTP)、sudo ufw allow 443/tcp(HTTPS)sudo ufw status(确认规则是否正确)iptables(需手动保存规则,避免重启丢失)。5. 数据加密保护
dm-crypt和LUKS(Linux Unified Key Setup)对敏感分区(如/home、/var)进行加密。步骤包括:安装cryptsetup包,使用cryptsetup luksFormat加密分区,cryptsetup luksOpen打开分区,mkfs.ext4格式化,mount挂载,并设置开机自动挂载(编辑/etc/crypttab和/etc/fstab)。eCryptfs(集成于Linux内核)或VeraCrypt(开源跨平台工具)加密单个文件或文件夹。例如,VeraCrypt创建加密卷后,挂载即可访问加密数据,卸载后数据不可见。GnuPG(GPG)加密单个文件(如gpg --encrypt --recipient "收件人名称" file.txt),适合加密敏感文档(如合同、财务报表)。6. 日志监控与安全审计
logwatch(邮件发送每日日志摘要)、auditd(内核级审计工具)记录系统活动(如用户登录、文件访问、命令执行)。例如,auditd可监控/etc/shadow文件的访问,及时发现未授权操作。/var/log/auth.log(认证日志,查看是否有暴力破解尝试)、/var/log/syslog(系统日志,查看异常进程)等文件,或使用journalctl(systemd日志管理工具)查询实时日志(如journalctl -u sshd查看SSH服务日志)。fail2ban工具,自动封禁多次尝试登录失败的IP地址(如SSH暴力破解),降低被入侵的风险。7. 备份与灾难恢复
定期备份重要数据,并将备份存储在安全位置(如外部硬盘、云存储),确保数据丢失或系统受损时可快速恢复。常用工具包括:
rsync -avz /home/user /backup/home_user)。tar -czvf backup.tar.gz /home/user)。duplicity(支持加密备份)、Timeshift(系统快照,恢复系统到指定时间点)。8. 最小化安装与冗余服务禁用
systemctl stop 服务名(停止服务)、systemctl disable 服务名(禁用开机启动)命令。例如,systemctl stop telnet停止Telnet服务,systemctl disable telnet禁用其开机启动。通过netstat -tuln或ss -tuln命令查看当前开放的端口,确认无多余服务在运行。