在Ubuntu系统上使用Lynis进行安全审计,本质上就是通过一款开源的安全扫描工具对你的Linux系统进行全面体检,从内核参数、文件权限、网络配置、已安装软件包到用户账户策略逐一扫描,最终给出一个0到100的安全评分和具体的加固建议。Lynis不是一个入侵检测工具,它是一个"安全基线检查器",帮你发现系统哪些地方没配好、哪些地方存在风险。对于Ubuntu服务器管理员来说,这是最直接、最高效的安全自检手段之一,而且完全免费开源,没有任何商业限制。
什么是Lynis以及为什么选择它
Lynis是由CISOfy开发的一款开源安全审计工具,支持Linux、macOS和Unix系统。它的工作原理是通过执行数百项测试来评估系统的安全状态,每一项测试都对应一个具体的安全控制项。测试完成后,Lynis会生成一份详细的报告,包括每个测试项的状态(通过、警告、建议)、对应的安全建议以及最终的系统安全评分。相比于其他安全工具,Lynis的优势在于:它不需要安装额外的代理或服务端,直接在目标机器上运行即可;它的测试项覆盖非常全面,从SSH配置到防火墙规则、从密码策略到日志审计都有涉及;而且它的报告可读性强,即使是初级运维也能看懂并执行加固操作。
在Ubuntu上安装Lynis的具体步骤
在Ubuntu系统上安装Lynis有两种方式,一种是通过apt包管理器直接安装,另一种是从官方GitHub仓库克隆最新版本。推荐使用第二种方式,因为apt仓库中的版本往往滞后,而GitHub上的版本包含最新的测试项和规则更新。
首先更新系统软件包列表:
sudo apt update && sudo apt upgrade -y
然后安装必要的依赖工具:
sudo apt install -y git curl wget unzip
从GitHub克隆Lynis到本地目录:
sudo git clone https://github.com/CISOfy/lynis.git /opt/lynis
进入Lynis目录并创建软链接方便调用:
cd /opt/lynis sudo ln -s /opt/lynis/lynis /usr/local/bin/lynis
这样安装完成后,你在任何目录下都可以直接输入lynis命令来运行审计。如果你选择通过apt安装,命令更简单:
sudo apt install -y lynis
但请注意,apt版本可能不是最新的,测试项数量会少一些。
Lynis安全审计的基本使用方法
运行Lynis最基本的命令就是直接执行:
sudo lynis audit system
这条命令会对整个系统进行全面扫描,包括硬件信息、内核参数、存储设备、网络配置、文件系统、已安装软件、用户和组、认证机制、Shell环境、日志和监控、邮件服务、DNS配置、防火墙规则、SSH配置、PHP安全、数据库安全、Web服务、打印服务、X Window系统等数十个类别。扫描过程根据系统配置不同,通常需要5到15分钟。
如果你只想扫描某个特定模块,比如只检查SSH配置,可以使用:
sudo lynis audit system --tests-from-group ssh
如果你想以非交互模式运行并自动生成报告文件,可以加上参数:
sudo lynis audit system --quiet --report-file /tmp/lynis-report.txt
这样扫描结果会直接写入指定文件,方便后续查阅和归档。
如何解读Lynis的安全评分
Lynis的最终评分是一个0到100之间的数字,评分越高代表系统安全状态越好。一般来说,评分在80以上属于良好,70到80之间属于中等需要改进,70以下则说明系统存在较多安全隐患需要紧急处理。但需要特别注意的是,这个评分只是一个参考指标,不能完全代表系统的真实安全水平。因为Lynis的评分是基于"最佳实践建议"来计算的,有些建议在特定场景下并不适用。比如它会建议禁用某些服务,但如果你的业务确实需要这些服务,那么这个建议就不应该盲目执行。所以看报告的时候,一定要结合自己的实际业务场景来判断哪些建议需要采纳、哪些可以忽略。
在报告中,每个测试项会有三种状态标识:绿色的"OK"表示该项通过检查,黄色的"WARNING"表示存在风险需要关注,红色的"SUGGESTION"表示有改进建议但不是强制要求。建议优先处理所有WARNING项,然后再逐步优化SUGGESTION项。
Ubuntu系统常见的安全审计发现与加固方法
根据大量实际运维经验,在Ubuntu系统上运行Lynis后,以下几类问题出现频率最高,也是最需要优先处理的安全项。
第一类是SSH配置问题。Lynis通常会检测到PermitRootLogin没有禁用、密码认证没有关闭、允许空密码登录等问题。加固方法是编辑SSH配置文件:
sudo nano /etc/ssh/sshd_config
修改以下参数:
PermitRootLogin no PasswordAuthentication no PermitEmptyPasswords no MaxAuthTries 3 Protocol 2
修改后重启SSH服务:
sudo systemctl restart sshd
第二类是用户和密码策略问题。Lynis会检查是否设置了密码过期策略、是否存在UID为0的非root用户、是否有空密码账户等。加固方法是设置密码策略:
sudo chage -M 90 -m 7 -W 14 -I 7 username
这条命令设置密码最长90天过期、最短7天修改、提前14天警告、过期后7天锁定。同时删除不必要的系统账户:
sudo userdel -r unused_account
第三类是文件权限和日志审计问题。Lynis会扫描关键系统文件的权限是否正确,比如/etc/passwd、/etc/shadow、/etc/group等文件是否只有root可读写。同时会检查系统日志是否开启、是否有远程日志转发。加固方法包括:
sudo chmod 644 /etc/passwd sudo chmod 600 /etc/shadow sudo chmod 644 /etc/group sudo chmod 644 /etc/gshadow
确保rsyslog服务正常运行并配置远程日志:
sudo systemctl enable rsyslog sudo systemctl start rsyslog
第四类是内核参数和网络安全配置。Lynis会检查是否启用了ASLR、是否禁用了ICMP重定向、是否开启了SYN Cookie保护等。这些可以通过修改sysctl配置文件来加固:
sudo nano /etc/sysctl.conf
添加以下参数:
net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.all.accept_source_route = 0 net.ipv4.icmp_echo_ignore_broadcasts = 1 net.ipv4.conf.all.log_martians = 1 kernel.randomize_va_space = 2
使配置生效:
sudo sysctl -p
第五类是软件包和服务管理。Lynis会检查系统中是否安装了不必要的软件包、是否有已知漏洞的旧版本软件、是否运行了不需要的服务。建议定期执行:
sudo apt autoremove -y sudo apt list --upgradable
并使用systemctl检查和禁用不需要的服务:
sudo systemctl list-unit-files --state=enabled sudo systemctl disable unnecessary_service
Lynis审计报告的保存与定期执行策略
安全审计不是一次性的工作,而是需要定期执行的持续过程。建议至少每月执行一次完整的Lynis审计,如果是生产环境的关键服务器,最好每周执行一次。每次审计完成后,将报告保存到指定目录,方便对比历史数据追踪安全状态的变化趋势。
可以设置一个简单的定时任务自动执行审计:
sudo crontab -e
添加以下定时任务,每周一凌晨3点自动执行审计并保存报告:
0 3 * * 1 /usr/local/bin/lynis audit system --quiet --report-file /var/log/lynis/lynis-report-$(date +\%Y\%m\%d).txt
同时创建报告存放目录:
sudo mkdir -p /var/log/lynis
Lynis的局限性与补充工具建议
虽然Lynis是一款非常优秀的安全审计工具,但它也有局限性。首先,它只能检测已知的安全基线问题,无法发现零日漏洞或高级持续性威胁。其次,它的测试项主要基于静态配置检查,无法模拟真实的攻击场景。第三,它对某些特定应用的安全检测深度不够,比如Web应用层面的SQL注入、XSS等问题它无法覆盖。
因此,建议将Lynis与其他安全工具配合使用。比如用ClamAV做病毒扫描、用Fail2ban做暴力破解防护、用AIDE做文件完整性监控、用OpenVAS或Nessus做漏洞扫描。这样才能构建一个多层次的安全防护体系,而不是依赖单一工具。
总结
在Ubuntu系统上使用Lynis进行安全审计,是每一位系统管理员都应该掌握的基本功。它操作简单、覆盖全面、报告清晰,能够快速帮你发现系统中的安全短板并给出具体的加固方向。关键是要理解评分的含义、结合业务场景筛选建议、坚持定期执行并持续跟踪改进。安全不是一劳永逸的事情,而是一个持续优化的过程,Lynis就是这个过程中最好用的起点工具之一。
