Mikrotik:如果来自该主机的 HTTP 请求过多,则禁止该主机

Mikrotik:如果来自该主机的 HTTP 请求过多,则禁止该主机

昨天,我注意到我的网络服务器出现了奇怪的活动:它温度适中,硬盘磁头不断抽搐,而且 LAN 活动异常频繁。

当我查看日志时,发现某些主机正在使用文件名暴力扫描我的网络服务器以查找文档。

我可以在 RouterOS 中实施任何针对此类暴力攻击的保护措施吗?

答案1

是的,有保护措施。基本上,您必须添加防火墙规则来检测此类主机(条件:来自同一主机的多个 tcp/端口 80 连接),如果有,请将该源 IP 添加到地址列表中。

/ip firewall filter add chain=input protocol=tcp dst-port=80 connection-limit=200,32  \
action=add-src-to-address-list  address-list=blocked-addr address-list-timeout=1d 

然后,阻止来自该地址列表的传入连接。

/ip firewall filter add chain=input src-address-list=blocked-addr action=drop

您必须调整限制(此处为 200)。还有链(如果 Web 服务器是 mikrotik 设备,则输入;如果是另一个 Web 服务器,则转发)

这是从 wiki 改编的: http://wiki.mikrotik.com/wiki/DoS_attack_protection

答案2

Benoit 的回答允许阻止主机同时发出请求。但如果它们关闭连接的速度和打开连接的速度一样快,您可能无法过滤太多连接。另一种逻辑是使用dst-limit具有速率限制的主机。

  • 我们添加一个速率限制列表:
/ip firewall address-list
add list=rate-limit
  • 然后我们设置过滤规则:
    • 跳转到 WAN 上所有新连接的速率限制链;
    • 检查过去 1 分钟内是否有 10 个连接,其中突发 5 个,dst-address并在 2 分钟不活动后重置
    • 如果达到 dst-limit,则跳过返回操作并执行速率限制链中的下一个操作 -add-src-to-address-list到速率限制列表,超时时间为 10 分钟。
/ip firewall filter
add chain=forward action=jump jump-target=rate-limit connection-state=new in-interface-list=WAN
chain=rate-limit action=return dst-limit=10/1m,5,dst-address/2m
chain=rate-limit action=add-src-to-address-list address-list=rate-limit address-list-timeout=10m
  • 最后,我们添加原始内容,这样我们就可以节省资源:
/ip firewall raw
add action=drop chain=prerouting src-address-list=rate-limit

您可以根据特定需求调整连接数和时间。您可以在防火墙/连接选项卡中使用过滤器来监控您的公共 IP,以查看

相关内容