hareeshnaidu123/loganalyzer.py

GitHub: hareeshnaidu123/loganalyzer.py

使用 Python 解析 Linux 认证日志以检测 SSH 暴力破解尝试并生成 CSV 分析报告的轻量安全监控脚本。

Stars: 0 | Forks: 0

# loganalyzer.py import re import pandas as pd from collections import Counter LOG_FILE = "sample_auth.log" failed_pattern = r"Failed password.*from (\d+\.\d+\.\d+\.\d+)" success_pattern = r"Accepted password.*from (\d+\.\d+\.\d+\.\d+)" failed_ips = [] success_ips = [] with open(LOG_FILE, "r") as file: for line in file: failed = re.search(failed_pattern, line) success = re.search(success_pattern, line) ``` if failed: failed_ips.append(failed.group(1)) if success: success_ips.append(success.group(1)) ``` failed_count = Counter(failed_ips) success_count = Counter(success_ips) print("=" * 50) print("日志分析报告") print("=" * 50) print(f"\n总失败登录次数 : {len(failed_ips)}") print(f"总成功登录次数 : {len(success_ips)}") print("\n失败登录 IP") for ip, count in failed_count.items(): print(f"{ip} --> {count}") print("\n成功登录 IP") for ip, count in success_count.items(): print(f"{ip} --> {count}") print("\n可能的暴力破解尝试") for ip, count in failed_count.items(): if count >= 3: print(f"警告 : {ip} 尝试了 {count} 次失败登录") report = [] for ip, count in failed_count.items(): report.append({ "IP Address": ip, "Failed Attempts": count, "Status": "可疑" if count >= 3 else "正常" }) df = pd.DataFrame(report) df.to_csv("report.csv", index=False) print("\nCSV 报告已保存为 report.csv")
标签:Python, Ubuntu, 代码示例, 数据分析, 无后门, 网络调试, 自动化, 逆向工具