|
Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.
|
Изменения (27)
просмотр истории страницы... |
Сама по себе опция отвечает только за то, что модуль будет включен. Нужно обязательно выбрать одну или несколько задач для него. |
{info} Внимание\! В случае если используется 2 сервера с Carbon Reductor интеграция с DNS-сервером должна быть настроена только на 1 из них. {info} |
|
h2. Что нужно сделать на DNS-сервере h3. Установить rsync h4. Установка и запуск По умолчанию, утилита может быть не установлена в системе. Установка и последующий запуск выполняются следующими командами. h3. CentOS 8 |yum install rsync rsync-daemon| |systemctl enable rsyncd --now| h3. CentOS 7 |yum install rsync| |systemctl enable rsyncd --now| h3. Ubuntu/Debian |apt-get install rsync| h5. Модуль только добавляет подключаемые файлы в нужные места. В некоторых дистрибутивах в основном конфигурационном файле не настроено их подключение. Мы не хотим повредить возможные ручные настройки, поэтому это нужно сделать вручную. *Unbound 1.4.20 (CentOS 6)* Всё обычно работает "из коробки". Более подробно можно прочитать в нашей статье - [http://docs.carbonsoft.ru/113999917]. h3. Требования к оперативной памяти. Для работы может потребоваться двойной запас памяти, потребляемой при обычной работе, так как проверка корректности конфигурации потребляет столько же памяти, сколько и сам DNS-сервер. Проверка запускается сравнительно редко, не используется постоянно, поэтому для подстраховки от нехватки памяти лучше использовать swap. || Режим работы || Оперативной памяти || Размер swap || | Минимальное тестирование, без реальных абонентов | 2 Гб | 2 Гб | | Оптимальный объём на август 2020 года | 4 Гб | 2 Гб | | Запас на случай роста объёмов реестра до середины 2021 года | 6 Гб | 2 Гб | *Unbound 1.6.0 (Debian 9)* * Создать директорию /etc/unbound/local.d/ * В файле /etc/unbound/unbound.conf.d/unbound.conf в конце секции "server:" указать include: /etc/unbound/local.d/*.conf Важно: проверьте уровень логирования. Из-за частых автоматических изменений конфигурации файл /var/named/data/named.run может быстро разрастаться и привести к нехватке места на диске. h2. Что нужно сделать на Carbon Reductor h3. Авторизация по SSH-ключам С каждым DNS-сервером с которым настраивается интеграция должна быть настроена авторизация по SSH ключам. Для начала нужно подключиться по SSH к серверу с Carbon Reductor DPI X. Все дальнейшие команды нужно выполнять внутри контейнера Carbon Reductor DPI X, перейти в него можно командой. {code} chroot /app/reductor/ {code} Создаётся пара SSH-ключей: {code} ssh-keygen {code} Команда будет задавать вопросы, нам подходят значения по умолчанию, просто нажимаем Enter несколько раз. Ключи отправляются на DNS-сервера. К примеру IP адрес DNS-сервера - 10.15.0.24, тогда команда для отправки выглядит так: {code} ssh-copy-id root@10.15.0.24 {code} Обязательно проверьте, что после этого подключение по SSH успешно проходит и не запрашивает ввод пароля или yes/no. h4. Ограничения * После переустановки DNS-сервера потребуется повторный обмен ключами. Возможно потребуется удалить строчку с публичным ключом DNS-сервера из файла /app/reductor/root/.ssh/known_hosts. * Поддерживается только авторизация по SSH на стандартном порту 22 от имени пользователя root по публичным ключам. |
h2. Обязательные опции |
... |
h3. Тип DNS-сервера |
Выберите тип DNS-сервера, который вы используете. На текущий момент варианта два: вариант только один: |
* Unbound |
* Bind / Named |
|
Bind / Named хуже чем Unbound справляется с большим набором зон: потребляет больше оперативной памяти, перечитывание конфигурации занимает больше времени. Если вы планируете использовать Bind / Named для блокировки ресурсов, мы рекомендуем перейти на Unbound. Если использовать его только для разблокировки частично заблокированных ресурсов - проблем быть не должно. |
|
*Важно:* один сервер Carbon Reductor DPI X может работать только с одним типом DNS-серверов, т.е. тип DNS-сервера - глобальная опция. Если в вашей сети используются и Bind / Named и Unbound одновременно, рекомендуемое решение - использовать два сервера с Carbon Reductor DPI X. Лицензию на второй сервер Carbon Reductor DPI X можно получить бесплатно в качестве резервного сервера и установить его в виртуальную машину. |
|
... |
Возможно вы уже пользовались прототипом модуля, который устанавливался непосредственно на DNS-сервер и обращался к Carbon Reductor за списками. |
Сейчас схема изменилась - Carbon Reductor DPI X локально генерирует конфигурационные файлы с DNS-зонами для заблокированных сайтов и отправляет их на DNS-сервер. |
Если ранее использовался прототип - его необходимо отключить, удалив файл с параметрами запуска из директории /etc/cron.d/ на DNS-сервере. |
*Зачем это нужно, если есть модуль DNS-спуфинга?* # *Иногда трафик не анализируется.* Если пользователь обращается к DNS-серверу в локальной сети, его запросы могут не попадать в зеркало трафика, которое настроено для отправки трафика, уходящего за её пределы. Тем не менее трафик с последующим запросом будет заблокирован либо HTTP, либо SNI модулями, либо по IP. # Использование только *SNI*\-фильтрации *не перенаправляет на страницу-блокировки*. Анализировать HTTPS-трафик с точностью до домена можно и без DNS, но перенаправление на страницу блокировки - это понятнее для пользователя чем просто разрыв сессии. У него не возникнет лишних вопросов к службе технической поддержки провайдера. # *Снижение нагрузки* с сервера фильтрации. В случае успешной фильтрации с помощью DNS-сервера запрос пользователя будет направлен к серверу страницы блокировки. Этот трафик не анализируется модулями фильтрации. Особенно актуально это для крупных провайдеров с субпровайдерами - один сервер анализирует трафик от нескольких АС Ревизор, у которых частота запросов к запрещённым сайтам значительно выше, чем у обычных абонентов. |
h3. Избежание частичных блокировок популярных ресурсов |
Это новая возможность в Carbon Reductor DPI X. Схема работы следующая: |
Это новая, экспериментальная возможность в Carbon Reductor DPI X и сейчас она активно дорабатывается. |
|
*Схема работы:* |
# Модуль читает список частично заблокированных ресурсов. Его формируют администратор сервера и Carbon Soft, при использовании опции "Разблокировать популярные сайты в обход требований Роскомнадзора". # Домены резолвятся, получаем набор связок "домен" - "список IP" |
... |
# Снижается нагрузка на техническую поддержку провайдера |
h2. Что нужно сделать на DNS-сервере |
*Пример* |
|
Модуль только подкладывает подключаемые файлы в нужные места. В некоторых дистрибутивах в основном конфигурационном файле не настроено их подключение. Мы не хотим повредить возможные ручные настройки, поэтому это нужно сделать вручную. |
Ресурс example.com имеет 4 IP адреса: 1.2.3.1, 1.2.3.2, 1.2.3.3, 1.2.3.4. |
|
h3. Unbound 1.4.20 (CentOS 6) |
1.2.3.1 - заблокировали, т.к. этот адрес используется также ресурсом block-me.com, попавшим в реестр РКН. |
|
Всё работает "из коробки". |
Пользователь Петя обращается к этому ресурсу. Его DNS-сервер присылает ответ: |
|
h3. Bind / Named (CentOS 6) |
{code} ;; ANSWER SECTION: example.com. 299 IN A 1.2.3.1 example.com. 299 IN A 1.2.3.3 example.com. 299 IN A 1.2.3.4 {code} |
|
TODO |
ОС используемая Петей выбирает 1.2.3.1, запоминает этот адрес, чтобы не обращаться лишний раз к DNS-серверу. |
|
h3. Unbound 1.6.0 (debian) |
В результате дальнейшие обращения к этому сервису до тех пор, пока адрес не устареет в DNS-кэше ОС Пети будут блокироваться. |
|
* Создать директорию /etc/unbound/local.d/ * В файле /etc/unbound/unbound.conf.d/unbound.conf в конце секции "server:" указать include: /etc/unbound/local.d/*.conf |
В случае если используется модуль интеграции с DNS-сервером для разблокировки частично заблокированных популярных ресурсов, а Петя использует DNS-сервер провайдера произойдёт следующее. Carbon Reductor отрезолвит example.com, получит тот же ответ что и Петя: {code} ;; ANSWER SECTION: example.com. 299 IN A 1.2.3.1 example.com. 299 IN A 1.2.3.3 example.com. 299 IN A 1.2.3.4 {code} Т.к. 1.2.3.1 заблокирован, модуль создаст для example.com зону, например: {code} local-zone: "example.com" redirect local-data: "example.com A 1.2.3.3" local-data: "example.com A 1.2.3.4" {code} и применит её на DNS-сервере. Далее, когда Петя обратиться к DNS-серверу чтобы узнать IP адрес example.com он получит ответ: {code} ;; ANSWER SECTION: example.com. 299 IN A 1.2.3.3 example.com. 299 IN A 1.2.3.4 {code} и не заметит проблем с доступом к этому ресурсу. *Когда этот модуль не поможет* В случае если ресурс заблокирован полностью - модуль не сможет подобрать для него незаблокированные адреса по причине того, что их просто нет. h2. Как тестировать Включаем опцию menu->Reductor DPI X->Опции Carbon Reductor DPI X->"Разблокировать популярные сайты в обход требований Роскомнадзора". Для разблокировки ресурса нужно добавить домены в файл: {code} /var/lib/reductor/lists/provider/domain_fakezone_safe.load {code} В обоих случаях запустите {code} /opt/fakezone/bin/main.sh {code} При возникновении ошибок - создайте заявку в хелпдеске и приложите полный вывод команды main.sh. h2. Защита от ошибок В работе с unbound мы постарались минимизировать полное перепрочтение конфигурации DNS-сервера (reload). Сейчас оно будет вызываться только в следующих случаях: * Первый запуск с новым DNS-сервером (или если пропадут файлы используемые для синхронизации - /var/lib/fakezone/block.cache и файлы зон, созданные Carbon Reductor DPI X) * Необходима синхронизация (добавление и удаление) более 3000 доменов за раз. * Произошла ошибка при выполнении команды синхронизации. * Используются _и_ изменились списки для частичной разблокировки популярных сервисов. При сетевых сбоях во время синхронизации - она продолжит выполнение на DNS-сервере. Если выполнение будет прервано по какой-либо причине, ничего страшного - спустя 5 минут выполнение продолжится с того места, на котором закончилось. h3. Дублирующиеся зоны в Unbound Если для одного домена создано несколько зон - это приведёт к ошибкам. На текущий момент защиты от этого в модуле нет. Это происходит когда для него создаётся зона двумя из трёх возможных способов: * Для блокировки по домену * Для избежания частичной блокировки * Вручную администратором |