Setenv opt block outside dns что это
iptables -P INPUT DROP
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -s -p udp -m udp --sport -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
спасет отца русской демократии от утечек. Параноикам можно также закрыть все исходящие соединения, кроме отправки пакетов на VPN-сервер.
Но также, к сожалению, ломает и входящие соединения внутри локальной сети, например, что совсем не подходит для большинства пользователей.
Так-то, в линуксе с этим успешно справляется firewalld. Классная штука, делит сетевые интерфейсы на зоны, как в Windows. Можно задать wi-fi-интерфейсу зону public, и по умолчанию все входящие соединения будут блокированы, а домашней сети назначить зону home. Причем зоны назначаются на каждое подключение через networkmanager, очень удобно.
Если:
1. клиент за NAT-ом
2. офис натится в ВПН
то «уязвимость» не должна работать, верно?
1. Если у вышестоящего роутера UPnP, и провайдер выдает роутеру маршрутизируемый адрес, то сработает.
2. Не сработает, вернее, не имеет смысла.
Кстати, вышел OpenVPN 2.3.9 с многочисленными исправлениями Windows-ошибок и долгожданной опцией --block-outside-dns, которая исправляет утечки DNS на Windows 8.1 и 10.
Опцию можно просто в конфиг прописать? Точнее конфиг после этого останется кроссплатформенным, т.е. будет всё так же импортироваться в Android, молча работать на Windows младше 8.1 и в поведении Linux тоже ничего не изменится?
Нет, конфиг не останется кроссплатформенным — другие платформы будут сообщать о незнакомой им опции.
Чтобы это работало так, как вы хотите, нужно либо посылать опцию с сервера (в этом случае клиенты игнорируют незнакомые опции), либо в клиентском конфиге использовать конструкцию с setenv opt:
Либо с ignore-unknown-option:
Я бы использовал версию с setenv, т.к. она поддерживается старыми клиентами, в отличие от ignore-unknown-option.
OpenVPN DNSLeak prevention (боремся с утечкой DNS)
Даже несмотря на то, что сервер OpenVPN пушит клиенту список DNS серверов для использования, клиент OpenVPN все равно может пытаться использовать DNS провайдера (или другие, заданные в системе).
Для минимизации риска использования не тех DNS, которые задаются сервером OpenVPN, в конфиг клиента добавляют опцию:
Теперь включите вышеуказанную опцию и перезапустите клиент. Вы должны увидеть разницу.
Бесплатные VPN vs свой VPN vs покупной VPN
Если вам нужен VPN срочно, быстро, здесь и сейчас и у вас нет оформленной подписки на каком-то VPN-сервисе, а своего сервера нет и подавно — тогда можете воспользоваться бесплатными VPN. Но затея, конечно, сомнительная.
Идем на сайты, скачиваем конфигурационный файл OpenVPN или получаем инструкцию по подключению, если вы используете другой VPN протокол.
Конфигурационный файл OpenVPN (с расширением .ovpn) нужно «скормить» вашему OpenVPN клиенту (о клиентах я написал ниже).
В чем преимущество бесплатных VPN?
Очевидно, что сама по себе бесплатность является плюсом. Также то, что такими серверами пользуются большое количество людей, прибавляет анонимности. На этом его преимущества заканчиваются.
Данные VPN очень нестабильные. Часто отваливаются. Очень медленные. Использовать их я бы рекомендовал, только если нужно срочно для чего-то и нет других возможностей. Но лучше что бы у вас не было таких ситуаций. Не исключено, что на таких серверах ведутся логи. Да и что на этих серверах ЕЩЕ происходит — никому не известно.
Для долгосрочного использования и по важным делам использовать крайне не рекомендую.
Можно воспользоваться собственным VPN. Нужно лишь купить сервер в интернете, зайти на него и поднять там OpenVPN по инструкции.
По сравнению с платными VPN-сервисами, свой собственный VPN выходит еще дешевле. Арендовать VPS (Virtual Private Server) можно чуть ли не за 2-3$/месяц в интернете. Что, по-моему, достаточно дешево — нужно лишь поискать.
Конечно же, свой VPN имеет и другие преимущества. Например, у вас будет root-доступ к серверу, поэтому вы можете отключить логирование и 100% быть уверенными в том, что логирование не ведется. В отличии от не своего VPN (бесплатные или платные), где у вас нет root-доступа, а это значит, что вы не можете никак быть уверенны в том, что логирование отключено, как бы вас не убеждали в этом эти сервисы. Вы сам себе хозяин на сервере. Это ваш VPN.
В отличии от бесплатных VPN, свой сервер будет работать гораздо быстрее и стабильнее. Это очень весомый плюс.
Также, поскольку у вас будет свой собственный сервер, туда можно прикрутить что-нибудь помимо OpenVPN, какой-нибудь другой сервис. Например, веб-сервер и разместить там небольшой сайт. Или можно сделать ее Tor-нодой, если провайдер разрешает. Tor relay разрешают чаще чем Tor Exit Node (выходную ноду).
Однако, существует проблема, что на сервере будете находиться вы и только вы один (если вы, конечно, не дадите использовать свой VPN еще пару сотен человек, но тогда и сервер нужен будет мощнее). Такой проблемы нет у бесплатных или платных VPN.
Еще одним минусом является то, что не каждый способен поднять себе VPN. Кто-то может плохо разбираться в IT и ему эти инструкции будут казаться совершенно дикими и непонятными. А кто-то будет совершенно не понимать что он делает вообще, это тоже не хорошо. В общем, настоятельно рекомендую использовать.
Можно воспользоваться услугами платных VPN сервисов которые тоже относительно недорогие (в среднем 5-12$/месяц).
Такие сервисы нужно искать, конечно же, в интернете. Большинство из них принимают к оплате Bitcoin, что несомненно круто. У многих есть свой OpenVPN клиент под какую-то операционную систему, но пользоваться их клиентами не очень рекомендуется из соображений безопасности.
Регистрируетесь и платите за месяц (или год, что выходит дешевле), скачиваете конфигурационный файл OpenVPN (.ovpn), скармливаете его вашему OpenVPN клиенту и всё, у вас будет VPN. Если у вас не OpenVPN, то читаете инструкцию на сайте сервиса по подключению с другим протоколом. Благо на этих сайтах у них хорошие инструкции и все предельной просто и понятно.
Из преимуществ можно выделить то, что каждый сервис предлагает сервера во многих разных странах, которые доступны вам. Между этими странами можно переключаться, вручную с .ovpn конфигами или как-то автоматически, если эта фича реализована в их клиенте. Тогда как на своем собственном сервере вы привязаны к одной стране, одному IP адресу. Не понравилась одна страна — переключились на другую.
Говорить про то, что эти сервера намного стабильнее, надежнее и быстрее по сравнению с «бесплатным» решением, я думаю не нужно. Доверие к платным сервисам тоже как-то больше, чем к бесплатным VPNам, хоть все равно нет гарантий.
По сравнению со своим собственным сервером, у вас нет root-доступа, посему контролировать процессы, которые происходят внутри вы не можете. Это значит, что никаких гарантий того, что логирование отключено, у вас нет.
Юридический момент в этом деле важен, но здесь я вам не помощник. Могу сказать лишь то, что использовать VPN расположенный в стране, где вы совершаете преступление, так себе затея. Так что, если вы работаете против России, заказывать сервера в этой стране или пользоваться услугами Российского VPN сервиса КРАЙНЕ нелогично.
Сначала обрадовался, т.к. при первой проверке утечка исчезла, но заметил, если перезагружаешь страницу нескольок раз, то утечка все равно вылазит.
- Вопрос задан более трёх лет назад
- 12494 просмотра
Options error: Unrecognized option or missing parameter(s) in [CMD-LINE]:1: block-outside-dns (2.3.10)
Добавление в конфиг тоже дает ошибку.
Fix dns leak
попробуйте добавить строку block-outside-dns в файл client.conf (по шаблону которого будут генериться клиентские конфиги) при этом конечно необходимо сгенерировать и доставить новые конфиги клиентам.
Также используйте последние версии openVpn как сервера так и клиентов.
Нужно передать DNS со стороны сервера на клиента , и на клиенте как уже сказали выше рубануть исходящий и входящий трафик на 53 порту везде кроме tun интерфейса.
Разумеется в этом случае адрес VPN сервера должен быть указал в цифровом виде. Не доменный.
iptables на клиенте будет выглядить как-то так:
кусочек конфига openvpn сервера:
Разумеется DNS должен быть проксирован или проброшен снаружи через туннель
Если всё ещё актуально, постучитесь в скайп - поясню/помогу.
В зависимости от типа DNS трафика.
Например так:
Но правильнее ставить задачу целиком. :)
Либо в уже готовый клиентский config добавить
block-outside-dns
Либо в серверный config
push "block-outside-dns"
VPN протоколы
Существует множество разных протоколов VPN.
OpenVPN — это протокол с открытым исходным кодом, использующий библиотеку OpenSSL — поддерживает большое количество шифров, очень безопасный, достаточно гибкий в настройке, может работать на любом порту, быстрый по скорости. Для работы необходимо стороннее ПО (клиенты OpenVPN под разные ОС, об этом ниже). Клиентский файл .ovpn может использоваться на любой ОС, в том числе и мобильных. Везде рекомендую вам именно OpenVPN.
IKEv2 — Тоже очень неплохой протокол с очень высокой степенью защиты, быстрый по скорости. Один из немногих протоколов, поддерживающий устройства Blackberry, но сам по себе поддерживает достаточно мало платформ. Этот протокол встретишь не так часто в VPN сервисах, в отличии от OpenVPN или L2TP. Исходный код не открыт, а это потенциально небезопасно.
PPTP — Этот протокол достаточно старый, один из самых первых. Быстрый по скорости и легкий в настройке, поддерживается почти всеми ОС, однако очень уязвимый и совершенно небезопасный. Несколько раз взламывался спецслужбами. Этот протокол использовать крайне не рекомендуется за исключением случаев, где вам не нужна защита. Это юзать не нужно ни в коем случае!
L2TP/IPsec — Уже лучше, чем PPTP. L2TP также поддерживается многими ОС, в том числе и мобильными и тоже достаточно прост в настройке. IPsec обеспечивает более стойкое шифрование, чем PPTP. Однако, L2TP/IPsec медленнее, чем PPTP или OpenVPN. Не обходит Фаерволлы.
SSTP — Протокол от Microsoft. SSTP с хорошим, стойким шифрованием, доступен только для операционных систем Windows. Как и OpenVPN, позволяет обходить Firewall. Проще в настройке, чем OpenVPN. Без открытого исходного кода, поэтому OpenVPN лучше.
Вывод: если есть возможность, использовать лучше только OpenVPN из-за открытого исходного кода, безопасности и относительной скорости. IKEv2 хороший протокол, безопасный, быстрый, стабильный, но с закрытым исходным кодом. L2TP/IPsec можно использовать вместо PPTP, а PPTP использовать вовсе не рекомендую. SSTP доступен только для Винды, тоже не очень рекомендую.
Клиенты OpenVPN под разные ОС
Поскольку OpenVPN не встроен по-умолчанию ни в одну популярную ОС, то требуется установить сторонее ПО - клиент OpenVPN.
Windows
Под Windows есть официальный клиент, называется OpenVPN GUI.
Далее, помещаете ваш .ovpn файл в папку config, в установленной папке OpenVPN. В общем, если устанавливать OpenVPN GUI по-умолчанию в папку Program Files, то адрес такой:
В эту папку кидаем конфиги .ovpn. Потом из трея можно запускать VPN. Все достаточно просто.
Linux
На Линукс в репозиориях вашего дистрибутива пакет скорее всего будет называется "openvpn" (еще может openvpn-client), и ставится следующим образом:
Если у вас Debian-подобные дистрибутивы (Debian, Ubuntu, Mint). Если у вас дистрибутив другой линейки - сами разберетесь как ставить.
Работает это следующим образом. У вас есть .ovpn файл, далее вы в терминале вводите команду:
где , собственно, путь до файла .ovpn.
Или можете скормить файл network-manager ' у.
MacOS
Android
Официальный клиент OpenVPN Connect под Android доступен для скачивания на Google Play
iOS
Для iOS клиент скачиваем из AppStore.
Клиенты, предоставляемые провайдером VPN. Некоторые провайдеры предоставляеют свой собственный OpenVPN клиент под разные ОС и платформы. Использовать их или нет, решать вам. Но это потенциально не очень безопасно.
Запрещаем весь траффик не через OpenVPN на клиенте
Правила iptables. Только для адептов Луникса. Что делать если VPN внезапно отключился? Или вы забыли его включить вообще? Обычно, когда внезапно обнаруживаешь, что траффик идет не через VPN, и при этом ты не используешь Whonix, то через 3 секунды понимаешь что твои штаны полны говна. Что нужно делать чтобы явно ограничить весь траффик?
А вот и сами правила:
Было изменено на:
Есть у нас правила, че дальше? Теперь открываем терминал в вашем Линуксе
Поместим туда все правила:
В самом верху файла пишем:
Далее, правила из кода выше. Копируете - вставляете, меняете
там где VPN_IP на IP вашего сервера (указан в .ovpn конфиге).
Запсукае скрипт из под рута или sudo:
Теперь у нас применились правила. Можете проверить - без VPN инет работать не будет. Этот скрипт можно запускать каждый раз. А можно сохранить правила:
И сделать сервис iptables автозапускающимся при загрузки системы:
На этом все. В этой статье мы рассмотрели достаточно простенькую и вполне себе работоспособную схемку, нужную для того, чтобы сделать шаг в более красивую и богатую жизнь.
VPN обычно используют разные предприятия и организации, что бы объединить разные её филиалы или удаленных пользователей, которые находятся физически далеко друг от друга, в одну сеть. Но нам интересно не это.
VPN позволяет выходить в сеть от пользователя с другим IP адресом, возможно, другой страны, что дает возможность обходить разного рода блокировки или воспользоваться ресурсами, которые доступны только для пользователей определенных стран (допустим существует сайт, который доступен только для пользователей Германии).
Также, если ваш провайдер не предоставляет вам статический IP адрес, VPN может быть использован для создания такого выделенного IP.
Для нас VPN является отличным средством анонимизации и защиты нашего трафика от провайдера.
VPN будет скрывать от вашего провайдера ресурсы, которые вы посещаете. А от ресурсов, которые вы посещаете, VPN будет скрывать ваш реальный IP адрес.
VPN часто используется как средство для сокрытия Tor-траффика от вашего провайдера, ведь запуская VPN, а затем Tor Браузер, ваш трафик имеет цепь VPN -> Tor, что означает, что факт использования Tor скрыт от провайдера, в ваш настоящий IP адрес не палится перед первой (входной) нодой сети Tor.
Поднимаем OpenVPN скриптом
На Github существует Open Source скрипт, который позволяет быстро и легко поднять OpenVPN сервер на вашем VPS. Скрипт называтся openvpn-install, и вот ссылка на Github. И этого скрипта есть куча форков, которые вы можете изучить.
Посмотреть исходный код можно здесь. Приступим. Работаем под пользователем root или суперпользователем.
Для начала, обновим систему:
Если вы уже пытались поднять OpenVPN вручную, но у вас ничего не получилось, то нужно сначала его полностью снести. Удаляем openvpn:
и установим нужные пакеты:
Скачиваем скрипт в домашнюю папку root:
И вы попадете в так называемый Инсталятор. Где нужно будет отвечать на вопросы или что-то вписывать. Для перехода на следующий этап установки жмите Enter.
Первый делом, предложит ввести внешний IP адрес, но вероятнее всего скрипт сам его определит:
Следующий этап, выбрать протокол. Я жму 1 и выбираю UDP. Далее, выбираете порт. Я поставлю, например 14000. После этого предложит выбрать DNS сервера. Выбор будет из Google, OpenDNS или текущих, которые на VPS и еще каких-то. Я выбираю OpenDNS, жму 3. После этого предложит ввести имя клиента. Я введу "pp-ruloh". Далее начнется скачивание-утановка пакетов, генерация ключей, сертификатов и конфигурационных файлов. когда все закончится, он поместит конфиг. в домашнюю папку юзера, от имени которого запсукался скрипт. То есть, сейчас конфиг лежит по адресу:
Собственно, на этом конфигурация OpenVPN скриптом завершается. Можно уже сейчас взять новый конфиг и использовать. Интересно, чего он там такого сгенерировал вам, посмотрим на конфиг pp-ruloh.ovpn:
(без ключей и сертификатов)
Все вроде бы нормально, да лучше auth SHA512 явно указать. Поэтому добавим
Обратите внимание, что скрипт уже запихнул фичу для предотвращения утечки DNS под клиент Windows:
Если у вас Linux или MacOS - эту строку лучше закомментировать.
Теперь посмотрим на серверный конфиг server.conf:
Здесь также добавляем auth SHA512 (а то работать не будет, если на клиенте указан а на серве нет), делаем verb 0. Также нужно проделать следующее. Нужно закомментировать строку.
Где-то выше писал, зачем он нужен. Получилось так:
Берем клиентский файл-конфиг и помещаем на ваше устройство. Об этом я писал выше.
При повторном запуске скрипта из-под рута:
Скрипт предложит создать нового клиент, удалить существующего (не сможет больше коннектиться) или удалить OpenVPN.
Для Windows 8 и 10
это не совсем так (а что вы хотели?). В этих ОС Microsoft заботится о своих неразумных пользователях, которые, очевидно, не желают использовать именно те настройки, которые они настроили :) А именно, Windows 8 и 10 рассылают dns-запросы по всем возможным интерфейсам в системе и используют самый быстрый ответ, в результате чего вероятность незапланированного использования dns вашего провайдера вместо dns openvpn-сервера весьма высока. Этот момент описан здесь (автор ValdikSS).
Отследить проблему (и возможные варианты решения) можно согласно инструкции так:
Определяем интересующий нас подключенный интерфейс (в данном примере по-английски, на момент написания русской версии не было):
> netsh interface show interface
Очищаем кеш резолвера dns:
Запрещаем dns сервер на этом интерфейсе:
> netsh interface IPv4 set dnsserver "Local Area Connection" static 0.0.0.0 both
После отсоединения возвращаем настройки dns обратно:
> netsh interface IPv4 set dnsserver "Local Area Connection" dhcp
Снова чистим кеш резолвера:
По крайней мере, это позволит протестировать, в чем проблема и принять соответствующие меры.
Как вы понимаете, аналогичные проблемы могут быть и при использовании VPN других вендоров. Просто на это можно обращать внимание. А можно и не обращать :)
Почтовый сервер Шифрование Squid 3proxy VPN Mikrotik Настройка сервера Виртуальные машины kvm Защита почты Резервное копирование Групповые политики SELinux WDS IPFW OpenVPN firewalld systemd Mobile libvirt Samba WiFi Iptables NAT Lightsquid Remote desktop Postfix Dovecot Удаление данных Софт Безопасность Настройка прокси Winbox User agent Хостинг Передача данных Онлайн сервисы Privacy LetsEncrypt VPN сервер RRDTool sendmail Rsync Linux SSH Система Windows Синхронизация Облако fail2ban FreeBSD
Если вы будете юзать этот конфиг на Windows, в конфиг добавляем следующую строку:
Да, вот так просто. Под MacOS с Tunnelblick все норм.
А под Linux есть файл update-resolv-conf, который находится в папке /etc/openvpn на клиентской машине. Файл может иметь название или update-resolv-conf или update-resolv-conf.sh. Поэтому на клиентском Линукс вводим в терминале:
И узнаем название файла.
Далее, в конфиг .ovpn нужно вставить следующие строки:
где update-resolv-conf - название файла, которое вы получили выше.
Перекидываем конфиг .ovpn с серва на клиент.
Можете просто открыть клиентский конфиг, скопировать все полностью и вставить у себя на машине, окда.
Если вы создавали пользователя и запрещали ssh коннект от рута, то первым делом нужно поместить .ovpn конфиг в домашнюю папку созданного пользователя. У меня это был pp-ruloh
Изменить права у файла:
Linux. Будем юзать sftp.
где 1488 - порт на котором слушает sshd.
Как законнектились, мы уже будем в домашней папке pp-ruloh. Можем посмотреть файлы - вводим ls.
Windows, linux, MacOS: скачиваем программу для работы по FTP - FileZilla
и подключаемся к серву по sftp. Нужено будет указать port sftp (у меня 1488), пользователя (pp-ruloh, ибо руту зарпетили). Копируем файл куда хотим и радуемся. Как пользоваться программой разберетесь сами.
Читайте также: