检查服务器机器是不是被暴力破解

以下是一个完整的Shell脚本,用于检测暴力破解尝试,即多次连续的失败登录尝试后终于成功登录。该脚本处理 /var/log/secure* 中的日志文件,分析失败和成功的登录尝试,并打印及保存有关潜在的暴力破解尝试的信息:

#!/bin/bash

# 设置日志文件路径模式
LOGFILES="/var/log/secure*"

# 文件存储外网登录尝试
OUTPUT_FILE="potential_bruteforce_attempts.txt"

# 用于检查是否是外网IP的函数
is_external_ip() {
    ip=$1
    # 此处假设外网IP不包括私有地址和本地回环地址
    if [[ $ip =~ ^10\. || $ip =~ ^172\.(1[6-9]|2[0-9]|3[0-1])\. || $ip =~ ^192\.168\. || $ip =~ ^127\. ]]; then
        return 1 # 是内网IP
    else
        return 0 # 是外网IP
    fi
}

# 确保输出文件是空的
> "$OUTPUT_FILE"

# 检查日志文件并分析
for LOGFILE in $LOGFILES; do
    if [[ -f "$LOGFILE" ]]; then
        echo "Analyzing log file: $LOGFILE"
        
        # 分析文件并提取含外网IP的成功登录尝试
        grep "Accepted password" "$LOGFILE" | while read line; do
            if [[ $line =~ Accepted\ password.*from\ ([^ ]+) ]]; then
                ip=${BASH_REMATCH[1]}
                if is_external_ip "$ip"; then
                    echo "$line"  # 打印到终端
                    echo "$line" >> "$OUTPUT_FILE"  # 写入到文件
                fi
            fi
        done

        # 分析失败的尝试,并检查是否后续有成功的登录
        awk '
        /Failed password/ {fail[$(NF-3)]++}  # 记录失败尝试次数
        /Accepted password/ {
            if (fail[$(NF-3)] > 3) {  # 检查是否存在多次失败尝试
                print "Brute-force detected: IP " $(NF-3) " had " fail[$(NF-3)] " failures before a success on line " NR
                print "Brute-force detected: IP " $(NF-3) " had " fail[$(NF-3)] " failures before a success on line " NR >> "'$OUTPUT_FILE'"
            }
            delete fail[$(NF-3)]  # 重置失败计数
        }
        ' "$LOGFILE"
    else
        echo "Log file does not exist: $LOGFILE"
    fi
done

echo "Analysis complete. Check $OUTPUT_FILE for potential brute-force attempts."

脚本的功能:

  1. IP检查:确定日志行中的IP是否属于外网。
  2. 成功登录尝试:捕捉并记录所有被认为是外网IP的成功登录尝试。
  3. 失败登录尝试:追踪失败的登录尝试,并在检测到成功登录后,如果之前有多次失败尝试,则报告可能的暴力破解尝试。

运行和使用脚本:

  • 保存这段脚本到一个文件中,比如 analyze_bruteforce.sh
  • 给予执行权限:chmod +x analyze_bruteforce.sh
  • 运行脚本:./analyze_bruteforce.sh

这个脚本提供了一种方法来检测潜在的安全威胁,并帮助识别需要关注的特定IP地址。它旨在提供实时反馈和记录,适用于需要监控和防范暴力破解攻击的环境。

相关推荐

  1. 检查服务器机器暴力

    2024-04-22 19:54:01       18 阅读
  2. 如何防止服务器暴力

    2024-04-22 19:54:01       44 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-22 19:54:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-22 19:54:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-22 19:54:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-22 19:54:01       20 阅读

热门阅读

  1. 【格式化日期】在Vue3中如何格式化日期

    2024-04-22 19:54:01       13 阅读
  2. random模块

    2024-04-22 19:54:01       15 阅读
  3. day6-arm

    2024-04-22 19:54:01       15 阅读
  4. go下载依赖时超时timeout

    2024-04-22 19:54:01       14 阅读
  5. Ubuntu22.04.4 - MySQL8 - 笔记

    2024-04-22 19:54:01       22 阅读
  6. 如何管理一个团队,因为有些人他不听我的话?

    2024-04-22 19:54:01       16 阅读
  7. C++实战篇(一)——自旋锁的使用

    2024-04-22 19:54:01       15 阅读
  8. pinpoint接入及接入tomcat

    2024-04-22 19:54:01       15 阅读
  9. Git的SSH密钥配置

    2024-04-22 19:54:01       16 阅读