shell安全类脚本(1.屏蔽每分钟访问过多的IP;2.拒绝ssh暴力破解)

一、屏蔽每分钟访问次数过多的ip

复制代码
# 编写脚本
[root@openEuler-1 script]# vim deny_frequent_ip.sh
[root@openEuler-1 script]# cat deny_frequent_ip.sh
#!/bin/bash
#########################
#File name:deny_frequent_ip.sh
#Email:obboda@163.com
#Created time:2025-01-15 11:44:05
#Description:屏蔽每分钟访问次数过多的ip
#########################

LOG=/var/log/nginx/access.log
DATE=$(date +%d/%b/%Y:%H:%M)


cat $LOG | grep $DATE | awk  '{IP[$1]++} END {for (k in IP) if (IP[k] > 10) print k}' > deny_ip
iptables -nL | tr -s " " | awk -F'[ :]' '/^DROP/ && $NF==80  {print $4}' > exist_deny_ip

while read line
do
        if ! grep -w "$line" exist_deny_ip &> /dev/null
        then
                iptables -I INPUT -p tcp --dport 80 -s $line -j DROP
        fi
done < deny_ip

rm -f deny_ip exist_deny_ip


# 创建计划任务(每分钟执行一次)
[root@openEuler-1 script]# crontab -e
crontab: installing new crontab

# 查看计划任务
[root@openEuler-1 script]# crontab -l
*/1 * * * * bash /server/script/deny_frequent_ip.sh

二、拒绝ssh暴力破解(一小时内大于5次)

复制代码
# 编写脚本
[root@openEuler-1 script]# vim deny_frequent_ip_v2.sh
[root@openEuler-1 script]# cat deny_frequent_ip_v2.sh
#!/bin/bash
#########################
#File name:deny_frequent_ip_v2.sh
#Email:obboda@163.com
#Created time:2025-01-15 13:12:05
#Description:拒绝ssh暴力破解(一小时内大于5次)
#########################

DATE=$(date +"%b %d %H")

lastb | grep "$DATE" | awk '{IP[$3]++} END{for (k in IP) if (IP[k]>4) print k}' > deny_ip
iptables -nL | tr -s " " | awk -F'[ :]' '/^DROP/ && $NF==22  {print $4}' > exist_deny_ip

while read line
do
        if ! grep -w "$line" exist_deny_ip &> /dev/null
        then
                iptables -I INPUT -p tcp --dport 22 -s $line -j DROP
        fi
done < deny_ip

rm -f deny_ip exist_deny_ip


# 创建计划任务(每个小时执行一次)
[root@openEuler-1 script]# crontab -e
crontab: installing new crontab

# 查看计划任务
[root@openEuler-1 script]# crontab -l
*/1 * * * * bash /server/script/deny_frequent_ip.sh
* */1 * * * bash /server/script/deny_frequent_ip_v2.sh

# 删除计划脚本
[root@openEuler-1 script]# crontab -r
[root@openEuler-1 script]# crontab -l
no crontab for root
相关推荐
合作小小程序员小小店37 分钟前
web网页开发,在线%档案管理%系统,基于Idea,html,css,jQuery,java,ssh,mysql。
java·前端·mysql·jdk·html·ssh·intellij-idea
放飞自我的Coder44 分钟前
【ip 扫描html小工具】
tcp/ip·html
AI绘画小331 小时前
【网络安全】IP 核心技能:获取、伪造、隐藏与挖掘
网络·tcp/ip·安全·web安全·网络安全
AI绘画小333 小时前
【网络安全】Wireshark 抓包过滤:源 / 目的 IP 过滤 + 命令大全
数据库·tcp/ip·测试工具·安全·web安全·wireshark
zhendianluli3 小时前
windows文件通过SSH复制到ubuntu目录下
运维·ubuntu·ssh
Pixeler3 小时前
[特殊字符] Selenium 实战教程:等待与表单元素操作
chrome·selenium·测试工具
LaoZhangGong1233 小时前
TCP数据包格式分析
网络·网络协议·tcp/ip·以太网
老蒋新思维4 小时前
创客匠人 2025 高峰论谈(11.22-25):AI 智能体重构创始人 IP 打造与知识变现的管理逻辑
大数据·网络·人工智能·网络协议·tcp/ip·重构·知识付费
从零开始学习人工智能4 小时前
USDT区块链转账 vs SWIFT跨境转账:技术逻辑与场景博弈的深度拆解
开发语言·ssh·swift
tang777897 小时前
如何保护网络隐私?从理解代理IP开始
网络·tcp/ip·php