当前位置: 首页 > news >正文

Linux服务器安全自动化审计实战:一键扫描账户/网络/进程/计划任务风险(附开源脚本)

一、背景与痛点:为什么需要安全审计脚本?

在日常服务器运维中,安全团队常面临三大挑战:

  1. 人工巡检效率低下:手动检查账户、网络连接等需执行十余条命令
  2. 隐蔽威胁难发现:异常计划任务、伪装进程等易被忽略
  3. 合规压力:等保2.0等规范要求定期安全审计

为此,我们开发了这款开源的Linux安全自动化审计脚本,可实现:

  • 5分钟内完成全维度安全检查
  • 输出结构化风险报告
  • 关键风险项自动标红预警

二、脚本核心功能架构

安全审计脚本
账户安全
登录审计
网络检测
进程分析
计划任务
特权账户
空密码账户
SSH暴力破解
异常端口
CPU占用TOP10
隐藏Cron任务

三、SSH安全检查脚本:包含了检查系统账户、登录、网络连接、进程和计划任务等安全项,并添加注释和格式输出:

#!/bin/bash# SSH安全审计脚本
# 功能:检查系统账户、登录、网络连接、进程和计划任务等安全项echo -e "\n\033[34m============= 账户安全检查 =============\033[0m"# 1. 检查新增异常账户
echo -e "\n\033[32m[1] 检查/etc/passwd中的异常账户:\033[0m"
cat /etc/passwd | awk -F: '{if($3>=500 && $3<65534 || $3==0) print $0}' | grep -v "^root"# 2. 检查属组为0的非root账户
echo -e "\n\033[32m[2] 检查属组为0的非root账户:\033[0m"
awk -F: '$4==0 && $1!="root"{print $1}' /etc/passwd# 3. 检查特权用户(uid为0)
echo -e "\n\033[32m[3] 检查特权用户(uid为0):\033[0m"
awk -F: '$3==0{print $1}' /etc/passwd# 4. 检查可远程登录的账户
echo -e "\n\033[32m[4] 检查可远程登录的账户:\033[0m"
awk -F: '($2!="*" && $2!="!!"){print $1}' /etc/shadow# 5. 检查有sudo权限的非root账户
echo -e "\n\033[32m[5] 检查有sudo权限的非root账户:\033[0m"
grep -v "^#\|^$\|^root" /etc/sudoers | grep "ALL=(ALL)"echo -e "\n\033[34m============= 登录安全检查 =============\033[0m"# 6. 检查最近成功登录的IP
echo -e "\n\033[32m[6] 最近成功登录的IP:\033[0m"
last | head -n 20# 7. 检查登录失败的记录
echo -e "\n\033[32m[7] 最近登录失败的记录:\033[0m"
if [ -f /var/log/btmp ]; thenlastb | head -n 20
elseecho "登录失败日志(/var/log/btmp)不存在"
fiecho -e "\n\033[34m============= 网络连接检查 =============\033[0m"# 8. 检查当前网络连接
echo -e "\n\033[32m[8] 当前网络连接:\033[0m"
netstat -antp | grep -E 'ESTABLISHED|LISTEN'# 9. 检查开放端口
echo -e "\n\033[32m[9] 当前开放端口:\033[0m"
netstat -tulnpecho -e "\n\033[34m============= 进程检查 =============\033[0m"# 10. 检查高CPU/内存进程
echo -e "\n\033[32m[10] 高CPU使用进程:\033[0m"
ps aux --sort=-pcpu | head -n 10echo -e "\n\033[32m[11] 高内存使用进程:\033[0m"
ps aux --sort=-pmem | head -n 10# 11. 检查长时间运行进程
echo -e "\n\033[32m[12] 长时间运行进程:\033[0m"
ps -eo pid,user,comm,etime | grep -E ' ([0-9]+-)?[0-9]{2}:[0-9]{2}:[0-9]{2}'echo -e "\n\033[34m============= 计划任务检查 =============\033[0m"# 12. 检查系统计划任务
echo -e "\n\033[32m[13] 系统cron任务:\033[0m"
cat /etc/crontab | grep -v "^#"# 13. 检查用户计划任务
echo -e "\n\033[32m[14] 用户cron任务:\033[0m"
for user in $(cut -f1 -d: /etc/passwd); do crontab -l -u $user 2>/dev/null; done# 14. 检查cron.d目录
echo -e "\n\033[32m[15] /etc/cron.d/目录内容:\033[0m"
ls -la /etc/cron.d/echo -e "\n\033[34m============= 启动项检查 =============\033[0m"# 15. 检查启动项
echo -e "\n\033[32m[16] /etc/init.d/目录内容:\033[0m"
ls -la /etc/init.d/echo -e "\n\033[32m[17] /etc/rc.local内容:\033[0m"
cat /etc/rc.local | grep -v "^#"echo -e "\n\033[32m[18] 检查系统服务:\033[0m"
if command -v systemctl >/dev/null; thensystemctl list-unit-files | grep enabled
elsechkconfig --list | grep ":on"
fiecho -e "\n\033[34m============= 检查完成 =============\033[0m"

使用说明:

  1. 将上述脚本保存为security_check.sh
  2. 给脚本执行权限:chmod +x security_check.sh
  3. 执行脚本生成日志:sh /usr/local/bin/security_check.sh > security_audit_$(date +%F).log

脚本特点:

  1. 按类别分组输出,颜色区分不同部分
  2. 每个检查项都有编号和标题
  3. 对关键信息进行过滤,减少干扰
  4. 自动检测系统类型使用合适的命令
  5. 对可能不存在的日志文件进行检查

注意事项:

  1. 部分命令需要root权限才能获取完整信息,建议使用sudo执行
  2. 某些系统可能没有lastb命令或/var/log/btmp文件
  3. 输出结果需要根据您的实际环境进行分析判断
http://www.lryc.cn/news/598354.html

相关文章:

  • 项目——在线五子棋对战
  • pyarmor加密源代码
  • 闲庭信步使用图像验证平台加速FPGA的开发:第三十三课——车牌识别的FPGA实现(5)车牌字符的识别
  • OpenCV —— contours_matrix_()_[]
  • 删除排序数组中的重复项
  • 微服务的编程测评系统6-管理员登录前端-前端路由优化
  • 一文说清楚Hive中常用的聚合函数[collect_list]
  • 亿级流量短剧平台架构演进:高并发场景下的微服务设计与性能调优
  • Matplotlib详细教程(基础介绍,参数调整,绘图教程)
  • IO密集型、CPU密集型、负载、负载均衡
  • 校园英语杂志《校园英语》杂志社校园英语编辑部2025年第15期目录
  • 考研初试专业分146!上岸新疆大学!信号与系统考研经验,通信考研小马哥。
  • GitHub Actions打包容器,推送 AWS ECR 并使 EKS 自动拉取以完成发版部署
  • Redis数据类型与内部编码
  • Webpack配置原理
  • MongoDB 和 Elasticsearch(ES)区别
  • Windows 下配置 GPU 用于深度学习(PyTorch)的完整流程
  • matrix-breakout-2-morpheus靶场通过
  • 基于深度学习的胸部 X 光图像肺炎分类系统(二)
  • 小架构step系列24:功能模块
  • Android中compileSdk,minSdk,targetSdk的含义和区别
  • M3295NL专为千兆以太网设计,支持100/1000Mbps全双工通信M3295支持4对5类UTP电缆
  • SparkSQL 子查询 IN/NOT IN 对 NULL 值的处理
  • 数据结构 堆(3)---堆排序
  • 在 Windows 上安装设置 MongoDB及常见问题
  • 多源信息融合智能投资【“图神经网络+强化学习“的融合架构】【低配显卡正常运行】
  • 如何清理电脑c盘内存 详细操作步骤
  • dify 变量聚合器-聚合分组问题
  • 【Java工程师面试全攻略】Day12:系统安全与高可用设计
  • 再生基因总结