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
相关推荐
路长且阻5 分钟前
网络协议(TCP/IP、HTTP、HTTPS)
网络协议·tcp/ip·http
艾希逐月2 小时前
TCP数据的发送和接收
服务器·网络·tcp/ip
创小匠7 小时前
创客匠人视角下创始人 IP 打造与知识变现的底层逻辑重构
人工智能·tcp/ip·重构
Joker`s smile8 小时前
Chrome安装老版本、不同版本,自制便携版本用于前端调试
前端·chrome
weixin_416639978 小时前
爬虫工程师Chrome开发者工具简单介绍
前端·chrome·爬虫
我是如子啊8 小时前
【解决“此扩展可能损坏”】Edge浏览器(chrome系列通杀))扩展损坏?一招保留数据快速修复
前端·chrome·edge
一只小鱼儿吖16 小时前
进程代理单窗口单IP技术:原理、应用与实现
网络·网络协议·tcp/ip
稳联技术16 小时前
Ethernet IP与Profinet共舞:网关驱动绿色工业的智慧脉动
网络·网络协议·tcp/ip
计算机毕设定制辅导-无忧学长16 小时前
西门子 PLC 与 Modbus 集成:S7-1500 RTU/TCP 配置指南(一)
服务器·数据库·tcp/ip
shimly12345617 小时前
bash 脚本比较 100 个程序运行时间,精确到毫秒,脚本
开发语言·chrome·bash