Критичные изменения от АС «Ревизор» для страницы-заглушки

Критичные изменения от АС «Ревизор» для страницы-заглушки

АС «Ревизор» изменил анализ ответа от страницы-заглушки и может неверно засчитывать пропуски.

Все серверы с Carbon Reductor обновлены автоматически.

Для полной уверенности, а также если у Вас используется своя страница-заглушка, Вам необходимо проверить руками запрос вида:
telnet IP_Адрес_заглушки 80
Escape character is '^]'.
GET /.

Примечание: точка после слеш обязательна для этой проверки.

Верный ответ должен быть код 200 и с выводом страницы-заглушки.

Если ответ 301 Moved Permanently — значит воспользуйтесь инструкцией:
http://docs.carbonsoft.ru/pages/viewpage.action?pageId=77791244


Спасибо, что пользуетесь продуктами Carbon Soft!

Проверка операторов связи с помощью АС «Ревизор», практика наших пользователей

Проверка операторов связи с помощью АС «Ревизор», практика наших пользователей

Добрый день!

В связи с увеличением количества проверок АС «Ревизор» с декабря 2016 года у провайдеров появились вопросы и беспокойство на тему осуществления фильтрации трафика и штрафов от Роскомнадзора.

Мы отправили официальный запрос в Роскомнадзор с просьбой детально разъяснить механизм проверки фильтрации, выявления нарушений и процедуру наступления административной ответственности за отсутствие блокировки запрещенных ресурсов. Роскомнадзор прислали нам развёрнутый ответ. Мы скомпоновали его в максимально доступный вид и делимся им с Вами.

Данная статья содержит в себе как базовую информацию, известную каждому провайдеру с установленным АС «Ревизор», так и более развёрнутую, помогающую детально разобраться в вопросах законодательства.

Алгоритм проверки фильтрации и выявления нарушений

  1. Ресурс появляется в Едином реестре (обновляется ежедневно в 9.00 и 21.00 МСК).


  2. Согласно части 10 статьи 15.1 ФЗ-149 в течение суток с момента включения в Единый реестр запрещенного интернет-ресурса оператор связи, оказывающий услуги по предоставлению доступа к сети Интернет, обязан ограничить доступ к такому сайту в сети Интернет.


  3. Единый реестр выгружается оператором связи.
  4. Оператор связи обязан осуществлять блокировку запрещенных ресурсов согласно пунктам 1, 5 статьи 46 ФЗ-126 «О связи» порядок которой регулирует ФЗ-149.
  5. Филиалы ФГУП «РЧЦ ЦФО» осуществляют мониторинг фильтрации с помощью АС «Ревизор».


  6. Филиалы ФГУП «Радиочастотный центр Центрального федерального округа» (далее ‒ филиалы ФГУП «РЧЦ ЦФО») осуществляют мониторинг выполнения операторами связи требований по ограничению доступа к запрещенным интернет-ресурсам с использованием «Автоматизированной системы контроля за соблюдением операторами связи требований по ограничению доступа к сайтам в сети Интернет, содержащим информацию, распространение которой в РФ запрещено в соответствии с требованиями ФЗ-149″ (далее ‒ АС «Ревизор»). АС «Ревизор» введена в промышленную эксплуатацию приказом ФГУП «РЧЦ ЦФО» от 29.12.2016 № 354 (сертификат соответствия оборудования «Аппаратно-программный Агент АС «Ревизор» № ОС-1СУ-0496, срок действия с 05.10.2016 до 05.10.2019).


  7. При обнаружении факта отсутствия блокировки АС «Ревизор» делает скриншот незаблокированного ресурса. Представители РЧЦ передают информацию в ЕИС Роскомнадзора.


  8. Незаблокированной записью Единого реестра с признаками нарушения законодательства является запись Единого реестра, скриншот которой позволяет однозначно определить факт отсутствия блокировки интернет-ресурса оператором связи. Сформированные акты и протоколы мониторинга передаются сотрудниками филиалов ФГУП «РЧЦ ЦФО» в ЕИС Роскомнадзора. Акты мониторинга рассматриваются территориальными органами Роскомнадзора, на подведомственной территории которых осуществляет деятельность оператор связи, оказывающий услуги по предоставлению доступа к информации, распространяемой посредством сети Интернет.


  9. Роскомнадзор возбуждает дело об административном правонарушении.
  10. Решение по данному делу принимает суд.


  11. Согласно части 3 статьи 14.1 КоАП от 30.12.2001 № 195-ФЗ в случае признания нарушения судом может быть вынесено предупреждение или наложен административный штраф от 1,5 до 2 тыс.руб. ‒ для граждан, от 3 до 4 тыс.руб. ‒ для должностных лиц, от 30 до 40 тыс.руб. ‒ для юридических лиц.


    Считаем необходимым отметить, что 11.01.2017 в Госдуме принят во втором, основном чтении законопроект, дополняющий КоАП РФ новой статьей, которая вводит ответственность за неисполнение оператором связи обязанности ограничивать или возобновлять доступ к информации. Такое нарушение предлагается наказывать штрафом от 3 до 5 тыс.руб. ‒ для должностных лиц, от 10 до 30 тыс.руб. ‒ для предпринимателей без образования юридического лица, от 50 до 100 тыс.руб. ‒ для юридических лиц.

Важные моменты

Мы отметили ключевые факты, которые, в том числе, помогут в общении с представителями РКН или РЧЦ, если возникнет необходимость.

  • Проверки осуществляются регулярно, как плановые, так и внеплановые.
  • Оператору связи обязательно предоставляется доступ в личный кабинет АС «Ревизор» для проверки работы его DPI.


  • При заключении договора с филиалом ФГУП «РЧЦ ЦФО» в УФО об установке технического средства АС «Ревизор» оператору связи предоставляется доступ в личный кабинет АС «Ревизор», с помощью которого оператор связи может своевременно реагировать на случаи неблокирования доступа к запрещенным интернет-ресурсам.


  • На блокирование вновь включенных в Единый реестр интернет-ресурсов оператору связи дается не более 1 суток после их включения в Единый реестр. Также нужно обратить внимание на то, что ресурсы, добавленные в реестр в соответствии с ФЗ-398 (т.н. «экстремистские» сайты) должны быть заблокированы в течение 1 часа.
  • В НПА (нормативно-правовые акты) не предусмотрены такие понятия как «пропуски», «временные интервалы», «допуски по пропускам». Нарушением является факт отсутствия блокировки Единого реестра, будь это одна запись или сто.
  • Доказательством в суде должен быть скриншот позволяющий однозначно определить факт отсутствия блокировки.
  • Каждый оператор связи несёт ответственность за неисполнение обязанностей по блокировке ресурсов, даже если вышестоящий провайдер фильтрует трафик. Для того, чтобы полностью себя обезопасить у каждого оператора связи должно быть своё DPI решение.


  • При этом подчеркиваем, что оператор связи, использующий трафик, фильтрацию которого осуществляет присоединяющий оператор связи вышестоящего уровня, не освобождается от ответственности за неисполнение обязанности по ограничению доступа (Распоряжение Роскомнадзора от 07.07.2016 № 8, утверждающее Рекомендации по ограничению доступа к информации, распространяемой посредством сети Интернет, в порядке, установленном ФЗ-149).


  • Время на устранение неполадок не предусмотрено НПА (Но его может установить суд).
  • На текущий момент размер штрафа для юридических лиц составляет от 50 до 100 т.р.

Получается, что любой пропуск это штраф?

Законодательно да, но на самом деле нет.

Дело в том, что причины пропусков могут быть самые разные и они, если не изменять настройки ПО, всегда связаны с железом. Недавно мы написали статью с рекомендациями по повышению отказоустойчивости аппаратной части системы фильтрации.

Представители РКН и РЧЦ прекрасно понимают возможные технические неполадки и, подчеркиваем, всегда дают время на их устранение. Каждый факт неосуществления блокировки отдельно проверяется и дело дойдет до суда только в случаях, если:

  • Факт нарушения подтвердили представители РЧЦ проведением повторной проверки.
  • Проблема с фильтрацией не была решена в установленное время.

Фактически получить штраф в случае пропуска в принципе проблематично, потому что все условия для быстрого устранения неполадок есть.

Практика пользователей Carbon Reductor


Пример №1
Проблема: АС «Ревизор» зафиксировал пропуски, при попытке зайти на любой URL из отчёта страница была заблокирована. Пользователь обратился в техподдержку.

Процесс решения:

  1. Первичная диагностика сервера выявила низкую вычислительную мощность процессора, недостаточно оптимизированную работу процессора с сетевыми картами, а также отсутствие интеграции с DNS сервером и маршрутизатором.
  2. Был заменён процессор и корректно настроена его работа.
  3. Проведена интеграция с DNS сервером и маршрутизатором.
  4. Тестирование выявило небольшой процент пропусков.
  5. Детальная диагностика показала, что теряется ответный пакет после отправки с сервера фильтрации на АС «Ревизор», находящийся в локальной сети.
  6. Полученная информация позволила пользователю устранить неявную проблему в локальной сети.
  7. Повторная проверка пропусков не обнаружила.

Итог:
После проведенных работ пропуски не зафиксированы. Претензии со стороны Роскомнадзора к провайдеру были сняты. Дело в суде не рассматривалось.


Пример №2
Проблема: АС «Ревизор» зафиксировал пропуски по нестандартным портам — 8080, 8081.
Процесс решения:

  1. Первичная диагностика проблем не выявила.
  2. При детальном изучении трафика с тестовой машины, находящейся в локальной сети, выяснилось, что ответные пакеты по портам 8080, 8081 не доходили до «абонента».
  3. Совместно с пользователем, в режиме онлайн, мы выяснили, что пакеты от сервера фильтрации по нестандартным портам не попадали к абонентам, т.к. фильтровались ACL (Access Control List) на маршрутизаторе.
  4. Пользователь поправил ACL, отчёты АС «Ревизор» стали пустыми.

Итог:
Претензии со стороны Роскомнадзора к провайдеру были сняты. Дело до суда не дошло.

Резюмируя вышеописанное

Статистика показывает, что фиксируемые проблемы кроются либо в аппаратной части фильтрующего сервера, либо в специфике работы локальной сети.

В Радиочастном Центре работают грамотные и отзывчивые специалисты, которые идут навстречу при их информировании о проблеме и сроках её устранения. Их целью является не выписывание штрафов, а банальное соблюдение требований законодательства.


Спасибо, что пользуетесь продуктами Carbon Soft!

Релиз Carbon Reductor 8.00.07

Релиз Carbon Reductor 8.00.07

Добрый день!

Начнём с наиболее важной информации: законопроект, согласно которому размер штрафа за незаблокированные ресурсы повысится и составит 50-100 тыс.руб, подписан В.В.Путиным 22.02.2017 и вступит в силу 24.03.2017. В связи с этим, пожалуйста, для тех, кто еще не ознакомился, почитайте статьи о правильной настройке сервера фильтрации и об установке резервного сервера. А для тех, кто хочет дополнительно застраховаться, обратите внимание на подписку
SLA3 — Аутсорсинг. На этом уровне техническая поддержка берёт на себя администрирование сервера с Carbon Reductor, а также здесь предусмотрена страховка от штрафов Роскомнадзора.

Теперь о релизе (обновление будет доступно для скачивания после 13 марта).


Ускорено внедрение за счёт автоматической оценки сервера

Автоматизированы и улучшены следующие задачи:

  • Сбор информации о сервере.
  • Оценка этой информации для выявления узких мест, способных приводить к проблемам фильтрации.
  • Принятие более рациональных решений для оптимизации производительности.
  • Утилиты для упрощения отладки и настройки оборудования на сервере.

Автоматическая оптимизация производительности из коробки

Система чем-то похожа на демон «tuned» от Red Hat. Мы воспользовались бы им самим, если бы он поддерживал такой профиль оптимизации настроек сервера как захват трафика.

Возможности:

  • Отключение и установка «плавающей» частоты процессора.
  • Определение оптимального размера буферов сетевых карт, участвующих в захвате трафика.
  • Автоматическая настройка RPS для более равномерной нагрузки на ядра процессора (только при необходимости).

Автоматическая настройка RSS не включена по умолчанию. При использовании многопроцессорных систем с несколькими сетевыми картами есть много нюансов и нужно оценивать нагрузку, которая идёт на сетевые карты. Вся логика, которую раньше настраивали вручную сейчас унифицирована и помещена в утилиту, что позволяет упростить распределение прерываний.

Интеграция с маршрутизаторами

Расширен функционал интеграции с маршрутизаторами: добавлена возможность использования BGP.


Спасибо, что пользуетесь Carbon Reductor!

Страхуемся, чтобы на 200% проходить проверки АС «Ревизор»

Страхуемся, чтобы на 200% проходить проверки АС «Ревизор»

Мы решили дополнительно подстраховать пользователей Carbon Reductor от форс‑мажорных ситуаций в плане фильтрации.


Сейчас предполагается, что система фильтрации у провайдера должна работать идеально 100% времени. Мы прикладываем огромные усилия, чтобы это было действительно так, но причины пропусков в фильтрации не связаны непосредственно с продуктом.

Это могут быть сбои оборудования на сервере с Carbon Reductor: если внезапно выйдет из строя жёсткий диск, сервер, скорее всего, продолжит работу и даже будет продолжать осуществлять фильтрацию трафика, но не сможет выгрузить списки и добавить новые URL. Такая ситуация недавно случилась у одного из пользователей и, к сожалению, привела к штрафу в 30 тысяч рублей. Блоки питания, битые модули оперативной памяти, сетевые кабели — ситуация та же самая.

Часто бывает так, что полноценного мониторинга за сервером не настроено, а сотрудник, зарегистрированный в нашем helpdesk, получающий уведомления от нашего мониторинга, уволился. Соответственно, о возникшей проблеме, несмотря на наличие тикета в хелпдеске и отправленных писем, узнаёт не системный администратор через 5 минут, а директор, причём от РЧЦ или РКН. (Кстати, начиная с 2017 года мониторить состояние Carbon Reductor стало значительно легче, можете посмотреть примеры в документации).

Если проблемы в программном обеспечении Carbon Reductor и, используемой в качестве платформы, операционной системе мы можем исправлять и предотвращать, то с железом мы ничего сделать не можем, такова его материальная природа — оно подвержено поломкам.

Для того, чтобы предупредить форс-мажоры, от которых никто не застрахован, мы предлагаем нашим пользователям организовать резервный сервер с Carbon Reductor. Лицензия на этот сервер предоставляется безвозмездно если Вы уже пользуетесь Carbon Reductor.

Эта статья носит рекомендательный характер. Если для Вас сейчас накладно обустраивать второй сервер или нет возможности организовать ещё одно зеркало трафика, ничего страшного. Основной сервер как работает, так и будет работать, просто за ним нужно следить и обслуживать.

Ранее мы уже писали о том, как должен быть настроен сервер с Carbon Reductor.

В плане установки дополнительной копии Carbon Reductor в сеть оператора есть несколько плюсов:

  • Возможность самостоятельно обкатывать новые версии перед обновлением, то есть использовать второй Carbon Reductor как staging-сервер, а на основном отключить автоматическое обновление.
  • Снижение вероятности пропуска фильтрации из-за потери пакета (как анализируемого трафика, так и редиректов/разрывов) в сети провайдера (одновременно потерять два пакета — куда сложнее чем один).
  • Снижение вероятности пропуска фильтрации из-за выхода из строя аппаратной части.
  • Снижение вероятности пропуска фильтрации из-за плавающих проблем в программном обеспечении. Kernel panic, soft-lockup, повисания сети во время применения изменений настроек сети при большом числе VLAN, неисправная сетевая карта/рейд-контроллер и т.д.
  • Возможность спокойно проводить техническое обслуживание сервера с рестартом сети или перезагрузками (замена оборудования, обновления ядра Linux, установки параметров драйверам сетевых карт и других экспериментов).
  • Для пользователей 7-й версии возможность ознакомиться с 8-й версией до массового перехода.

Как активировать резервный редуктор:

  1. Скачайте с сайта Carbon Reductor.
  2. Установите на отдельный сервер.
  3. Протестируйте в режиме пробной версии.
  4. Отправьте регистрационный номер резервного редуктора на почту sales@carbonsoft.ru c пометкой «Активация резервного Carbon Reductor».
  5. Активация пройдет в течение суток.

Успехов и процветания! Спасибо, что пользуетесь Carbon Reductor!

Релиз Carbon Reductor 7.5.1 100

Релиз Carbon Reductor 7.5.1 100

Доброго времени суток!

Продолжаем оптимизировать работу Carbon Reductor под новые реалии контроля фильтрации трафика со стороны РКН. Повышена стабильность выгрузки списков, а фильтрация стала еще лучше.


Самое важное

SNI-фильтрация стала значительно надёжнее в большинстве установок, связано с нюансами трафика в зеркале. Возможен незначительный рост (2-10%) нагрузки на сервер.

Исправлена ошибка с неснимающимся режимом обслуживания на старых выпусках CentOS (6.6 и младше).

Улучшена производительность резолвера в работе со списками.

Повышена надёжность обновления Carbon Reductor

Улучшена стабильность системы обновления. Добавлена дополнительная проверка в момент запуска обновления на случай если скачались некорректные данные. Ранее в случае ответа с ошибкой всегда запускалось скачивание и при обновлении это могло привести к неработоспособности редуктора. Также обновление самого Carbon Reductor теперь нельзя запустить дважды (спасает при запуске ручного обновления во время автоматического обновления).

Работа со списками

Стали более отказоустойчивыми выгрузка реестра и обновление сигнатур. Обновление списков и загрузка URL/доменов/IP в ядро тоже подверглась улучшениям в плане надёжности и понятности. Логируется статистика модуля до загрузки URL и после.

Другое

  • Унифицировано логирование во многих подсистемах: файрвол, обновление сигнатур, режим обслуживания, загрузка URL. Позволит быстрее находить причину сбоев в работе.
  • Мастер настройки зеркала трафика и часть других скриптов теперь поддерживают устройства, именуемые не «eth».
  • Унифицирована система тестирования. Наведён порядок в тестовой инфраструктуре, не касается конечных пользователей напрямую, но это делает Carbon Reductor более защищённым от ошибок разработчиков.
  • Улучшена работа Carbon Reductor в режиме только редиректора для неавторизованных/заблокированных/неплатящих абонентов без каких-либо списков вообще. Также для неавторизованных пользователей не полностью фильтровался HTTPS-трафик — исправлено.
  • В веб-интерфейсе в разделе «Информация» теперь выводится информация о файле запроса и его подписи при отсутствии сертификата.
  • Mikrotik периодически отдаёт пустой ответ при запросе списка IP адресов, не отдавая никакого кода возврата. Теперь это учитывается в примере хука для интеграции с маршрутизатором.
  • Утилита для поиска по кэшу резолва запрещенных доменов теперь умеет искать как домены по IP, так и IP по домену — используется для ресурсов, которые часто меняют IP-адрес.
  • Обновлён плагин для collectd (`/usr/local/Reductor/bin/collectd_plugin`), теперь он соответствует новому формату собираемой по модулям ядра статистики.
  • Исправлено несколько опечаток в диагностике и веб-интерфейсе.

Спасибо, что пользуетесь Carbon Reductor!

Релиз Carbon Reductor 7.5.0 204 и 8.0.0 1435

Релиз Carbon Reductor 7.5.0 204 и 8.0.0 1435

Добрый день!

Изменения в связи с обновлением АС «Ревизор»

Добавлен режим обслуживания

В случае, если новая версия Carbon Reductor содержит изменения модулей фильтрации, на время процесса обновления, 10-20 секунд, включается режим обслуживания. Правила файрвола не очищаются полностью, вместо этого добавляется REJECT для всех видов трафика. Эти правила применяются только для АС «Ревизор», если указан его IP‑адрес/подсеть, иначе — для всех абонентов. Это сделано с целью исключить пропуски фильтрации в процессе обновления Carbon Reductor. Такие обновления бывают раз в 2-3 месяца.

А также:

  • Теперь не указанный IP-адрес АС «Ревизор» считается ошибкой.
  • Добавлена регистронезависимая фильтрация DNS для всех абонентов, если не указан IP‑адрес/подсеть АС «Ревизор». Может повышать нагрузку на сервер.

Повышение надёжности фильтрации

  • Теперь в файлах модулей фильтрации выводится статистика по обеим базам данных — как buffer, так и readonly. Ранее счётчики показывались не совсем верно — в какой-то момент от buffer, в какой-то от readonly, что могло привести к ошибочному выводу о том, что база, по которой происходит поиск при фильтрации, обнуляется при обновлении списков или рестарте.
  • Загрузка URL, доменов и IP в ядро теоретически могла быть запущена в процессе обработки списков и использовать не до конца обработанные списки — исправлено.

Исправления в Carbon Reductor 8

  • В момент применения собственных списков в веб-интерфейсе выдавалась 404/500 ошибка.
  • L2-зеркало трафика, настроенное с помощью мастера не работало.
  • Использование страницы-заглушки Carbonsoft теперь считается ошибкой, т.к. ответ от сервера Carbonsoft не является гарантированным.
  • Мелкие проблемы с запуском при первой установке.
  • Ошибка в веб-интерфейсе, в некоторых случаях возникала надпись «Файл не найден».
  • Ошибка генерации и подписи запроса для получения списка запрещённых сайтов, в результате которой списки не выгружались.

Прочее

  • Исправлено — Satellite не удалял пустые временные файлы на каждый домен при проверке DNS, что приводило к заполнению inodes. Проверить текущую заполненность можно командой: df -hi /tmp/.
  • Теперь в отчётах Satellite указывается его IP-адрес. Полезно при использовании нескольких серверов Satellite.
  • Плагин collectd сломался при обновлении модулей. Теперь он поставляется в комплекте с Carbon Reductor, чтобы обеспечить его автоматическое обновление. Инструкция на github по работе с ним в скором времени будет обновлена и продублирована в документацию Carbon Reductor.
  • Добавлен режим для Satellite, обеспечивающий отсутствие расхождения содержимого списков на Reductor и Satellite на время проверки фильтрации (используется только в целях агрессивного тестирования разработчиками).

Спасибо, что пользуетесь Carbon Reductor!

АС «Ревизор» теперь производит непрерывную проверку фильтрации

АС «Ревизор» теперь производит непрерывную проверку фильтрации

Доброго времени суток!

Роскомнадзор вновь подкидывает работы и заставляет некоторых пользователей понервничать.


У нас есть страница-заглушки: http://denypage.ru. Давненько, когда модуль DNS-фильтрации стал необходим для прохождения проверок ревизора без пропусков, мы приняли довольно тяжелое решение о том, чтобы при обновлении включить этот модуль.

Наша цель была в том, чтобы зафильтровать ресурсы, часто меняющие IP хоть как-то (резолвер этого не гарантирует), не дожидаясь долгой человеческой реакции большого числа людей, чтобы наши дорогие клиенты не получили штрафы.

Взглянули на нагрузку, которую она создаёт и в принципе ничего особо страшного не было. Доросла она где-то до 100-400 тысяч запросов в час и это никого не беспокоило.

После обновления АС «Ревизор», 21 декабря — нагрузка на страницу выросла до 7 000 000 запросов в час, и это только те, которые достучались до контейнера с nginx, обслуживающим эту страницу. Многие запросы стали заканчиваться ошибками HTTP/502 Gateway Timeout, которые фиксируются ревизором. К штрафу это, скорее всего, не приведёт, т.к. ответа от запрещенного ресурса не было, но из РЧЦ к Вам придут с вопросом: «а почему у Вас нет страницы-заглушки?».

Чтобы фильтрация работала как положено нужно настроить собственную страницу заглушку.

Настройка заглушки, варианты:

На отдельном сервере

Чтобы АС «Ревизор» её успешно распознавал, следуйте инструкции (имеющиеся веб-сервера использовать не рекомендуется, потому что инструкция требует выделить отдельный сервер, занимающийся ТОЛЬКО страницей-заглушкой, в противном случае отправленные с помощью DNS-спуфинга редиректы не будут обработаны этим сервером):

https://github.com/carbonsoft/reductor_blockpages

После настройки страницы надо указать в двух местах адрес, доступный всем абонентам и АС «Ревизор»:

  1. Menu -> Настройка алгоритма фильтрации -> URL страницы-заглушки.
  2. Menu -> Настройка алгоритма фильтрации -> IP для DNS-ответов.

На сервере с Carbon Reductor

Не рекомендуется при большой нагрузке. (1000+ абонентов/несколько ревизоров).

Включить можно в «menu -> Настройка алгоритма фильтрации -> Заглушка на этом сервере».

После настройки страницы надо указать в двух местах адрес, доступный всем абонентам и АС Ревизор:

  1. Menu -> Настройка алгоритма фильтрации -> URL страницы-заглушки.
  2. Menu -> Настройка алгоритма фильтрации -> IP для DNS-ответов.

Почему нельзя использовать нашу страницу заглушку в продакшене

  • Она изначально предназначена исключительно для целей тестирования работоспособности продукта во время демо-периода, а также в являлась временным решением многомесячной давности.
  • Канал до неё имеет ограничение в 100 Мбит/с, ресурсы процессора тоже имеют свои ограничения. Мы не можем гарантировать её 100% доступность.
  • Также мы не можем гарантировать то, что ревизор не опознает недоступность нашей страницы-заглушки как доступность блокируемого сайта.

В конце концов, отправлять трафик абонентов и ревизора на нашу заглушку — лишняя нагрузка аплинков, да и интернет штука далекая от 100% надёжности. В общем, единственный способ правильно решить проблему — разворачивать заглушку на отдельном сервере.

Если Вы пропустили статью о том, что обязательно нужно настроить, чтобы не иметь пропусков — пройдитесь по ней.

Релиз Carbon Reductor 7.4.9 и 8.0.0

Релиз Carbon Reductor 7.4.9 и 8.0.0

Доброго времени суток!

В этом месяце у нас сразу два релиза. Теперь Carbon Reductor доступен на платформе Carbon, проверенной годами эксплуатации Carbon Billing 5. Carbon Reductor 8 успешно внедрён у 5 провайдеров, в него полностью портированы все исправления и доработки из версии, поставляемой в RPM для CentOS (Carbon Reductor 7). Но обо всём по порядку.


Carbon Reductor 7.4.9 300


Файрвол

Снижена нагрузка на модуль SNI-фильтрации

Теперь туда попадают только пакеты длиннее 60 байт. SNI всё равно не может оказаться в SYN/RST/FIN и других коротких пакетах без данных, но полагаться только на TCP-флаги было бы неправильно.

Изменения и исправления в блокировке HTTPS по IP

При отключении блокировки HTTPS по IP не работала блокировка адресов вида https://1.2.3.4.ru/something. Опция «Блокировать HTTPS по IP» немного изменила своё поведение:

  • включено: Блокировать HTTPS по IP для всех записей в едином реестре, где встречаются HTTPS-ссылки;
  • выключено: Блокировать HTTPS по IP только в случаях, если иначе заблокировать ресурс невозможно.

«Под капотом» это выглядит как разделение списка IP в файрволе на 2 ipset:

  • `ip_https` — ресурсы, которые можно заблокировать только по IP, используется всегда, независимо от опций;
  • `ip_https_plus` — дополнительные IP адреса для блокировки на портах HTTPS. Включается опцией «Блокировать HTTPS по IP».

Опция «Использовать nslookup» использует резолвер для расширения списка IP для ipset `ip_https_plus`.

Исправлено: не блокировались нестандартные порты HTTPS при включении опции «оптимизация подсистемы роутинга»

На самом деле, пока всего 1 порт. Однако, несмотря на то, что это исправлено — рекомендуем всё равно эту опцию выключить, она является сильно устаревшей и даёт мало пользы в большинстве случаев.

Затем не забудьте проверить изменение нагрузки на сервер (до и после выключения и рестарта) с помощью утилиты `/usr/local/Reductor/bin/net_rx_top.sh`, оно не должно превышать 25000 прерываний на ядро. В противном случае необходимо решать проблему с производительностью, лучше горизонтальным масштабированием.

Опции «Использовать SNI» и «Использовать NOTRACK» теперь включаются при обновлении автоматически

Единоразово, затем их можно отключить. Благодаря тому, что свой IP адрес мы удаляем в цепочке `raw -> PREROUTING -> mirror_info` опция NOTRACK теперь полностью безопасна. SNI-модуль успешно прошёл экспериментальную фазу и хорошо себя зарекомендовал более чем на 80 серверах, перед тем как быть включённым по умолчанию.

Прочие исправления

  • редуктор не стартовал при основном маршруте через девайс, а не IP шлюза;
  • использование дополнительных правил фильтрации https приводило к невозможности старта Reductor;
  • DNS-спуфинг мог зацикливать HSTS-прокси, если его трафик попадал в зеркало. Сейчас трафик с его IP игнорируется.

Утилиты для отладки и обработка списков

Работа обработки списков URL ускорена в 7 раз

Однажды, в выходные была предпринята попытка всё переписать на Go, которая закончилась профилированием, изменением 8 строчек в одной функции.

Результаты замера скорости обработки списков. Окружение: CentOS 6, KVM, 2 виртуальных ядра, 1Gb RAM, виртуальный диск (qcow2, writeback), список `rkn.url_http`, на момент замера 39000 URL.

  • Старая версия, python 2.6: 0m21.163s
  • Старая версия, pypy2.7: 0m5.310s
  • Новая версия, python2.6: 0m3.312s
  • Новая версия, pypy2.7: 0m3.560s

Один из наиболее важных вариантов экранирования пропускался

Ошибка, связанная с всего-лишь одной запятой, имелась с ноября 2015 года, но никем не была замечена. Имеется только один подтверждённый факт пропуска одного URL. В итоге число предобработанных для загрузки в ядро на выходе повысилось с ≈43000 до ≈52000 (для алгоритма match-модуля это на самом деле крайне незначительно влияет на производительность).

Небольшое, но важное исправление в связке с маршрутизаторами по BGP

Скрипт для блокировки/разблокировки ресурсов по IP на маршрутизаторах некоторое время не мог найти файл `ip_block.load`. Это исправлено, но возможно имело последствия, так что всем использующим интеграцию с маршрутизаторами средствами BGP рекомендуется обновить хук и проверить, что успешно анонсируются все IP адреса. В противном случае может помочь инструкция.

Прочее

Добавлено:

  • утилиты для отладки: `support_info.sh` теперь показывает статистику по дисковому пространству;
  • утилиты для отладки: утилита показывающая информацию по доступным обновлениям. Запуск — `/usr/local/Reductor/bin/check_update_human.sh`;
  • выгрузка списков: возможность выполнять клиентские хуки до начала выгрузки. В `userinfo/hooks/rkn_download.sh` достаточно определить функцию `client_pre_hook()`.

Исправлено:

  • утилиты для отладки: скрипт `url_info.sh` пытался искать данные в старых списках;
  • мастер настройки сети: L3 vlan схема не работала из коробки, не хватало опции `VLAN=yes` в шаблоне конфига интерфейса;
  • обработка списков: списки Carbon Soft для временных решений качались в старом формате -> не использовались;
  • обработка списков: не выкачивались сигнатуры для URL с несколькими пробелами;
  • обработка списков: не работала DNS-фильтрация при пустых строках в списках провайдеров. Помимо этого обработка стала активнее и явнее отсекать невалидные данные, например URL с доменами первого уровня при обработке списков URL.

Резолвер

Не удалялись временные файлы

Могло привести к переполнению `/tmp/`, особенно там, где используется реальный `tmpfs`. Благодаря своевременному критическому обновлению проблема успела проявиться только на двух наблюдаемых мониторингом серверах, у одного из которых было отключено критическое обновление, где была устранена вручную.

Прочие исправления логики после переезда на новые списки

Теперь создаётся симлинк `/usr/local/Reductor/lists/https.resolv` для совместимости с `named fakezone generator`

С ним уже найдено и исправлено несколько багов:

  • домены для отправки в прокси по DNS могли начать блокироваться по IP из-за попадения в https.resolv;
  • запуск старого резолвера в cron.d приводил к занулению https.resolv;
  • создание https.resolv происходит даже если резолвер выключен;
  • мог быть заблокирован IP адрес страницы-заглушки.

Тесты

«Service reductor restart» всегда возвращал нулевой код возврата, даже если писал об ошибках. Это исправлено, так что у нас появились pairwise тесты параметров фильтрации, позволяющие за полторы минуты достаточно достоверно подтверждать отсутствие проблем в опциях и сочетаниях опций (пусть и только попарных, но это в разы лучше, чем ничего), приводящих к невозможности запуска.

Исправления

  • satellite: Carbon Reductor Satellite стал проверять фильтрацию в 2.5 раза быстрее благодаря более оптимальному алгоритму разделения ресурсов для проверки между потоками;
  • satellite: не разбирался реестр из-за неполного конфига;
  • диагностика/ошибки настройки: не показывались подробности по проблемам: интеграция с маршрутизаторами, уведомления админа редиректом;
  • мастер настройки: не запускался выбор метода обновления списков РКН (web, xml, pem);
  • интеграция с биллингом: не работала при ненастроенной DNS-фильтрации.

Reductor 8.0.0 1395


Отличия от 7 версии

Форма поставки

Основным различием является форма поставки приложения. Теперь Carbon Reductor поделен на отдельные приложения: reductor, blockpage и https_proxy (последние два могут быть отключены), а на подходе и satellite. Каждое приложение поставляется в виде изолированного chroot-окружения, где есть всё, что ему необходимо для работы. Помимо них есть ещё два обязательных контейнера:

  • base — даже не контейнер, а просто папка с утилитами для управления остальными контейнерами и парой конфигов в корне;
  • auth — система авторизации в веб-интерфейс управления сервером.

Все обновления бинарные

Подтягиваются только изменения, скачивание обновления отделено от применения. Незначительным минусом является, пожалуй, размер приложений, но он заметен только при первой установке через медленный канал. В чём-то это схоже с Red Hat Atomic Host / Docker, только без заморочек с «только один запущенный процесс на контейнер» и нет ограничений на работу с ядром хост-системы. Есть и минус — больше нет возможности отката на предыдущую версию, но мы что-нибудь придумаем.

Установка происходит с универсального ISO-образа

Образ автоматически сделает надёжную разбивку дисков, используемую платформой Carbon, соберёт при необходимости софтрейд. Подробнее о процессе установки можно узнать в соответствующей статье в документации.

Диагностика происходит раз в 5 минут

А не так как ранее — раз в час. Запускается отдельно для всех приложений. Веб‑интерфейс редуктора в диагностике показывает все найденные предыдущими запусками ошибками с подробностями, но не запускает саму диагностику.

Изменения в бизнес-процессах

Теперь новые внедрения происходят только для Carbon Reductor 8, а все изменения в первую очередь вносятся в неё, затем при необходимости бэкпортируются в Carbon Reductor 7.

Точного плана по прекращению поддержки Carbon Reductor 7 ещё нет, но мы обязательно сообщим о нём за 2-3 месяца и поможем переехать. Переезжать, пока, стоит только согласовав всё с технической поддержкой, лучше предварительно обкатав восьмую версию на тестовом сервере и убедившись в том, что с ней нет никаких проблем. Проблемы возникшие в результате самостоятельного обновления на 8 версию на продакшне, пока что, не являются критическими и не подлежат приоритетному решению.

Автоматический переезд с 7 версии на 8 сложен технически, в основном из-за недетерминированности хуков и изменений в именовании цепочек файрвола. Тем, кто использует Carbon Reductor без дополнительных наработок, будет значительно проще всё это сделать. Многие типовые хуки уже были включены в виде опций в дистрибутиве, некоторые стали частично бессмысленными после изменения схемы файрвола (ACCEPT в mangle для zabbix например).

Изменения за последний месяц в 8 версии

  • исправлены многочисленные мелкие проблемы с путанницей в местоположении файлов (меняющиеся данные находятся на отдельном разделе);
  • адаптирована к платформе Carbon система диагностики, теперь каждая проверка находится в отдельном файле и может быть запущена без запуска остальных;
  • загрузка списков в ядро стала отказоустойчивее к проблемам отдельных модулей — если один из модулей по какой-либо причине не работает, хотя и должен:
    1. Будет выведено соответствующее сообщение об ошибке.
    2. Скрипт продолжит работу.
    3. Зальёт списки в остальные модули, если это удастся.
    4. Завершится с ошибкой.

Спасибо, что пользуетесь Carbon Reductor!

Как 100% проходить проверки АС «Ревизор»

Как 100% проходить проверки АС «Ревизор»

Мир вокруг меняется, бизнес-правила тоже. Законопроект на 21 ноября 2016 ещё находится на рассмотрении, но скоро будет принят. Теперь нужно внимательней следить за фильтрацией, иначе любой пропущенный пакет от «Ревизора» может обернуться штрафом. Всё, что мы можем делать со своей стороны мы делаем, но многие вещи может сделать только сетевой/системный администратор провайдера.


Пойдём по порядку


Настроить Satellite

Ревизор, конечно, всё проверяет, но когда проверка чревата штрафом спокойно отладить блокировку становится невозможно. Мы сделали аналог АС «Ревизор», проверяющий HTTP, HTTPS и DNS фильтрацию и не «стучащий» никуда, кроме почты администратора.

Обновить настройки зеркала трафика

Зеркалировать tcp/80, tcp/443 и udp/53 недостаточно. Нужно отправлять либо весь исходящий трафик абонентов, либо автоматически, или хотя бы периодически следить за тем, что нужно Carbon Reductor для анализа:

  • udp/53 — пока единственный порт на котором анализируется DNS трафик;
  • /usr/local/Reductor/lists/load/port_http.load — файл-список tcp dst портов;
  • /usr/local/Reductor/lists/load/port_https.load — файл-список tcp dst портов;
  • /usr/local/Reductor/lists/load/ip_port.load — файл-список связок из ip + dst портов (tcp и udp);
  • /usr/local/Reductor/lists/load/ip_block.load — файл-список IP которые надо блокировать целиком, независимо от IP.

Настроить свою страницу-заглушку

На отдельном сервере с IP-адресом, доступным абонентам. Это нужно для корректной работы DNS-спуфинга для блокировки по домену. Есть готовое решение.

Можно настроить это на самом Carbon Reductor, но по причине в конце статьи — лучше на отдельном веб-сервере.

Настроить SNI-фильтрацию

Появился довольно неплохой модуль, фильтрующий обращения к HTTPS ресурсам по домену, указанному в поле SNI в пакете Client Hello.

Menu -> «Настройка алгоритма фильтрации» -> «Фильтровать HTTPS по SNI»

Настроить DNS-фильтрацию

В реестре появилось много ресурсов, которые требуется блокировать по домену. А это означает не только по HTTP/HTTPS, а любое обращение к этому домену. В Carbon Reductor появился модуль DNS-спуфинга, вам нужно:

  1. Включить его.
  2. Указать IP-адрес настроенной выше страницы-заглушки.
  3. Указать IP-адрес ревизора (облегчит отладку пропусков блокировок, происходящую постфактум, если это произойдёт).

Интеграция с DNS-серверами

Когда DNS-запросы от Ревизора попадают в DNS-сервера провайдера, они:

  1. Не факт, что попадут в зеркало трафика Carbon Reductor.
  2. А если и попадут, то не факт, что DNS-сервер примет их из-за DNSSEC-валидации.

Поэтому хорошим решением будет подружить DNS-сервера с Carbon Reductor, научив его отвечать на блокируемые домены IP адресом страницы-заглушки с помощью простого набора скриптов:

  • unbound;
  • bind/named;
  • другие — либо брать bind/named и дорабатывать под свой dns-сервер по аналогии, либо отключать DNSSEC-валидацию.

Интеграция с маршрутизатором

Некоторые ресурсы необходимо блокировать полностью по IP по всем протоколам. Находясь в зеркале это сделать невозможно (хотя мы и присылаем соответствующие tcp/icmp ответы на такие обращения), поэтому блокировать их лучше на маршрутизаторе. Каким образом — на ваше усмотрение:

  1. Использование BGP/OSPF Remote Triggered Blackhole.
  2. Настроить отправку команд на оборудование для добавления/удаления/получения списка заблокированных IP в хуке events.sh.

Скорее всего почистить собственные белые списки

Быть добрым к клиентам и разрешить доступ к популярным заблокированным ресурсам типа «рутрэкера» или «порнхаба» было здорово, но теперь это может обойтись довольно дорого.

Настроить дополнительные параметры мониторинга

Первым делом стоит настроить хоть какой-то мониторинг за Carbon Reductor. Там внутри Linux, так что следить хотя бы за его состоянием будет уже хорошо. Но помимо прочего, стоит следить и за состоянием самого Carbon Reductor. Есть готовые плагины для collectd, на их основе можно соорудить аналоги для используемых вами систем мониторинга.

Вообще, мы подумываем сделать полноценный облачный мониторинг, куда сливать кучу подробностей о состоянии серверов и самостоятельно заниматься отслеживанием аномалий и т.д., но здесь есть много «privacy issues», по крайней мере, без согласия представителей провайдера мы это точно делать не можем.

Добиться идеального latency

В случае с анализом зеркала трафика важно, чтобы срабатывание происходило гарантированно быстро. Подробнее почитать про это можно по ссылке.

Кратко:

  • купить хорошие сетевые карты и обязательно настроить их;
  • отказаться от виртуальных машин и перейти на железо;
  • избавиться даже от единичных потерь на стороне зеркалирующего оборудования;
  • озаботиться тем, чтобы Carbon Reductor не занимался ничем кроме фильтрации, в том числе и веб-сервером;
  • отправить критически важных абонентов в разрыв через Carbon Reductor чтобы не беспокоиться о потерях на свитче;
  • заиметь резервный сервер Carbon Reductor (безвозмездно) и настроить схему с их взаимодействием, которая скоро появится;

Что мы планируем сделать со своей стороны в будущем:


Возможность разнести управление и фильтрацию по отдельным машинам

Управление — сервер, отслеживающий и поддерживающий одинаковую конфигурацию на всех фильтрующих серверах.

  • конфигурация;
  • веб-интерфейс;
  • выгрузки;
  • обработка списков;
  • принятие решения об обновлении себя и серверов фильтрации;
  • часть диагностики;
  • активация;
  • резолв;
  • взаимодействие с оборудованием провайдера;

Фильтрация — сервер который занимается только фильтрацией трафика, не имеющий никаких периодических задач.

  • фильтрация HTTP запросов;
  • фильтрация HTTPS по Client Hello и IP;
  • фильтрация DNS запросов без DNSSEC;
  • фильтрация других протоколов по IP / IP+port;
  • загрузка URL/доменов/IP при необходимости;
  • часть самодиагностики;

В итоге планируется получить схему, в которой возможно полностью избежать:

  1. Downtime при обновлениях, штатном обслуживании и перезагрузках, даже если необходимо заменить модули в памяти.
  2. Нагрузки на сервере фильтрации, способной привести к задержке ответа -> пропуску фильтрации.

Это потребует выноса Carbon Reductor для управления на отдельную машину, но к ней не будет требований по скорости работы! А это означает возможность его работы в виртуальных машинах, даже внутри легковесных Linux-контейнеров. И тут появляется возможность держать прямо на этом же сервере:

  • Carbon Reductor Manager;
  • Carbon Reductor Satellite;
  • Carbon Reductor Blockpage;

Задача их одновременной работы довольно сложная, но в этом нам может помочь описанное в следующем пункте.

Переход на Carbon Platform 5

Готовое и проверенное годами работы Carbon Billing 5 решение для работы нескольких бизнес-приложений. Бонусы:

  • привычно для разработки любым разработчиком Carbon Soft — проще привлечь для помощи коллег из других проектов;
  • привычно для обслуживания любым инженером техподдержки Carbon Soft — ответы в хелпдеске будут быстрее;
  • с платформой в бонус идут некоторые решения, повышающие общую надёжность системы:
    • watchdog;
    • дефолтные настройки Linux;
    • правильная разбивка дисков;
    • система обновления, позволяющая получать только полностью проверенные обновления, но оставляющая возможность совместно обкатывать новые возможности.
  • веб-интерфейс, который даёт авторизацию и возможность конфигурировать приложения в браузере. Более того, его использование снимает около 35% подзадач из эпичной задачи, которую мы пока отложили — веб-интерфейс 2.0.

Изменение схемы файрвола

Использование iptables для фильтрации трафика даёт много удобств (не надо писать свой ip/tcp-стэк, логика с проходом пакетов по цепочкам тоже довольно упрощает жизнь), но и много неудобств, одно из них — match-модули не могут возвращать что-то кроме boolean значений (true/false).

Это не подходит для классификации. По уму надо давно взять PF_RING / NETMAP / что-то ещё и переписать всё на работу в userspace, но по сути это разработка нового продукта и требует достаточно времени свободного от срочных задач. Увы, Роскомнадзор и Государственная Дума не спят и постоянно эти задачи создают.

Но недавно мы продумали одну хорошую идею — как дать возможность классификации нашим http / https / dns -модулям при использовании многих списков практически без потери производительности:

  1. Match-модули будут заниматься только проверкой факта, что пакет можно разобрать и проанализировать, в противном случае пакет отбрасывается.
  2. Поиск по базам доменов и URL будет происходить в TARGET модуле (который не будет получать «мусорных» пакетов), оставляющем метку с ID базы, в котором данный домен/URL найден.
  3. Далее, в зависимости от этой метки будет срабатывать отдельное правило с TARGET’ом-соответствующим редиректом. Сравнение меток — дело копеечное, так что правил можно будет вешать сколько душе угодно.

Оптимизация в работе модулей фильтрации


Если остались вопросы


Создайте заявку на тему в портале технической поддержке Helpdesk, мы поможем Вам с настройкой.

Релиз Carbon Reductor 7.4.9

Релиз Carbon Reductor 7.4.9

Всем привет!
Релиз 7.4.4 не был в публичном доступе, поэтому советуем почитать о предыдущем обновлении, чтобы восстановить хронологию.


В Carbon Reductor 7.4.9 внимание было сконцентрировано на стабилизации продукта, так как принятие закона, согласно которому АС «Ревизор» будет служить источником автоматических штрафов в случае пропусков не за горами.

Веб-интерфейс

Отображение новой структуры списков в веб-интерфейсе. Теперь списки разбиты по группам, для категорий: «обработанные», «Роскомнадзор», «Carbon Soft», «Резолвер» отображаются только существующие списки, для провайдеров отображаются все возможные списки, включая белые, с возможностью редактирования.

Разбор реестра

Так как реестр стал большим, «https» ресурсов в нём всё больше и больше, имеется несколько альтернативных методов блокировки по IP (DNS-фильтрация и SNI) резолвер теперь ставит в очередь на запросы не более 500 доменов, потому что большее число может приводить к превышению выделенного на его работу таймаута, одновременным запускам и другим проблемам. Логика работы резолвера такова, что спустя некоторое время после первого запуска он в основном запускает обработку ресурсов, которые действительно необходимо отрезолвить, то есть часто меняющие свои IP-адреса.

Миграция списков и обновление

Обновление с версии 7.3 на версию 7.4 приводило к минутному downtime фильтрации. Теперь такие задачи как обновление веб-интерфейса и миграция списков происходят до остановки фильтрации. Благодаря собранным данным об использовании списков (только названия и размер) удалось сделать обновление на версию 7.4 практически незаметным. Автоматически будут удалены только временные файлы от старой обработки списков, правильно названные файлы будут аккуратно переименованы и размещены в нужном месте, а о тех, с которыми не удалось разобраться автоматически администратор будет уведомлён по почте + заявкой в хелпдеске.

Обработка списков

Описанное здесь мало кого коснулось, так как версия 7.4 долго не была в полном публичном доступе, ибо обкатывалась, исправлялась и стабилизировалась шаг за шагом. Информация по большей части полезна тем, кто помогал её тестировать.

  • Ресурсы, которые необходимо блокировать по домену снова дополнительно блокируются модулем HTTP для подстраховки, так как число провайдеров, корректно настроивших фильтрацию по DNS довольно мало. Тем не менее, мы настоятельно рекомендуем настроить её в ближайшие сроки.
  • Неправильно обрабатывались URL, содержащие пробелы, что приводило к отсутствию блокировки в оригинальном виде (не фильтровались запросы к ним, совершённые с помощью CURL и старых версий IE).
  • Была возможность повредить кэш сигнатур при многократном одновременном запуске скрипта их обновления, что могло привести к отсутствию блокировки части HTTP-ресурсов.
  • Список минюста не блокировался, так как сохранялся в файл со старым расширением.
  • Мы решили обеспечить обратную совместимость с системами интеграции с DNS серверами провайдера на некоторое время (полгода, год). Запуск резолвера создаёт симлинк на список всех блокируемых доменов, даже если сам резолвер отключен, чтобы старый код, который мы не можем обновить, забирающий https.resolv не сломался. Рекомендуем его обновить на использование файлов load/domain_mask.load, load/domain_exact.load, load/domain_proxy.load и load/domain_hsts.load в соответствии с используемыми опциями.

Исправлено

  • Техподдержка: три дня не создавались автоматические задачи в хелпдеске. (Однако уведомления о проблемах администраторам по email продолжали и продолжают отправляться).
  • Веб-интерфейс: добавление кириллических записей в собственные списки через веб-интерфейс вызывало ошибку 502 Bad Gateway.
  • Не работала проверка содержимого собственных списков, в диагностике были указаны пути до старых собственных списков провайдера.
  • Устранён Segfault вспомогательного модуля фильтрации для прокси-серверов.
  • Улучшение в диагностике: удобочитаемый формат времени в ошибке диагностики «Проверка актуальности списков».
  • Утилиты для отладки: автоматическое удаление дампов requests/replies после их объединения в duplex экономит место на диске.
  • RPM: из репозиториев удалены все устаревшие дефолтные файлы.

Спасибо, что пользуетесь Carbon Reductor!

Среди наших клиентов