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
相关推荐
せいしゅん青春之我18 分钟前
【JavaEE初阶】IP协议-IP地址不够用了咋办?
java·服务器·网络·网络协议·tcp/ip·java-ee
我最厉害。,。32 分钟前
内网对抗-隧道技术篇&防火墙组策略&HTTP反向&SSH转发&出网穿透&CrossC2&解决方案
网络协议·http·ssh
Pluchon2 小时前
硅基计划6.0 陆 JavaEE Http&Https协议
网络协议·tcp/ip·http·网络安全·https·udp·java-ee
老蒋新思维3 小时前
借刘润之智,在 IP+AI 时代构筑战略 “增长方舟”|创客匠人
大数据·网络·人工智能·网络协议·tcp/ip·创客匠人·知识变现
多多*3 小时前
一个有 IP 的服务端监听了某个端口,那么他的 TCP 最大链接数是多少
java·开发语言·网络·网络协议·tcp/ip·缓存·mybatis
taxunjishu3 小时前
Modbus RTU 转 Modbus TCP:借助数据采集提升罗克韦尔PLC工艺参数反馈实时性案例
人工智能·物联网·tcp/ip·工业物联网·工业自动化·总线协议
Pailugou3 小时前
使用socket实现TCP服务端
服务器·网络·tcp/ip
mit6.8244 小时前
[Column#187] 10data_struct | IP速查表 | 协议&TCP&UDP | DeepSeek-OCR
tcp/ip·udp·ocr
Li zlun16 小时前
TCP/IP协议:互联网的基石与通信灵魂
网络·网络协议·tcp/ip
威迪斯特19 小时前
网络音柱:重塑音频传播的智能终端
tcp/ip·音频·智慧城市·终端·poe·物联·网络音柱