在Debian系统上做安全审计,最直接有效的工具就是Lynis。它是一款开源的安全审计工具,能对系统内核、网络配置、文件权限、用户账户、软件包等进行全面扫描,最终给出具体的加固建议和评分。安装和使用Lynis并不复杂,核心步骤就是通过apt源安装、执行扫描、解读报告、逐项加固。下面我把整个流程从安装到落地加固全部讲透。
一、Lynis是什么,为什么选它做Debian安全审计
Lynis是一款基于Shell和Python开发的安全审计框架,最初为Unix/Linux系统设计,后来扩展支持macOS。它的工作原理是通过检查系统配置文件、内核参数、已安装软件包、用户权限、网络监听端口等数百项检查点,对照安全基线给出评分和建议。和其他安全工具相比,Lynis的优势在于:不需要额外安装代理、不依赖网络连接(大部分检查是本地完成的)、输出报告清晰可读、支持自定义测试项。对于Debian服务器管理员来说,它几乎是做安全基线核查的首选工具。
二、在Debian上安装Lynis的完整步骤
Debian 11(Bullseye)和Debian 12(Bookworm)的官方源里已经包含了Lynis包,可以直接通过apt安装。但如果你想用最新版本,建议从官方仓库克隆安装。下面两种方式都讲清楚。
方式一:通过apt直接安装(推荐新手)
sudo apt update sudo apt install lynis -y
这种方式安装的版本可能不是最新的,但对大多数审计场景已经够用。安装完成后,直接运行lynis命令就可以启动审计。
方式二:从官方Git仓库安装最新版
sudo apt install git -y git clone https://github.com/CISOfy/lynis.git /opt/lynis cd /opt/lynis sudo ./lynis update info
克隆到/opt/lynis目录后,你需要设置一个软链接方便调用:
sudo ln -s /opt/lynis/lynis /usr/local/bin/lynis
这样在任何目录下输入lynis就能直接运行。建议用这种方式,因为官方会持续更新检测规则和安全基线。
三、执行安全审计扫描的正确姿势
安装完成后,执行审计需要root权限,因为很多检查项涉及系统级配置和内核参数。直接运行:
sudo lynis audit system
这个命令会启动全面的系统审计,扫描过程根据服务器配置可能需要几分钟到十几分钟。扫描完成后,Lynis会在终端输出摘要,同时生成一份详细的报告文件,默认保存在/var/log/lynis-report.dat。
如果你只想做快速扫描,可以加参数:
sudo lynis audit system --quick
如果你想查看之前的扫描结果,用:
sudo lynis show report
这里有个实用技巧:如果你想把报告导出为文本方便存档或发给团队,可以这样操作:
sudo lynis audit system --check-all --log-file /tmp/lynis-audit.log cat /tmp/lynis-audit.log
四、如何读懂Lynis审计报告
Lynis的报告按类别分组,每个检查项有三种状态:绿色(通过)、黄色(警告/建议优化)、红色(存在风险)。报告开头会给出一个总体安全评分,满分100分。一般来说,Debian新装系统首次扫描能拿到60-75分,经过加固后可以提升到85分以上。
报告的核心章节包括:
1. Boot and Services(启动和服务):检查启动项、systemd服务、不必要的守护进程。
2. Kernel(内核):检查内核参数、是否启用了ASLR、是否禁用了危险的内核模块。
3. Networking(网络):检查防火墙规则、监听端口、SSH配置、DNS安全。
4. Filesystems and Storage(文件系统):检查文件权限、挂载选项、日志文件保护。
5. Authentication and Accounts(认证和账户):检查密码策略、root登录方式、sudo配置、过期账户。
6. Software and Packages(软件和包):检查已安装软件包的安全性、是否有已知漏洞的软件。
7. Security Frameworks(安全框架):检查AppArmor、SELinux等强制访问控制是否启用。
五、Debian系统常见安全加固建议及具体操作
根据Lynis扫描结果,下面列出Debian系统最高频出现的安全问题和对应的加固方法。
1. 加固SSH服务
Lynis几乎每次都会提示SSH配置需要优化。编辑SSH配置文件:
sudo nano /etc/ssh/sshd_config
建议修改以下参数:
PermitRootLogin no PasswordAuthentication no Port 2222 MaxAuthTries 3 ClientAliveInterval 300 ClientAliveCountMax 2
改完后重启SSH服务:
sudo systemctl restart sshd
把默认端口22改成非标准端口(如2222)可以有效减少自动化扫描攻击。同时禁用root直接登录和密码认证,强制使用密钥登录。
2. 启用并配置防火墙
Debian默认没有启用防火墙,Lynis会标记这是高风险项。推荐使用ufw(Uncomplicated Firewall):
sudo apt install ufw -y sudo ufw default deny incoming sudo ufw default allow outgoing sudo ufw allow 2222/tcp sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw enable
如果你用的是nftables(Debian 12默认),也可以直接配置nftables规则,原理相同:默认拒绝入站,只开放必要端口。
3. 强化密码策略和账户管理
Lynis会检查/etc/login.defs和PAM配置。建议设置密码最小长度、过期时间和复杂度:
sudo nano /etc/login.defs
修改或确认以下参数:
PASS_MIN_LEN 12 PASS_MAX_DAYS 90 PASS_MIN_DAYS 7 PASS_WARN_AGE 14
同时检查是否有过期或无用账户:
sudo awk -F: '($2 != "x" && $3 < 1000) {print $1}' /etc/passwd
这个命令会列出UID小于1000的非系统账户,逐一确认是否还在使用,不用的直接锁定或删除。
4. 内核参数加固
编辑sysctl配置文件:
sudo nano /etc/sysctl.d/99-hardening.conf
添加以下内核参数:
net.ipv4.ip_forward=0 net.ipv4.conf.all.accept_redirects=0 net.ipv4.conf.all.send_redirects=0 net.ipv4.conf.all.accept_source_route=0 net.ipv6.conf.all.accept_redirects=0 net.ipv6.conf.all.accept_source_route=0 kernel.randomize_va_space=2 kernel.kptr_restrict=2 kernel.dmesg_restrict=1
加载新参数:
sudo sysctl --system
这些参数可以有效防止IP欺骗、内核地址泄露和信息收集攻击。
5. 启用AppArmor强制访问控制
Debian默认安装了AppArmor但可能没有完全启用。检查状态:
sudo aa-status
如果显示有进程处于complain模式( complain mode),建议切换到enforce模式:
sudo aa-enforce /etc/apparmor.d/*
AppArmor可以限制程序的文件访问权限,即使程序被攻破也能限制其破坏范围。
6. 定期更新和漏洞管理
Lynis会检查系统更新状态。保持Debian系统及时更新是最基础的安全措施:
sudo apt update && sudo apt full-upgrade -y sudo apt install debsecan -y debsecan --suite $(lsb_release -cs) --format detail
debsecan可以列出系统中已知有CVE漏洞的软件包,方便你针对性修补。
六、自动化定期审计的建议
安全不是一次性的事。建议把Lynis扫描加入定时任务,每周自动跑一次并把报告发到指定邮箱:
sudo crontab -e
添加:
0 3 * * 1 /usr/local/bin/lynis audit system --cronjob --quiet --log-file /var/log/lynis/lynis-$(date +\%Y\%m\%d).log
这样每周一凌晨3点自动执行审计,日志按日期归档,方便追溯安全状态变化。
七、Lynis的局限性和补充工具
Lynis是很好的基线检查工具,但它不能替代漏洞扫描器和入侵检测系统。它主要做配置合规性检查,不做实时漏洞探测。如果你需要更全面的安全评估,可以配合使用:OpenVAS做漏洞扫描、Fail2ban做暴力破解防护、AIDE做文件完整性监控。三者结合才能构建比较完整的Debian安全防护体系。
总结一下,在Debian上安装Lynis做安全审计,核心就是:装好工具、跑全量扫描、逐项看报告、按建议加固、定期复扫。这套流程走下来,系统安全评分基本能稳定在85分以上,对于生产环境的服务器来说已经是相当扎实的安全基线了。
