
你觉得自己服务器安全吗?
改了SSH端口,关了root登录,装了fail2ban。应该还可以吧?
但你是不是还用过一键脚本?是不是有些目录权限是777?是不是有些软件版本好几年没更新?
这些细节,一个普通人很难全部记住。但Lynis可以。它是一个开源的Linux安全审计工具,跑一遍,自动检查系统配置、软件漏洞、权限设置、防火墙规则、日志策略……然后告诉你哪里有问题,应该怎么修。
今天带你走一遍。
先看一个场景
有个朋友的服务器,跑了三年没出过事。他一直觉得自己安全措施到位。
有一次我帮他跑了一下Lynis,报告出来,吓了一跳:
- 防火墙规则存在漏洞
- 某软件版本有已知CVE漏洞
- /tmp目录权限配置不当
- 部分日志没有被轮转
这些都是他平时不会注意到的问题。他说:“要不是跑这一遍,我都不知道还有这么多漏洞。”
那些你“不知道”的漏洞,才是最大的风险。
Lynis是什么?
Lynis是一个开源的Unix/Linux安全审计工具。它不做主动攻击,只做“体检”。它会扫描你的系统,检查几百个安全配置项。
检查范围包括:
- 系统内核参数
- 软件包版本和已知漏洞
- 用户账户和密码策略
- SSH配置
- 防火墙规则(iptables、ufw、firewalld)
- 文件系统权限
- 日志轮转和审计
- 服务配置(Nginx、Apache、MySQL等)
- 恶意软件扫描(基础版)
跑完之后,它会生成一份报告。每一项都会标注状态:OK(通过)、WARNING(需要修复)、SUGGESTION(建议优化)。
安装
Ubuntu/Debian:
bash
sudo apt update sudo apt install lynis -y
CentOS/RHEL:
bash
sudo yum install epel-release -y sudo yum install lynis -y
如果你用的是其他发行版,或者想用最新版,可以从GitHub直接拉:
bash
git clone https://github.com/CISOfy/lynis.git cd lynis
验证安装:
bash
lynis --version
运行安全审计
执行系统全面审计:
bash
sudo lynis audit system
第一次跑要一两分钟。它会逐项检查,屏幕上会实时显示当前测试项。
审计结束后,会输出一个总结。同时日志保存在/var/log/lynis.log,报告在/var/log/lynis-report.dat。
你也可以生成一份人类可读的报告:
bash
sudo lynis show details
解读报告
Lynis的输出主要分几类:
OK(绿色)
配置正确,通过检查。这些不用管。
WARNING(黄色)
存在安全隐患,建议修复。这是重点。
SUGGESTION(灰色)
可选优化项,不是必须,但做了更好。
其他信息
软件版本、内核参数等。可以用来参考,不一定需要改。
一个典型的报告片段:
text
[WARNING] Could not find a tool to check for security updates. 建议:安装unattended-upgrades并配置自动安全更新。 [WARNING] The maximum amount of processes for a user is not limited. 建议:在/etc/security/limits.conf中设置合理的进程数限制。
Lynis不会替你改配置,但它会把问题点出来,告诉你应该怎么修。
常见发现与修复示例
1. 防火墙未启用
Lynis提示:No firewall is active
修复:
bash
# Ubuntu启用ufw sudo ufw enable sudo ufw allow 22 sudo ufw allow 80 sudo ufw allow 443
2. SSH配置不够安全
常见问题:
- SSH端口还是22
- 允许root登录
- 允许密码登录
- PermitEmptyPasswords开启
修复:编辑/etc/ssh/sshd_config,改这几项:
ini
Port 2222 PermitRootLogin no PasswordAuthentication no PermitEmptyPasswords no
改完systemctl restart sshd。
3. 软件包有已知漏洞
Lynis提示:Package xxx has a known vulnerability
修复:
bash
# Ubuntu/Debian sudo apt update && sudo apt upgrade -y # CentOS/RHEL sudo yum update -y
或者装unattended-upgrades自动打补丁。
4. 内核参数需要优化
常见提示:关掉IPv6、禁止IP转发、设置网络安全参数等。
修复:编辑/etc/sysctl.conf,添加:
ini
net.ipv4.ip_forward=0 net.ipv4.conf.all.rp_filter=1 net.ipv4.tcp_syncookies=1
然后sysctl -p生效。
5. 文件权限问题
常见案例:/tmp目录没有粘滞位、/home目录权限过于宽松。
修复:
bash
# /tmp加粘滞位(防止用户删别人文件) sudo chmod 1777 /tmp # 个人目录收紧权限 sudo chmod 750 /home/*
定期审计自动化
安全审计不是做一次就完事的。系统会变,软件会更新,配置可能会被改。每个月跑一次Lynis。
写一个脚本/root/security-audit.sh:
bash
#!/bin/bash /usr/bin/lynis audit system > /var/log/lynis.log # 可选:把报告发到邮箱 mail -s "Lynis Security Report for $(date)" your@email.com < /var/log/lynis.log
加入crontab,每月1号凌晨跑:
bash
0 2 1 * * /root/security-audit.sh
以后每个月自动检查一次,有问题早发现。
Lynis vs 其他安全工具
| 工具 | 用途 | 适用场景 |
|---|---|---|
| Lynis | 配置审计、漏洞扫描 | 系统整体安全评估 |
| ClamAV | 病毒扫描 | 检测已知恶意软件 |
| rkhunter | Rootkit检测 | 查找隐藏后门 |
| fail2ban | 动态防御 | 防暴力破解 |
| OSSEC | HIDS(主机入侵检测) | 实时监控文件完整性 |
Lynis是体检中心,告诉你身体哪里有问题。漏洞扫描、入侵检测、病毒查杀是专科医生,处理具体问题。
先用Lynis做全面扫描,再针对问题做专项处理。
一个真实案例
一个做金融系统的公司,每年都要过等保(网络安全等级保护)。他们之前每次等保都要请安全公司上门,花好几万。
后来运维自己学会了用Lynis,每个月跑一遍,逐条修复Lynis给出的WARNING。等保预检的时候,通过率从60%提高到了90%。
他们运维说:“Lynis不是帮我发现了一个漏洞,是帮我发现了一百个。”
最后一句
安全这件事,最危险的不是有人打你,是你不知道自己有什么漏洞。
Lynis做不到100%安全,但它能让你对自己的服务器有一个客观的认识。
今天跑一遍。把WARNING修一修。下个月再跑一遍。你的服务器会比现在安全得多。




