Настройка OpenVPN на Windows Server 2008/2012

Как отключить интернет при сбое VPN

Зачастую интернет, особенно мобильный, спешит «обрадовать» нас своей нестабильной работой. Будь это плохой уровень сигнала, работа с лептопа в движении/на авто или попросту закончился пакет услуг. При обрыве интернета обрывается и VPN-соединение. В этот момент, если Вы не успели принять меры или переподключить последний, все программы на вашем компьютере активно начнут лезть в интернет, но уже с Вашего реального IP адреса.

Настройка OpenVPN на Windows Server 2008/2012

Засвет IP может повлечь за собой последующую деанонимизацию и определение Вашего местоположения. В добавок, внезапная смена IP адреса может может привести к немедленной блокировке аккаунта платёжной системы…

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

Помни, доверять нужно только себе и никому больше!

Важно! Данный мануал актуален только для Ваших ноутбуков или PC! Применяя данную методику на выделенный сервер, Вы собственноручно лишаете себя доступа к нему! Так же, чтобы ничего не мешало корректной работе, рекомендуется удалить стороннее программное обеспечение со встроенной функцией firewall.

Приступим!

Windows 7 / 8.1 / 10 (только OpenVPN) + Бонус! Блокируем утечку DNS-адресов.

Способ заключается в правильной настройке встроенного брандмауэра (файрволла), где потребуется задать правило «Разрешить исходящее подключение для OpenVPN, запретить входящие и исходящие для всего остального». Способ тестировался на Windows 7 и 8. Теоритически, должно заработать и на десятке.​

I. Включаем службу «Брандмауэр Windows».

Для того чтобы реализовать задуманное, нужно сперва убедиться, что на Вашем компьютере запущена служба «Брандмауэр Windows». Для этого нужно зайти в «Менеджер служб Windows» любым удобным для Вас способом.​

  • Способ 1: Пуск -> Выполнить -> Ввести строчку «services.msc» (без кавычек) -> Нажать Enter.
  • Способ 2: Пуск -> Панель управления -> Категория «мелкие значки» -> «Администрирование» -> «Службы»
  • Способ 3: Ваш собственный способ

Ищем в списке нужную нам службу под названием «Брандмауэр Windows», выделяем, жмём правой кнопкой мыши. В выпадающем меню нажимаем «Свойства».

Тип запуска -> «Автоматически» -> Запустить -> Применить -> Ок. Закрываем окно настройки служб, оно нам больше не понадобится.​

II. Создаём правила для брандмауэра.

Открываем настройки брандмауэра любым для удобным для Вас способом.

  • Способ 1: Пуск -> Выполнить -> Ввести строчку «wf.msc» (без кавычек) -> Нажать Enter
  • Способ 2: Пуск -> Панель управления -> Категория «мелкие значки» -> «Брандмауер Windows» -> меню слева «Дополнительны параметры»
  • Способ 3: Ваш собственный способ​

1. Кликаем на «Правила для исходящего подключения»

2. Создать правило

3. «Для программы»

4. «Далее»

5. «Путь программы»

6. Обзор

7. Ищем и указываем исполняемый файл OpenVPN, который находится по пути «C:\Program Files\OpenVPN\bin\openvpn.exe». Название файла «openvpn.exe»

8. Открыть

9. Далее

10. Разрешить подключение

11. Далее

12. Оставляем всё как есть, далее

13. Присваиваем любое имя для нашего правила и нажимаем «Готово».

Таким образом мы создали нужное нам правило. Переходим на следующий этап.

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

1. Кликаем на «Брандмауэр Windows в режиме повышенной безопасности»

2. Свойства брандмауэра Windows

3. Профиль домена -> «Исходящие подключения» -> Блокировать

4. Тоже самое повторяем для вкладки «Частный профиль»

5. Во вкладке «Общий профиль», напротив, разрешаем исходящие соединения (стоит по умолчанию)

6. Жмём ОК.

IV. Меняем тип текущего подключения на «Публичный».

Нам осталось изменить тип текущего подключения на «публичный». Делать это необходимо для каждой новой сети, иначе наше правило попросту не будет работать и пропускать утечку трафика при обрыве VPN! Да, это Windows, детка (удаляй как можно скорей и ставь Linux). Опишем, как это сделать на Windows 7.

Для Windows 8-10 требуется иные манипуляции, руководство к которым Вы сможете найти на https://answers.microsoft.com/ru-ru.

Открываем центр управления сетями и общим доступом любым для удобным для Вас способом.

  • Способ 1: Пуск -> Выполнить -> Ввести строчку «control.exe /name Microsoft.NetworkandSharingCenter» (без кавычек) -> Нажать Enter.
  • Способ 2: Пуск -> Панель управления -> Категория «мелкие значки» -> «Центр управления сетями и общим доступом»
  • Способ 3: Ваш собственный способ

1. Находим Ваше активное соединение. Например «Сеть 2» и кликаем ссылку под ней

2. Обязательно ставим галочку «Больше не задавать этот вопрос…»

3. Меняем тип на «Сеть предприятия», просто кликнув по ней левой кнопкой мыши

4. Жмём закрыть

V. Предупреждение! ВАЖНО!

  • Если внезапно появится всплывающее окошко файрвола, он же запрос на «разрешить ли этой программе доступ в сеть?», то прежде нажать «Разрешить», убедитесь, что Вы сняли галочку с «Публичная сеть»! В противном случае, приложение будет «протекать».
  • Никогда не разрешайте иным программам автоматически добавлять правила для firewall! Они могут навредить установке!

VI. Универсальный способ блокировки утечек DNS.

Начиная с версии 2.3.9, разработчики OpenVPN реализовали встроенную функцию по блокированию локальных DNS серверов. Чтобы воспользоваться ею, Вам всего-лишь необходимо отредактировать конфигурационный файл, открыв его блокнотом, и добавить в конец конфига строчку «block-outside-dns» (без кавычек), после чего сохранить, переподключиться и протестировать. Сделать это можно на данном сайте https://dnsleaktest.com/

Готово! Проверить очень просто — браузер и мессенджеры должны не установить соединение до тех пор, пока не подключите VPN.​

Отключение интернета при обрыве VPN (Linux). Блокируем утечку DNS-адресов​.

Способ заключается в установке и настройке простейшего файрволла для новичков — ufw (UncomplicatedFirewall) на Debian-подобных дистрибутивах. Никаких непонятных iptables цепочек и прочих джунглей.

I. Установка ufw

ufw можно найти практически в любом debian-based репозитории, следовательно нам не потребуется подключать новые.

1. Запускаем терминал, вбиваем команду, отвечающую за обновление кэша пакетов и непосредственно установку ufw:

$sudo apt-get update && sudo apt-get install ufw -y

II. Добавляем и применяем правила.

Для начала нам потребуется узнать IP-адрес VPN сервера, чтобы добавить его в цепочку правил для исходящих соединений.

  • Открываем конфиг любым блокнотом
  • IP адрес VPN сервера находится напротив строчки «remote». Если у Вас вместо IP адреса указано доменное имя, то нужно его преобразовать и заменить в конфиге. Для этого выполните в терминале команду:

Код:

$nslookup «Доменное имя»

  • Как пример, может получиться вот так:

Код:

$nslookup linux-cryptofree.cryptostorm.net

Server: DNS-SERVER

Address: DNS-SERVER#53

Non-authoritative answer:

Name: linux-cryptofree.cryptostorm.net

Address: 0.0.0.0

Из доменного имени «linux-cryptofree.cryptostorm.net» получили IP адрес 0.0.0.0, записали или запомнили его.

Если в Вашем конфиге 4 домена, то нужно зарезольвить все поочерёдно. Если конфиг содержит несколько IP адресов — всё так же, выписываем сразу все.

Изредка встречается обратная ситуация, когда доменное имя одно, а ответ содержит сразу 2-5-10-20 IP адресов. Их тоже нужно выписать все! Если вы используете несколько конфигов… Ну вы поняли.

  • Далее добавим само правило.

Первая строка отвечает за блокирование всех входящих подключений. Вторая — исходящих. Третья и четвёртая позволяют беспрепятственно ходить пакетам через локальный интерфейс VPN адаптера.

Остановим внимание на пятой строчке. Именно этой командой мы разрешаем исходящее подключение до VPN сервера. Вместо «0.0.0.0» требуется прописать IP адрес, который мы получили в 1-3 пунктах. Если у Вас получилось несколько IP адресов, то пятую строку нужно повторить несколько раз, подставляя каждый IP адрес по отдельности. Шестой строчкой мы включаем наш firewall и добавим наше правило в автозагрузку.

Код:

$sudo ufw default deny outgoing

$sudo ufw default deny incoming

$sudo ufw allow out on tun0 from any to any

$sudo ufw allow in on tun0 from any to any

$sudo ufw allow out from any to 0.0.0.0

$sudo ufw enable

III. Блокируем DNS утечки.

  • Установим пакет resolvconf

Код:

$sudo apt-get update && sudo apt-get install resolvconf -y

  • Данный скрипт поставляется с последними версиями пакета OpenVPN. Проверьте, вполне возможно Вам не придётся его создавать. Если файл на месте, переходите сразу к пункту 4.

Создадим файл с именем «update-resolv-conf» в каталоге «/etc/openvpn/»

Код:

$sudo touch /etc/openvpn/update-resolv-conf

  • Отредактируем его и добавим нижеприведённый bash-скрипт:

Код:

$sudo nano /etc/openvpn/update-resolv-conf

После того, как нажали Enter, перед Вами появится окошко текстового редактора «nano». Копируем отсюда скрипт и вставляем в терминал, можно через правую кнопку мыши -> «Вставить». Для того чтобы сохранить файл, нажмите хоткей «Ctrl + X», затем напишите букву «Y» и нажмите Enter. Готово, осталось выдать права на выполнение. Прописываем:

Код:

$sudo chmod +x /etc/openvpn/update-resolv-conf

  • Редактируем OpenVPN конфиг любым удобным для Вас способом, добавляем в конец 3 строчки.

Код:

script-security 2

up /etc/openvpn/update-resolv-conf

down /etc/openvpn/update-resolv-conf

Сохраняем, переподключаемся и тестируем (для тестирования подойдет сайт: https://dnsleaktest.com/)

Вот и все)

Click to rate this post!
[Total: 4 Average: 4.5]

Специалист в области кибер-безопасности. Работал в ведущих компаниях занимающихся защитой и аналитикой компьютерных угроз. Цель данного блога - простым языком рассказать о сложных моментах защиты IT инфраструктур и сетей.

Leave a reply:

Your email address will not be published.