Linux脚本的作用是监控IP登录失败次数

发布时间:2024年01月17日

Bash 脚本,用于监控和阻止多次尝试登录失败的 IP 地址

#!/bin/bash

function secrity(){
# 设置要监控的登录失败次数,超过该次数则会被阻止
MAX_ATTEMPTS=5

# 获取所有登录失败的IP并计数
IP_COUNT=$(lastb | awk '{print $3}' | sort | uniq -c | awk '$1 >= '$MAX_ATTEMPTS' {print $2}')


# 遍历所有登录失败次数超过阈值的IP并将其阻止
for IP in ${IP_COUNT}
do
    # 检查IP是否已经在iptables策略中
    if ! iptables -C INPUT -s $IP -j DROP &> /dev/null; then
        echo "`date +"%F %H:%M:%S"`  Blocking $IP ..."
        iptables -A INPUT -s $IP -j DROP
    else
        echo "$IP is already blocked." > /dev/null 2>&1
    fi
done
}
  • lastb: 失败登录尝试。
  • awk '{print $3}': 提取第三列,即 IP 地址。
  • sort: 对 IP 地址进行排序。
  • uniq -c: 计数重复的 IP 地址。
  • awk '$1 >= '$MAX_ATTEMPTS' {print $2}': 只打印那些出现次数超过?MAX_ATTEMPTS?的 IP 地址。
文章来源:https://blog.csdn.net/jcmj123456/article/details/135627526
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。