本方案采用开源免费的Lynis安全检测工具,配合Linux自带的Crontab定时任务实现,无需额外付费,所有步骤可直接复制执行。
根据你的服务器系统选择对应命令执行,复制整段粘贴即可:
CentOS/RHEL 系服务器执行:
``` yum install -y wget && wget https://github.com/CISOfy/lynis/archive/refs/tags/3.0.8.tar.gz && tar -zxf 3.0.8.tar.gz && cd lynis-3.0.8 && cp -R . /usr/local/lynis && ln -s /usr/local/lynis/lynis /usr/bin/lynis ```Debian/Ubuntu 系服务器执行:
``` apt update && apt install -y wget && wget https://github.com/CISOfy/lynis/archive/refs/tags/3.0.8.tar.gz && tar -zxf 3.0.8.tar.gz && cd lynis-3.0.8 && cp -R . /usr/local/lynis && ln -s /usr/local/lynis/lynis /usr/bin/lynis ```安装完成后执行lynis --version验证,输出版本号则说明安装成功,若提示命令不存在则重新执行上述安装命令。
我们需要编写一个可执行脚本,自动完成检测、生成报告、清理旧日志的全流程,直接按步骤操作:
执行以下命令创建脚本文件:
``` vi /usr/local/bin/auto-security-check.sh ```进入编辑模式后,粘贴以下完整内容(可直接复制,所有参数已经配置完成):
``` !/bin/bash 服务器自动安全检测脚本 CHECK_DATE=$(date +%Y%m%d_%H%M%S) REPORT_DIR="/var/log/security-check" 创建报告目录(不存在则自动创建) mkdir -p ${REPORT_DIR} 执行全系统快速检测 lynis audit system --quick > ${REPORT_DIR}/security_check_${CHECK_DATE}.log 单独提取风险问题(警告、建议、漏洞) grep -iE "(warning|suggestion|vulnerability)" ${REPORT_DIR}/security_check_${CHECK_DATE}.log > ${REPORT_DIR}/security_issues_${CHECK_DATE}.log 自动清理7天前的旧报告,避免占用磁盘空间 find ${REPORT_DIR} -name ".log" -mtime +7 -delete ```粘贴完成后按Esc,输入:wq回车保存退出。
执行以下命令给脚本添加可执行权限:
``` chmod +x /usr/local/bin/auto-security-check.sh ```然后手动执行一次脚本验证可用性:
``` /usr/local/bin/auto-security-check.sh ```
执行完成后输入命令ls /var/log/security-check/,如果看到两个带日期的log文件,说明脚本运行正常,可以进行下一步。
使用Linux自带的Crontab定时工具,无需额外安装,直接配置即可:
执行以下命令打开定时任务编辑界面:
``` crontab -e ```在文件最后一行添加以下规则,默认配置为每周日凌晨2点(服务器低峰期)执行一次检测,可根据需求修改时间:
``` 0 2 0 /usr/local/bin/auto-security-check.sh >> /var/log/auto-security-cron.log 2>&1 ```添加完成后保存退出,执行命令crontab -l查看定时任务列表,能看到上述添加的规则说明配置成功。
如果需要检测到风险时自动发邮件通知,可以按以下步骤配置:
CentOS执行:yum install -y mailx
Debian/Ubuntu执行:apt install -y mailutils
编辑/etc/mail.rc文件,在文件末尾添加以下内容,替换成你自己的邮箱信息:
在之前的/usr/local/bin/auto-security-check.sh脚本末尾添加以下内容,替换成你自己的接收邮箱:
保存后即可生效。
/var/log/security-check/目录,issues结尾的文件就是提取好的风险列表,直接查看即可。/var/log/auto-security-cron.log日志排查,90%的问题是脚本没有加执行权限、路径写错。配置完成后无需手动操作,服务器会自动按周期完成安全检测,有风险会及时通知,满足日常服务器安全运维需求。












易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。
Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图