Если у вас есть сайт и борьба с вредоносными ботами вас беспокоит, вы наверняка получили рекомендацию отключить поддержку вашего сайта IPv6, интернет-протокола версии 6. Зачем же его отключать? Ведь этот протокол — будущее интернета?
Зачем отключать IPv6?
Конечно, в будущем, когда адресное пространство IPv4 будет полностью исчерпано, все перейдут на IPv6, вредоносные боты исчезнут сами собой, а интернет станет безопасным, белым и пушистым. Но сегодня, в 2020-х годах, IPv6 активно используют представители темной или черной стороны интернета. Низкая стоимость адресов, работающих на этом протоколе, делает IPv6 неисчерпаемым ресурсом для вредоносных ботов. Злоумышленники могут покупать целые адресные подсети за копейки и атаковать сайты полчищами вредоносных ботов. Они сканируют сайты на предмет различных уязвимостей, взламывают административные панели, рассылают спам через IPv6-прокси и т. д. Более того, количество IPv6-ботов настолько велико, что блокировка по адресу бессмысленна и неэффективна. Более эффективным решением в данном случае является полное запрещение доступа к сайту через IPv6. Таким образом, посетители (как люди, так и боты) будут заходить на сайт по старому протоколу IPv4, который гораздо проще обрабатывается программами безопасности сервера. Позже, когда IPv6 станет стандартом де-факто и ситуация с вредоносными ботами улучшится, IPv6 можно будет включить обратно.
Немного статистики
Несмотря на то, что общемировое число сайтов, работающих по IPv6, неуклонно растёт и к 2023 г. составляет уже 43 %, темпы и широта внедрения этого протокола очень сильно варьируют от страны к стране. К примеру, по состоянию на октябрь 2023 г. в Германии на IPv6 работают 73 % сайтов, в США — 48 %, тогда как в России — всего лишь около 6 %.
Как отключить IPv6?
Обычно, чтобы отключить поддержку IPv6, достаточно удалить запись AAAA в панели DNS регистратора домена. Однако если ваш сайт использует DNS или другие сервисы Cloudflare, простого удаления записи AAAA недостаточно. Чтобы полностью отключить поддержку IPv6, нужно нажать специальную кнопку в разделе «Сеть» интерфейса Cloudflare, но эта функция доступна только пользователям тарифного плана Enterprise. Что происходит с пользователями бесплатных тарифных планов?
Решение для пользователей Cloudflare Free Plan
К счастью, пользователи бесплатного тарифа (Free Plan) также могут отключить поддержку IPv6 в Cloudflare для своих сайтов, — только делается это не через удобный интерфейс, а через [censored] неудобную консольную команду. Для того, чтобы команда сработала, потребуется сгенерировать специальный API-токен, который используется для внесения изменений в настройки. Процедура несложная и занимает 5-10 минут. Вот как это делается.
Шаг 1. Создайте API-токен
API-токен — это цифровой пропуск-идентификатор, дающий право доступа к аккаунту Cloudflare и избирательному изменению настроек для сайтов, подключённых к нему. Он представляет собой строчку из буквенно-цифровых символов.
Чтобы создать токен, войдите в веб-интерфейс Cloudflare, перейдите на вкладку My Profile → API Tokens и нажмите кнопку Create Token.
Прокрутите окно вниз до раздела Custom Token (Специальный токен) и нажмите кнопку Get Started.
• В поле Token Name укажите название для вашего токена. Оно может быть любым. Например, Edit Zone Settings.
• В разделе Permissions (Права доступа) выберите в выпадающих списках значения Zone, Zone Settings, Edit.
• Если вы хотите отключить IPv6 для всех сайтов, подключенных к вашему аккаунту Cloudflare, то раздел Zone Resources (Ресурсы зоны) можно оставить как есть и ничего там не трогать. Если сайтов у вас несколько, и вы хотите отключить IPv6 только для одного из них, выберите Include, Specific Zone, а в третьем выпадающем списке выберите нужный сайт.
• После того, как все необходимые поля будут заполнены, появится окно с перечнем настроек токена для данной зоны. Нажмите кнопку Create Token.
После нажатия кнопки появится окно с оповещением, что токен благополучно создан. Нажмите Copy, чтобы скопировать токен, и сохраните его для дальнейшего использования.
Шаг 2. Найдите и скопируйте Zone ID
Zone ID — это идентификатор зоны, для которой будет производиться отключение поддержки IPv6. В зависимости от того, что вы указали в разделе Zone Resources в предыдущем шаге, этой зоной будет либо все сайты, подключённые к вашему аккаунту Cloudflare, либо какой-то отдельный сайт. Также как и токен, Zone ID представляет собой строку из буквенно-цифровых символов.
• Перейдите в настройки вашего сайта на вкладку Overview. В разделе API скопируйте строчку из поля Zone ID и сохраните для дальнейшего использования.
Шаг 3. Ввод консольной команды
curl -X PATCH "https://api.cloudflare.com/client/v4/zones/ZONE-ID/settings/ipv6" \
-H "X-Auth-Email: YOUR-EMAIL" \
-H "Authorization: Bearer API-TOKEN" \
-H "Content-Type: application/json" \
--data '{"value":"off"}'
В вышеприведённом блоке произведите следующие замены:
• вместо ZONE-ID вставьте ваш Zone ID, полученный на шаге 2;
• вместо YOUR-EMAIL вставьте ваш имейл вашего Cloudflare-аккаунта (например, [email protected])
• вместо API-TOKEN вставьте ваш API-токен, полученный на шаге 1.
После замены скопируйте весь блок целиком.
• Запустите программу Terminal (она есть на любом компьютере с Windows, macOS или Linux), вставьте туда скопированный блок команд и нажмите Enter. Если команда выполнена успешно и безошибочно, в строке вывода появится «success»: true, «errors»: []. В случае ошибок будет выведен код ошибки с текстовым пояснением.
Шаг 4. Проверка изменений
• Перейдите в настройки вашего сайта на вкладку Network. Если отключение поддержки IPv6 прошло успешно, то переключатель IPv6 должен быть в положении «выключено».
Готово!
…
P. S. Чтобы снова включить поддержку IPv6, выполните вышеописанную команду, заменив «value»:«off» на «value»:«on».
P. P. S. Отключение поддержки IPv6 в DNS Cloudflare не означает, что на ваш сайт нельзя будет зайти напрямую, т. е. просто введя IPv6-адрес вашего сайта в браузере. (К примеру, на yandex.ru можно зайти по IPv6-адресу https://[2a02:6b8::2:242]/ после включения IPv6 в настройках браузера). Для того, чтобы прямые заходы на ваш сайт по протоколу IPv6 были невозможны, потребуется дополнительно отключить поддержку IPv6 на хостинге, где расположен ваш сайт.