Почему не срабатывает бан IP по маске?

Рейтинг: 0Ответов: 2Опубликовано: 11.08.2023

Пришли ботоводы на сайт. Определил IP-сеть по Метрике, получил диапазон IP негодяев, в htacess содержится это:

ErrorDocument 403 /403.php
ErrorDocument 404 /404.php

Order Deny,Allow
Deny from 109.248.12.66
Deny from 46.8.212.50
Deny from 109.248.205.13
Deny from 109.248.14.112
Deny from 46.8.23.0/24
Deny from 188.130.143.0/24
Deny from 109.248.129.0/24
Deny from 45.134.180.0/23
Deny from 185.181.245.0/24

Не смотря на данную строчку Deny from 45.134.180.0/23, IP адрес 45.134.180.13 заходит на сайт. Почему так ? Как правильно забанить негодяев, зная AS# ?

Ответы

▲ 0

Директива Deny не поддерживает маску подсети.

Для блокировки сети по /24 отбрасывайте последний октет

Например

Deny from 109.248.129.

Это заблокирует сеть 109.248.129.0/24

Подробнее https://httpd.apache.org/docs/2.4/mod/mod_access_compat.html#deny

▲ 0

Директивы Allow, Deny и Order считаются устаревшими. Переходите на использование новой - Require, которая как раз умеет работать с CIDR.

Блокировка подсети может выглядеть, например, как такая директива:

Require not ip 109.248.129.0/24