侧边栏壁纸
博主头像
CYC的个人博客博主等级

学习使人进步

  • 累计撰写 91 篇文章
  • 累计创建 11 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

Nginx+iptables动态封杀ip的恶意请求

Administrator
2024-11-21 / 0 评论 / 0 点赞 / 41 阅读 / 2224 字

Nginx+iptables动态封杀ip的恶意请求

背景:随着公司互联网项目越来越多,公司的系统已经在市面上逐渐引起了敌军的注意,慢慢的发现了多个地区不同ip向我们的系统接口恶意请求攻击!

本文章撰写的目的都是为了服务器安全着想

注意:请在先安装好iptables服务的前提下再进行相关操作,如果服务器本身运行了很多程序,再次添加iptables服务后可能会导致容器内部网络错误,一些拉闸的后果,请注意!!!如果是云服务器,我建议手动配置安全组策略,稳一手!当然也要修改接口加强手工验证!


#!/bin/bash

#yum install iptables-services -y

nginx_home=/mnt/work/nginx

log_path=/mnt/work/nginx/logs

/usr/bin/tail -n50000 $log_path/h5.xxx.cn.access.log \
|awk '$7 ~ "/admixx/apxx/sendSms" {print $1,$13} '\
|grep -i -v -E "google|yahoo|baidu|msnbot|FeedSky|sogou" \
|awk '{print $1}' |sort |uniq -c | sort -rn \
|awk '{if($1>150)print  "deny "$2";"}'>$log_path/blockip.log

#向nginx主进程发信号重新打开日志

docker exec  81d1d6c8edf5 nginx -s reload


也可以通过分析nginx日志过滤出频繁访问IP,直接用iptables屏蔽这个!P,就用不着重启nginx了,并且屏蔽效果更好。
单个IP的命令是
iptables -I INPUT -s 124.115.0.199 -j DROP
封IP段的命令是
iptables -I INPUT -s 124.115.0.0/16 -j DROP
封整个段的命令是,
iptables -I INPUT -s 194.42.0.0/8 -j DROP
封几个段的命令是
iptables -I INPUT-s 61.37.80.0/24 -j DROP
iptables -I INPUT -s 61.37.81.0/24-j DROP
刚才不小心搞的自己都连不上了--!!!
iptables -I INPUT -p tcp --dport 443 -s  124.115.0.0/24  -j DROP 
以后用这种只封80端口就行了,不会出问题!
iptables -I INPUT -p tcp --dport 80 -s 124.115.0.0/24 -j DROP
iptables -I INPUT -s 61.37.81.0/24 -j DROP

查看规则
iptables -L -n

解封 慎用!!!
iptables -F 
清空
iptables -D INPUT 数字

允许 172.17.0.0/16  所有ip请求
iptables -A INPUT -s 172.17.0.0/16  -j ACCEPT

允许 10.42.0.0/16  所有ip请求
iptables -A INPUT -s 10.42.0.0/16   -j ACCEPT

允许   源地址 172.17.0.0/24  到目标地址172.17.0.0/24  端口5000的请求
iptables -I INPUT -s 172.17.0.0/24  -d 172.17.0.0/24 -p tcp --dport 5000 -j ACCEP

iptables -I DOCKER-USER  INPUT -s 0.0.0.0/0  -d 172.17.0.0/24  -j ACCEPT
允许网卡
iptables -I DOCKER-USER -i eth0   -s 192.168.1.0/24 -j ACCEPT

##
iptables -I DOCKER-USER   -s 0.0.0.0/0 -d 0.0.0.0/0 -j RETURN

0

评论区