语言: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 发行版和版本
  • 脚本输出的完整日志
  • 系统配置信息

处理截图

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐