Apache IPv4 запрещает директиву блокирует адреса IPv6
Редактировать Я думал, что чрезмерное количество "запрещенных" строк сбивает с толку apache для блокирования незарегистрированных адресов IPv4. Но комментарий @Ladadadada заставил меня точно определить проблему. Вы можете прочитать мой старый вопрос ниже. Проблема в следующем:
deny from 42.1.0.0/19
блокирует адреса IPv6
2a01:4f8:120:8201::2
2a01:1e8:e100:ce::2
Как это возможно?
У меня очень длинный список заблокированных IP-адресов, активированных Include
директива внутри Directory
блок.
Этот файл содержит только адреса IPv4, но мой сервер также блокирует ограниченное количество адресов IPv6. Это не блокирует весь трафик IPv6. Если я удаляю блоки, эти IPv6-адреса могут нормально обращаться к серверу.
Первоначально файл блока имел каждый IP-блок в отдельной строке "отказать от". Я попытался объединить каждые 40 из них, чтобы уменьшить количество правил и размер файла. Это все равно не помогло. Но когда я урезал правила до 4-5 запрещенных строк, он работал как положено и не блокировал адреса IPv6.
Это примеры журналов из журнала доступа.
2a01:4f8:120:8201::2 - - [03/Mar/2013:15:01:07 +0200] "GET /tdf/ HTTP/1.1" 403 387 "-" "MirrorBrain Probe (see http://mirrorbrain.org/probe_info)"
и из журнала ошибок
[Sun Mar 03 15:01:07 2013] [error] [client 2a01:4f8:120:8201::2] client denied by server configuration: /mirror/pub/tdf/
Как я могу перечислить большое количество "отрицать" директивы? Я не могу управлять брандмауэром машины, так что об этом не может быть и речи.
1 ответ
Продвигаясь прямо в детали, давайте конвертируем оба 42.1.0.0
а также 2a01:1e8
в двоичный файл (вы поймете, почему я выбрал только начальную часть в данный момент.)
0010 1010 . 0000 0001 . 000 |
42 . 1 . 0 |
0010 1010 0000 0001 : 000 | 0 0001 1110 1000
2a01 : | 1e8
|
^ cut here
Как работает оповещение CIDR, будет ли оно соответствовать первому /X
биты. В вашем случае это будет соответствовать первому 19
, который 2a01:1e8:...
также совпадает.
Это наводит меня на мысль, что это ошибка, так как это именно то, что показано в их документации.