linux漏洞一键扫描

语言:shell

方式:开源脚本

下载方式-自行下载使用

通道:夸克盘

Linux 服务器系统扫描脚本使用指南

功能概述

这是一个全面的 Linux 服务器系统扫描脚本,可以检测以下类别的问题:

1. 安全检查 🔒

  • SSH 配置安全性(root 登录、空密码、密钥认证)
  • 防火墙状态(UFW/Firewalld)
  • SELinux 安全模块
  • sudo 权限配置
  • 关键文件权限(/etc/passwd、/etc/shadow)
  • 无密码用户检测
  • UID 为 0 的非 root 用户检测

2. 性能检查

  • CPU 使用率监控
  • 内存使用率分析
  • 磁盘使用率检查
  • 系统负载评估
  • inode 使用率监控

3. 系统配置检查 ⚙️

  • 系统更新可用性
  • 时间同步状态
  • 日志轮转配置
  • cron 服务状态
  • 开机启动项统计

4. 网络检查 🌐

  • 开放端口列表
  • 网络连接数统计
  • DNS 配置验证

5. 进程检查 🔄

  • 僵尸进程检测
  • 内存占用排行
  • CPU 占用排行

6. 用户和权限检查 👤

  • 空 shell 用户检测
  • 系统用户配置验证
  • 最近登录用户查询
  • sudo 使用情况统计

7. 日志检查 📋

  • 系统日志错误统计
  • 认证日志分析(登录失败检测)
  • 内核日志警告统计

8. 软件包检查 📦

  • 已安装软件包统计
  • 安全更新检测

使用方法

基本用法
sudo bash linux_system_scanner.sh

脚本输出

脚本会在终端输出彩色的扫描结果,并同时生成一个详细的日志文件。

输出颜色说明:

  • 🔴 红色 [ 严重]:需要立即处理的严重问题
  • 🟡 黄色 [ 警告]:需要注意的潜在问题
  • 🟢 绿色 [✓]:正常的配置或状态
  • 🔵 蓝色:标题和分隔符

日志文件

脚本会自动生成一个日志文件,文件名格式为:

linux_scan_report_YYYYMMDD_HHMMSS.txt

例如:++linux_scan_report_20250126_103100.txt++

常见问题解决

问题 1:SSH 允许 root 直接登录

症状: 输出显示 ++[++ ++严重] SSH++ ++允许 root++ ++直接登录,建议禁用++

解决方案:

编辑 SSH 配置文件

sudo nano /etc/ssh/sshd_config

找到 PermitRootLogin 行,改为:

PermitRootLogin no

保存并重启 SSH 服务

sudo systemctl restart sshd

问题 2:防火墙未启用

症状: 输出显示 ++[++ ++警告] UFW++ ++防火墙未启用,建议启用++

解决方案(Ubuntu/Debian ):

安装 UFW

sudo apt-get install ufw

启用防火墙

sudo ufw enable

允许 SSH 连接

sudo ufw allow 22/tcp

查看防火墙状态

sudo ufw status

解决方案(CentOS/RHEL ):

启用 Firewalld

sudo systemctl start firewalld

sudo systemctl enable firewalld

查看防火墙状态

sudo firewall-cmd --state

问题 3:磁盘使用率过高

症状: 输出显示 ++[++ ++严重/++ ++警告]++ ++磁盘使用率过高: /home (95%)++

解决方案:

查看磁盘使用情况

du -sh /* | sort -rh | head -10

查找大文件

find / -type f -size +100M -exec ls -lh {} \;

清理日志文件

sudo journalctl --vacuum=30d

清理包管理器缓存

sudo apt-get clean # Debian/Ubuntu
sudo yum clean all # CentOS/RHEL

问题 4:发现无密码用户

症状: 输出显示 ++[++ ++严重]++ ++发现无密码用户: user1++

解决方案:

为用户设置密码

sudo passwd user1

或者禁用该用户

sudo usermod -L user1

问题 5:发现登录失败次数过多

症状: 输出显示 ++[++ ++警告]++ ++发现 150++ ++次登录失败,可能存在暴力破解++

解决方案:

查看失败的登录尝试

sudo grep "Failed password" /var/log/auth.log | tail -20

配置 fail2ban 防止暴力破解

sudo apt-get install fail2ban

sudo systemctl enable fail2ban
sudo systemctl start fail2ban

问题 6:系统有安全更新可用

症状: 输出显示 ++[++ ++严重]++ ++有 5++ ++个安全更新可用,建议立即安装++

解决方案:

更新系统(Debian/Ubuntu)

sudo apt-get update

sudo apt-get upgrade

sudo apt-get dist-upgrade

或者(CentOS/RHEL)

sudo yum update

问题 7:CPU 或内存使用率过高

症状: 输出显示 ++[++ ++警告] CPU++ ++使用率过高: 85%++ 或 ++[++ ++警告]++ ++内存使用率过高: 92%++

解决方案:

查看占用 CPU 最多的进程

ps aux --sort=-%cpu | head -10

查看占用内存最多的进程

ps aux --sort=-%mem | head -10

实时监控系统资源

top

或者使用 htop(需要安装)

sudo apt-get install htop
htop

问题 8:SELinux 未启用或处于宽松模式

症状: 输出显示 ++[++ ++警告] SELinux++ ++已禁用,建议启用++

解决方案:

查看当前 SELinux 状态

getenforce

临时改为强制执行模式

sudo setenforce 1

永久改为强制执行模式

sudo nano /etc/selinux/config

改为:SELINUX=enforcing

重启系统使配置生效

sudo reboot

脚本权限要求

此脚本需要以 root 身份 运行,以便访问系统的所有配置文件和日志。

sudo bash linux_system_scanner.sh

定期扫描建议

建议定期运行此脚本以监控系统健康状况。可以通过 cron 任务自动执行:

编辑 crontab

sudo crontab -e

添加以下行,每周一早上 2:00 运行扫描

0 2 * * 1 /home/ubuntu/linux_system_scanner.sh >> /var/log/system_scan.log 2>&1

脚本输出示例

Linux 服务器系统扫描报告

扫描时间: 2025-01-26 10:31:00

扫描主机: my-server

========================================

========================================

安全检查

========================================

检查 SSH 配置...

✓\]: # "SSH 已禁用 root 直接登录" \[✓\]: # "SSH 已禁用空密码登录" \[警告\]: # "SSH 仍允许密码认证,建议改用密钥认证" 检查防火墙状态... \[✓\]: # "UFW 防火墙已启用" ... (更多检查结果) ======================================== 扫描总结 ======================================== 总问题数: 12 严重问题: 1 警告问题: 8 信息: 3 详细报告已保存到: linux_scan_report_20250126_103100.txt 建议: 请立即处理上述严重问题 建议: 请及时处理上述警告问题 **故障排除** **脚本无法执行权限** # 添加执行权限 chmod +x /home/ubuntu/linux_system_scanner.sh **某些命令不可用** 某些检查可能在不同的 Linux 发行版上不可用。脚本会自动跳过不可用的检查,并继续执行其他检查。 **日志文件权限问题** 如果无法写入日志文件,请检查目录权限: # 查看当前目录权限 ls -ld . # 如果需要,改变目录权限 chmod 755 . **注意事项** 1. **备份重要数据**:在执行任何修复操作前,请备份重要数据 2. **测试环境**:建议先在测试环境中运行脚本 3. **定期更新**:定期运行此脚本以监控系统状态 4. **专业建议**:对于严重问题,建议咨询系统管理员或安全专家 **许可证** 此脚本为开源脚本,可自由使用和修改。 **支持** 如有问题或建议,请提供以下信息: * Linux 发行版和版本 * 脚本输出的完整日志 * 系统配置信息 **处理截图** ![](https://i-blog.csdnimg.cn/direct/690ca26802dc4ab19163b05ca4f898d7.png) ![](https://i-blog.csdnimg.cn/direct/68acb0340e8b41a6a0a626398e8b33a6.png)

相关推荐
eWidget2 小时前
InfluxDB迁移至金仓数据库的同城容灾实践:性能显著提升、运维效率优化,某能源企业实现RPO_5秒的高可靠时序数据管理
运维·数据库·能源·时序数据库·kingbase·kingbasees·金仓数据库
m0_696212682 小时前
个人微信api
运维·服务器
en-route2 小时前
SSH Key 与 GPG Key 区别详解:Git 使用中的身份与签名机制
运维·git·ssh
Web极客码3 小时前
区块链第 1 层与第 2 层有什么区别?
服务器·区块链
码农水水3 小时前
中国邮政Java面试被问:容器镜像的多阶段构建和优化
java·linux·开发语言·数据库·mysql·面试·php
wifi chicken3 小时前
Linux Wlan L3~L2封包逻辑详解
linux·网络·ping·封包
小白鸽i5 小时前
【LINUX】将源码驱动文件编译并生效
linux·运维·服务器
做萤石二次开发的哈哈5 小时前
萤石开放平台 音视频 | 产品概述
运维·服务器·萤石云·萤石·萤石开放平台
0思必得05 小时前
[Web自动化] 处理爬虫异常
运维·爬虫·python·selenium·自动化·web自动化