1.现象
今天在巡查物联网网关的时候,发现有两个IP地址一致在频繁的请求网关,并不发送任何数据,而且非常频繁的链接与断开,导致网关日志文件记录了大量的异常日志。
刚开始我以为同事在对网关进行压测,或者在模拟终端,后面发现并无人做类似事情,而且是正式网关也不允许进行这样的测试,所以索性就将这归为小范围攻击吧。
2.处理手段
最开始我使用阿里云的安全组的方式进行IP限制,阿里云安全组策略如下:
通过上图错误日志里面的日志记录时间与我在阿里云安全组增加的策略时间可以明显发现,阿里云的安全组策略并没有对这两个IP做到限制
最后没办法还是得通过服务器本身做IP黑名单,因为我使用的是Linux服务器,所以增加黑名单也比较简单,仅需一个命令即可搞定:
iptables -I INPUT -s 100.116.80.3 -j DROP
也不知道是哪位仁兄在帮我测试系统,真的是太辛苦了!
3.iptables简述
IPTABLES 是与最新的 3.5 版本 Linux 内核集成的 IP 信息包过滤系统。如果 Linux 系统连接到因特网或 LAN、服务器或连接 LAN 和因特网的代理服务器, 则该系统有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置。
防火墙在做数据包过滤决定时,有一套遵循和组成的规则,这些规则存储在专用的数据包过滤表中,而这些表集成在 Linux 内核中。在数据包过滤表中,规则被分组放在我们所谓的链(chain)中。而netfilter/iptables IP 数据包过滤系统是一款功能强大的工具,可用于添加、编辑和移除规则。
虽然 netfilter/iptables IP 信息包过滤系统被称为单个实体,但它实际上由两个组件netfilter 和 iptables 组成。
netfilter 才是防火墙真正的安全框架(framework)netfilter组件也称为内核空间(kernelspace),是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。
iptables 是一个命令行工具,位于用户空间,我们用这个工具操作真正的框架,它使插入、修改和除去信息包过滤表中的规则变得容易。
常用的命令如下:
//设置单个IP白名单
iptables -A INPUT -s xxx.xxx.xxx.xxx -j ACCEPT
//设置单个IP黑名单
iptables -A INPUT -s xxx.xxx.xxx.xxx -j DROP
//查看防火墙状态
service iptables status
//查看防火墙配置文件
cat /etc/sysconfig/iptables
//开启防火墙
service iptables start
//设置拒绝所有ip访问(谨慎使用)防火墙命令的执行是有先后顺序的,在设置好白名单,留好后路之后,再执行该命令,除了白名单的ip,拒绝其它所有ip访问
iptables -A INPUT -p tcp -j DROP
//查看防火墙规则对应行数
iptables -nL --line
//删除防护墙规则
iptables -D INPUT 5 #5代表第5行
//保存防火墙设置,否则服务器重启后我们之前的设置就会被初始化掉
service iptables save
//重启防火墙,保存之后需要重启才能生效
service iptables restart