当前位置:网站首页 >  百科

CentOS/Debian通用:从零配置服务器自动定期安全检测完整实操指南

时间:2026年06月01日 21:12:58 来源:易频IT社区

一、工具安装与环境准备

本方案采用开源免费的Lynis安全检测工具,配合Linux自带的Crontab定时任务实现,无需额外付费,所有步骤可直接复制执行。

1.1 安装Lynis安全检测工具

根据你的服务器系统选择对应命令执行,复制整段粘贴即可:

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验证,输出版本号则说明安装成功,若提示命令不存在则重新执行上述安装命令。

二、编写自动检测脚本

我们需要编写一个可执行脚本,自动完成检测、生成报告、清理旧日志的全流程,直接按步骤操作:

2.1 创建并编辑脚本文件

执行以下命令创建脚本文件:

``` 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回车保存退出。

2.2 添加执行权限并测试

执行以下命令给脚本添加可执行权限:

``` chmod +x /usr/local/bin/auto-security-check.sh ```

然后手动执行一次脚本验证可用性:

``` /usr/local/bin/auto-security-check.sh ```

CentOS/Debian通用:从零配置服务器自动定期安全检测完整实操指南

执行完成后输入命令ls /var/log/security-check/,如果看到两个带日期的log文件,说明脚本运行正常,可以进行下一步。

三、配置定期自动执行任务

使用Linux自带的Crontab定时工具,无需额外安装,直接配置即可:

3.1 编辑定时任务规则

执行以下命令打开定时任务编辑界面:

``` crontab -e ```

在文件最后一行添加以下规则,默认配置为每周日凌晨2点(服务器低峰期)执行一次检测,可根据需求修改时间:

``` 0 2 0 /usr/local/bin/auto-security-check.sh >> /var/log/auto-security-cron.log 2>&1 ```

添加完成后保存退出,执行命令crontab -l查看定时任务列表,能看到上述添加的规则说明配置成功。

四、可选配置:风险邮件告警

如果需要检测到风险时自动发邮件通知,可以按以下步骤配置:

4.1 安装邮件工具

CentOS执行:yum install -y mailx

Debian/Ubuntu执行:apt install -y mailutils

4.2 配置SMTP发信(解决云服务器25端口封禁问题)

编辑/etc/mail.rc文件,在文件末尾添加以下内容,替换成你自己的邮箱信息:

``` set from=你的发件邮箱地址 set smtp=smtp://你的邮箱SMTP地址 比如smtp.qq.com set smtp-auth-user=你的邮箱用户名 set smtp-auth-password=你的邮箱授权码(不是登录密码,去邮箱后台获取) set smtp-auth=login ```

4.3 修改自动检测脚本

在之前的/usr/local/bin/auto-security-check.sh脚本末尾添加以下内容,替换成你自己的接收邮箱:

``` 有风险问题才发邮件 if [ -s ${REPORT_DIR}/security_issues_${CHECK_DATE}.log ] then echo "服务器安全检测发现新风险,请登录服务器查看报告" | mail -s "【安全告警】${HOSTNAME}服务器检测到风险" 你的接收邮箱地址 fi ```

保存后即可生效。

五、结果查看与常见问题排查

  • 查看检测结果:所有报告存在/var/log/security-check/目录,issues结尾的文件就是提取好的风险列表,直接查看即可。
  • 定时任务不执行:查看/var/log/auto-security-cron.log日志排查,90%的问题是脚本没有加执行权限、路径写错。
  • 收不到告警邮件:先查看垃圾邮件箱,其次检查SMTP配置和端口,大部分云服务器默认封禁25端口,必须使用上述SMTP配置走465端口发送。
  • 常见风险处理:弱密码直接修改对应账户密码;不必要开放的端口关闭对应服务后防火墙封禁;内核漏洞直接执行系统更新后重启即可。

配置完成后无需手动操作,服务器会自动按周期完成安全检测,有风险会及时通知,满足日常服务器安全运维需求。

相关推荐

最新

热门

推荐

精选

标签

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

Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图