Nick lazily jumps over the full stack

Как заблокировать доступ к домену при выключенном VPN

Мне требуется, чтобы при выключенном VPN доступ к определенным доменам был заблокирован. Причем, блокировка должна работать для любой программы, не только для браузера. Поэтому я и говорю "домены", а не "сайты". Назовем такие домены Доменами Икс.

Решение задачи основано на этом ответе. Хотя настроить это всё не так уж и легко, сама идея проста:

  • Когда VPN включён, все DNS-запросы идут через VPN.
  • При выключенном VPN DNS-запросы направляются на собственный сервер DNS. Этот сервер должен быть настроен так, чтобы блокировать Домены Икс.

1. VPN

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

Ключевые этапы:

  • Арендовать недорогой виртуальный сервер (VPS). Вот примеры расценок за месяц: $3, €4, 189 ₽.
  • Настроить сервер OpenVPN по этой инструкции. Там есть руководства для разных версий Линукса.
  • Самое важное здесь — это сделать так, чтобы использовались DNS-серверы из настроек сервера OpenVPN. Смотреть опцию push "dhcp-option DNS <IP>".
  • Для подключения к VPN-серверу на компьютере использовать клиент OpenVPN.

2. Свой DNS-сервер

Здесь понадобится установить что-то для обработки DNS-запросов на компьютере. Всё, что нужно, это бесплатная программа dnscrypt-proxy. Она будет перенаправлять запросы дальше в интернет, блокируя при этом Домены Икс.

Этапы, указанные ниже, проверены на Windows, но для других систем всё должно быть примерно таким же.

  • Итак, на Windows надо установить Simple DNSCrypt. Это ещё одна бесплатная программа, которая на основе dnscrypt-proxy обеспечивает удобный интерфейс.
  • Заблокировать Домены Икс в настройках Simple DNSCrypt.
  • Убедиться, что сетевое соединение использует Simple DNSCrypt для отправки DNS-запросов. Для этого надо изменить DNS-сервер на 127.0.0.1 в настройках сетевого соединения. Должно сработать.

Теперь сетевое соединение по умолчанию будет использовать Simple DNSCrypt для отправки DNS-запросов. А когда VPN будет включён, то запросы будут идти через VPN. Это значит, что при выключенном VPN Домены Икс не будут доступны.

* * *

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

Посмотреть кадр из фильма: