Ниже я расскажу о том, как заменить ваш VPN провайдер собственным сервером, развернутым на DigitalOcean с использованием WireGuard.
В чем главная проблема VPN провайдеров? Вы не знаете что они делают с вашими данными.
Очень мало VPN провайдеров прошли сторонний аудит и почти никто их них не открывает свой код.
Даже в случае открытого кода и пройденного аудита, для параноиков вопрос про то, что же происходит на стороне провайдера — остается открытым.
Решение достаточно простое — развернуть свою VPN ноду.
Я хочу сделать это просто
В сети существует достаточно много статей о том, как настроить WireGuard, вот некоторые из них:
- https://www.wireguard.com/quickstart/
- https://www.stavros.io/posts/how-to-configure-wireguard/
- https://grh.am/2018/wireguard-setup-guide-for-ios/
- https://www.digitalocean.com/community/tutorials/how-to-create-a-point-to-point-vpn-with-wireguard-on-ubuntu-16-04
- https://www.linode.com/docs/networking/vpn/set-up-wireguard-vpn-on-ubuntu/
Но что, если я просто хочу установить WireGuard, без глубокого изучения документации?
Я просто хочу наиболее простым и быстрым способом развернуть VPN сервер и начать использовать его.
Все что мне нужно от инфраструктуры:
- 1 сервер
- 5–10 клиентов для меня и моих близких
Ниже — инструкция, как сделать это быстро и просто.
Создайте дроплет
Сначала вам нужно создать новый дроплет на DigitalOcean: https://www.digitalocean.com/docs/droplets/how-to/create/
Мне подходит самый простой c Ubuntu 18.04, который стоит 5$ в месяц.
Не забудьте добавить свой SSH ключ, чтобы иметь доступ к дроплету: https://www.digitalocean.com/docs/droplets/how-to/add-ssh-keys/
Замечание. DigitalOcean — не единственно возможный вариант. Вы можете выбрать любой облачный сервис на ваш вкус.
Установите сервер WireGuard и создайте все необходимые конфигурации
Чтобы создать все необходимые конфигурации автоматически, вы можете использовать скрипт: wg-ububtu-server-up.sh, который:
- установит весь необходимый софт
- настроит правила iptables и включит IPv4 forwarding
- установит unbound в качестве dns resolver
- создаст серверную конфигурацию и необходимое количество клиентских конфигураций
- запустит WireGuard
Установите соединение с дроплетом через SSH и выполните следующие команды, чтобы скачать и запустить скрипт (используйте IP адрес вашего дроплета, вместо xxx.xxx.x.xx):
ssh root@xxx.xxx.x.xx
wget https://raw.githubusercontent.com/drew2a/wireguard/master/wg-ububtu-server-up.sh
chmod +x ./wg-ububtu-server-up.sh
./wg-ububtu-server-up.sh 10 # цифра 10 означает "создай 10 клиенских конфигураций"
После выполнения скрипта, сервер WireGuard будет установлен, запущен и готов к работе с клиентами.
Признак корректного запуска WireGuard — после отработки скрипта, вы должны увидеть в консоли что-то похожее на:
interface: wg0
public key: +xxxEjj1qmxxxotq4OxxxfHPaxxxtre5xxxxOfxxw=
private key: (hidden)
listening port: 51820
peer: d1exxxLdCZcYxxxIQ0xxxxK/Wpx8G1N8xxvnUrxxxx=
allowed ips: 10.0.0.2/32
peer: fWExxxazRxxxUOxxxx4JKgUTxxo9LaxxxxOGWtxxK0w=
allowed ips: 10.0.0.3/32
...
peer: RbmxxxDxOoXMxxxcyate6xxxinIClxxDgRDxxxx0j0=
allowed ips: 10.0.0.10/32
Скрипт так же создаст 10 клиентских конфигураций [client1.conf…client10.conf], которые вы можете использовать по одной конфигурации для одного устройства (в один момент времени).
Конфигурации лежат в дроплете, в папке: $HOME/wireguard/
Замечание. Вы можете сконфигурировать WireGuard вручную, без использования скрипта, но тогда это не подходит под определение "быстро" и "без глубокого изучения документации". В следующей статье, если к этому будет интерес, я расскажу о происходящей внутри скриптов магии.
Замечание2. Вы сможете резонно заметить, что еще проще — использовать уже готовый образ в том же самом DO и не запускать никакие скрипты. Соглашусь, но обращу ваше внимание на то, что в предложенных скриптах всего 100 строк кода и легко проверить, что никакого криминала в них нет. В готовом образе это сделать сложнее.
Замечание3. Команда для установки соединения с дроплетом (ssh) работает в *nix подобных операционных системах. Если у вас Windows, используйте winscp, PuTTY или другое подобное приложение.
Устанавливаем десктопный клиент
Скачайте десктопное приложение WireGuard с сайта https://www.wireguard.com/install/ и установите его.
Скачайте клиентский конфиг (допустим, вы хотите использовать конфиг client1.conf) с вашего дроплета (используйте IP адрес вашего дроплета, вместо xxx.xxx.x.xx):
scp root@xxx.xxx.x.xx:"~/wireguard/client1.conf" ~/Desktop/
Запустите десктопную версию WireGuard и импортируйте туннель из скаченной клиентской конфигурации (client1.conf).
Замечание. Команда для скачивания (scp) работает в *nix подобных операционных системах. Если у вас Windows, используйте winscp или другое подобное приложение.
Замечание2. Вы можете использовать также версию WireGuard без GUI и использовать те же самые клиентские конфигурации.
Установите клиент для мобильного телефона
Установите приложение WireGuard через AppStore или PlayMarket.
Запустите его и импортируйте VPN туннель через QR код.
Как получить QR код
Вы можете сгенерировать QR код, подключившись к дроплету (используйте IP адрес вашего дроплета, вместо xxx.xxx.x.xx) и выполнив команду (в случае, если вы будете использовать клиентский конфиг client2.conf):
ssh root@xxx.xxx.x.xx
qrencode -t ansiutf8 < ~/wireguard/client2.conf
Спасибо.
Комментарии (98)
enzain
02.11.2019 00:20Почему нельзя одним конфигом всех подключать казалось бы?… Если это для себя…
Зачем их 10?
YourChief
02.11.2019 00:48-1Иначе несколько клиентов вместе работать не будут.
enzain
02.11.2019 09:18Ну и для чего такой сервер?…
Не проще настраивать тот, которому всё равно сколько одинаковых клиентов подключается?YourChief
02.11.2019 12:41Нет, не проще. Смысл wireguard в том, что там роутинг связан с ключами. Кроме того он имеет массу других преимуществ: скорость, лёгкое переподключение, трудноузнаваемость трафика с точки зрения DPI. Ну а заводить все девайсы под одним аккаунтом — не совсем грамотно.
xdimquax
03.11.2019 05:26трудноузнаваемость трафика с точки зрения DPI
AFAIK, нет. Многие DPI его пока не блокируют, но потому, скорее, что процент его использования пока относительно низкий, в т.ч. в Китае.
mkll
02.11.2019 14:27Не любить «колхоз» by default — это очень выигрышная стратегия, даже если вы (пока?) не понимаете, зачем усложнять.
Что значит «для себя?» 10 аккаунтов — это явно не для себя любимого — это, очевидно, для родственников, членов семьи и т.д. И есть очень ненулевая вероятность, что какой-то аккаунт утечет на сторону (ребенок поделился с товарищем, скажем). В этом случае нужно будет переконфигурировать одно клиентское устройство, а не 10. Кроме того, при просмотре активных аккаунтов вы всегда будете понимать, чье и какое конкретно устройство вот в этой строке выдачи, и вон в той.
Naves
02.11.2019 00:53+2В статье не хватает обзора для сравнения ещё пары хостингов с ценой один евро в месяц.
Почему не взят для сервера SoftEther VPN, для него даже никаких клиентов не надо ставить.
Tangeman
02.11.2019 01:30+5В чем главная проблема VPN провайдеров? Вы не знаете что они делают с вашими данными.
А что делают хостеры, особенно VPS, с вашими данными — вы знаете?
Rebeiro
02.11.2019 06:47openvpn поднимается в 5 ходов, и какие 5 долларов, я плачу 150 р. vps в Германии, третий год работает без проблем и зачем столько конфигов плодить, все работает на одном
roller
02.11.2019 13:07Выбор vpn в германии это кактус в профиль. Как только вы попробуете качнуть торрент — к вам придут. Не захотите платить штраф — не получите больше шенген)
Rebeiro
02.11.2019 13:23чего серьезно что ли? спасибо поржал от души, я три года качаю торренты целыми днями и ночами, за все время только в первый год, меня попросили, удалить два раза раздачу, и то это были фильмы Paramount Pictures(причем вежливо, а то может быть мы вам приостановим услугу, до того момента пока раздача не удалится, я удалил, сказали спасибо, приятного пользования), к слову, потом когда дальше качал, чего то даже не задумывался об этом, а сейчас только вы мне напомнили, так что все нормально, не знаю откуда у вас такая информация, все качается и раздается, причем одно время, полгода был релизером и раздавал круглые сутки, и чего то никто мне не жаловался, а может и впн реально анонимный, что просто прочухать не могут, че за трафик
TimsTims
02.11.2019 23:30ВспомнилосьНа стене вконтакте:
Андрей: Армия? Ха-ха! Да меня в жизни не найдут, уже 3 года бегаю после универа, осталось еще 2 и уже будет не призывной возраст! Хмм, кто-то в дверь стучится, щас пойду посмотрю…
— отправлено 1 год назад.
me-zundig
02.11.2019 13:47опенвпн не поднимается в 5 ходов, либо вы не в курсе, либо врете. опенвпн крайне узкая труба и вообще юзерленд. Видео в нормальном разрешении вы не посмотрите.
Rebeiro
02.11.2019 14:35про openvpn чего врать то, у Nyr есть скрипт, купил vps, запустил debian, запустил скрипт, 2 минуты вопросов, сертификат готов, скачал себе, подсунул в openvpn файл, все, какая труба?
пинг 39, скорость не режется вообще, у меня 48 мегабит, чего вдруг я 1080 не смогу посмотреть? сериалы, фильмы, онлайн правда не люблю смотреть, телевидение 400 каналов за 69 р в месяц))) все летает, вы на другой планете что ли живете?
может от того что я не заморачиваюсь, и у меня все работает как часы)))
dartraiden
02.11.2019 20:29А как вы через OpenVPN протолкнёте хотя бы 100 мегабит, не говоря уж о большем? Даже в нашей провинции 300-мегабитные тарифы хоть и не у всех провайдеров, но есть. У пары провайдеров вообще самый дешевый тариф начинается с 75 мегабит.
OpenVPN столько не вытянет. Вдобавок, Wireguard на Android (при условии, что ядро собрано с его поддержкой) более экономно расходует ресурс аккумулятора.Rebeiro
02.11.2019 20:42я не знаю о чем разговор, подключал тариф у своего провайдера 100 мегабит, и через германию, где установлен openvpn, замерял, 80 мегабит идет нормально, мы может о разных вещах разговариваем, вообще не пойму чего набросились, есть vps 150 р. поставил debian, поднял openvpn, весь трафик через германию идет круглосуточно, пинг я уже писал какой, на 100 мегабитах у своего провайдера, 80 мегабит получаю
loltrol
03.11.2019 15:30OpenVPN на Celeron J1900 вытягивает 3 канала, каждый по +-150 мегабит. Каждый такой клиент грузил одно ядро на 100%. Процы с aes-ni инструкциями выдать могут и скорости больше и на большем количестве клиентов. Откуда у вас такое убеждение, что openvpn не выдаст сотку?
kvazimoda24
03.11.2019 23:49Я на трёх туннелях в сумме имел более 600 мегабит. И упирался не в скорость туннеля.
proctoleha
02.11.2019 08:42Digital Ocean один из лучших, с этим не поспоришь. Но, есть одно маленькое но — часть его ip адресов находится в черном списке Роскомнадзора. И с первого раза может не повезти. Страшного в этом ничего нет. Удаляем дроплет, создаем по новой, и так до тех пор, пока сервер не начнет откликаться. Проблема в другом: вступил в действие, как писали, здесь, на хабре, т.н. закон Яровой, и будет ли у нас завтра доступ к зарубежным серверам, богу весть.
vconst
02.11.2019 11:33+1Немного не так. Надо сначала создать новый дроплет, только потом удалить старый. Иначе можно получить тот же айпи.
AllexIn
02.11.2019 12:29Ценность VPN клиента, который нельзя/сложно установить на роутер равняется нулю.
А вообще — если не хотите морочиться, ставьте StraizendVPN. Там и WireGuard и куча других протоколов из коробки.
PS. Вопрос к экспертам: Подскажите роутер для дома, на который без проблем можно установить какой нибудь современный клиент типа WireGuard или OpenConnect.YourChief
02.11.2019 12:39Любой, на котором OpenWRT хорошо работает. Посмотреть на каких лучше можно на сайте openwrt в таблице.
ksenobayt
02.11.2019 13:41Xiaomi Mi Router 3G. Абсолютный SOHO-убийца по соотношению цена\качество (в московскую розницу порядка 2.2-2.5 тысяч). 256 мегабайт оперативной памяти, 128 мегабайт флэша, и даже (зачем-то) дуалкор. Такого железа за такие деньги я нигде за последние два года не видел.
Нюанса два: его нужно сразу же перепрошивать на OpenWRT (штатная китайская прошивка абсолютно бесполезна, хоть и основана на OpenWRT сама по себе), и его становится всё сложнее и сложнее найти, что на Али, что в рознице.
Его спокойно хватает, чтобы держать 250-350 мегабит на WG.garageman
02.11.2019 17:57О, благодарю. У меня домашний роутер на Tplink WR1043N уже не справляется, три VPN туннеля, один из которых OpenVPN и приличный трафик.
ksenobayt
02.11.2019 18:10Из существенных для кого-то минусов следует упомянуть ещё тот факт, что езернет-портов там ровно два, не считая аплинка. Впрочем, я просто поставил рядом свитч гигабитный, который у меня стоял без дела, и никак этого не замечаю.
garageman
02.11.2019 19:14Двух — достаточно, у меня и так стоит свитч рядом, не хватает.На али есть, закажу пожалуй.
dartraiden
02.11.2019 20:20Не нарвитесь на вторую ревизию (V2), которая представляет собой перемаркированную «четвёрку». Она иная по железу и никакого OpenWrt на неё нет.
Самый верный признак — наличие синего USB-порта. Если он чёрный — перед вами «трёшка» (без гигабитных портов и без официальных сборок OpenWrt), если его нет — «четвёрка». Синий (USB 3.0) только у 3G.
И ещё посмотрите коммент ниже, возможно, захотите взять Newifi на Ebay. Тем более, там сейчас дают 5 баксовую скидку.
dartraiden
02.11.2019 20:12Поэтому лучше взять Lenovo Newifi 3 D2. Цена сопоставимая, портов — 4, оперативки вдвое больше, а вместо NAND старый добрый SPI-флеш.
Любители KeeneticOS могут посмотреть на Xiaomi R3P, который после определённых программных манипуляций превращается в Keenetic Ultra KN-1810.garageman
02.11.2019 23:14Респект! Особенно за spi. Скорее всего на этом варианте и остановлюсь, а то иногда накатывает желание поэкспериментировать. Прищепкой прицепился — и сливай/заливай как хочешь.
dartraiden
02.11.2019 23:24Там UART есть для экспериментов. Плюс сторонний загрузчик от китайцев, который позволяет менять прошивки как перчатки. Но SPI ещё лучше тем, что надёжнее, чем NAND.
А если покрутить исходники, то даже Wive-NG можно натянуть. Wireguard там нет, но прошивку хвалят.ksenobayt
02.11.2019 23:37Так-то U-boot спокойно меняется на Breed и на 3G, то единственный шанс вытащить его из кирпича впоследствии.
rostislav-zp
02.11.2019 22:02Да.отличный роутер.правда я шил на padavan. Второй год держит vpn подключение к zaborona.help как клиент.так же великолепно проявляет себя как vpn сервер.только 2 порта на корпусе немного огорчали, но дешевый свитч решил проблему
ksenobayt
02.11.2019 22:07Падаван все же проприетарен, и в нем до сих пор нет поддержки Wireguard. Тикет второй год висит.
dartraiden
02.11.2019 23:26И не будет, ядро слишком старое. А развитие прошивки прекращено, энтузиасты только отдельные компоненты обновляют. Из проприетарного, если мне не изменяет память, там NTFS-драйвер, который вообще не нужен, пока есть NTFS-3G. Остальное свободное.
Возможно, что-то можно завести на портированной с асусовских роутеров прошивке (там ядро 3.10), но я не заморачивался, потому что OpenWrt с каждым релизом работает всё лучше (свободный драйвер mt76 в транке вообще изумительно), а при желании можно и проприетарные дрова прикрутить.ksenobayt
02.11.2019 23:35Там сама лицензия рома проприетарна по своей сути. Я не рассматривал его именно по этой причине в первую очередь.
dartraiden
03.11.2019 00:47Автор может накрутить любые запреты, но если они противоречат GNU GPL, то они ничтожны.
ksenobayt
03.11.2019 21:34Безусловно, это было бы так, если бы итоговый результат не включал их (его) собственного кода. При любом раскладе, я предпочитаю с подобными проектами не связывать ни себя, ни свою инфраструктуру.
BigD
03.11.2019 00:03Keenetic начал получать поддержку Wireguard. А IPSec давно из коробки с хардварным ускорением. OpenVPN давно тоже есть.
restylane
02.11.2019 13:47Для россиян уже довольно давно самый простой тариф DigitalOcean стоит $6 в месяц. Кроме того, едва ли не все IP данного хостинга заблокированы РКН, и таким образом, для соединения с VPN вам понадобится еще один VPN.
krab4yar
02.11.2019 13:47Лучший костыль для генерации конфига github.com/burghardt/easy-wg-quick скачать скрипт можно прямо в
/etc/wireguard/
Whuthering
02.11.2019 15:38Существенный недостаток Wireguard — то что он UDP-based и его пакеты со стороны выглядят как непонятное нечто. Что, с одной стороны, даёт хорошую скорость и устойчивость к выявлению со стороны DPI конкретных типов VPN, но при этом окажется совершенно неработоспособным, когда в попытках борьбы с VPN'ами маразм дойдет до блокирования или шейпинга всего, что не похоже на ни на один стандартный протокол. Ну и бонусом возможны проблемы с пролезанием через корпоративные firewall'ы и криво настроенные NAT'ы. Поэтому протоколы, которые со стороны выглядят как валидный HTTPS (типа SSTP или AnyConnect) будут гораздо надежнее, хоть и не такие скоростные.
krab4yar
03.11.2019 05:38Пока что этот недостаток не перевешивает его достоинства: мгновенное переподключение (даже под NAT при условии включенным KeepAlive раз в 20 секунд), в несколько раз ниже нагрузка на CPU в юзерспейсной реализации, лучшие показатели по энергопотреблению, в разы легче конфигурация серверов и клиентов.
Но сабж не создавался для этих ваших VPN, в самом начале, это средство создания тунелей.
Он реализует на столько простую основу что для «коммерческих» VPN'ов нужно писать и управление клиентами на сервере и фирменный клиент для Windows.
whyme
02.11.2019 17:13+3Почему то мало кто смотрит в сторону ipsec IKEv2, да, настраивать его на сервере сложнее, но гораздо легче для клиентов, имеет кучу плюсов:
— добавлен в ядро почти всех ОС, поэтому один из самых быстрых VPN (что так же позволяет часто настраивать без прав админа или рута).
— нативные клиенты почти во всех ОС (windows, macos, blackberry, у Андроида только IKEv1 вроде), не надо ничего устанавливать, 2 скриншота с настройкой — и сможет настроить любой пользователь. Если использовать сертификаты к примеру от LetsEncrypt, то и передевать какие либо файлы клиентам не надо, только логин пароль.
— настраивается почти на всех роутерах (IKEv1 ISAKMP в крайнем случае).
— поддержка MOBIKE IKEv2, для незаметного быстрого переподключения в случае смены ip клиента, очень помогает на телефонах, когда вы к примеру переподключаетесь с wifi на мобильную связь из-за выхода за радиус работы wifi.
— нормальная поддержка ipv6, все по стандартам (у openVPN были проблемы пару лет назад, сейчас не знаю).
Да он легко детектится, но Wireguard тоже, от детекта я паралельно на том же сервер настраиваю SSTP на 443 порту, с тем же сертификатом LetsEncrypt, т.е. передавать клиентам опять же не надо ничего. SSTP не отличим от обычного HTTPs, может работать через прокси, даже с аутентификацией (к примеру корпоративные где все закрыто), может работать через hotspot отелей, где работают только 443 и 80 после авторизации, очень сложно заблокировать. Единственный минус — нативный клиент только под винду.garageman
02.11.2019 18:02Почему ж никто? Я использую, например. Раз настроил и доволен.
whyme
02.11.2019 18:22Справедливости ради я написал «мало кто», статью про ipsec я разве что одну помню на хабре среди десятка про другие впн, даже подумываю свою попробовать написать, если время появится.
shachneff
02.11.2019 21:16Я решал задачу наладить работу с bot-API Telegram из софта, который находится в РФ.
На DO взял дроплет, поставил Debian 10 и настроил ipsec ikev2. Но проблемы это не решило, т.е. запосы к bot-API уходят через VPN, а webhook'и от bot-API сервера пытаются идти напрямую в РФ и как их замаршрутизировать в vpn я не понимаю, поскольку ikev2 не является dev'айсом ...loki82
02.11.2019 21:37Как то странно. А адрес вэбхука какой?
shachneff
02.11.2019 21:39Действительный. IPv4-адрес.
Поэтому задам вопрос иначе: если сервер телеграм шлет сообщения на вебхук-IP-адрес моего сервера IPSEC IKEV2 VPN в Европе, то как настроить этот VPN-сервер так, чтобы полученное сообщение получал мой веб-сервер в РФ?
SergeyPerm
02.11.2019 22:42А кто-то практикует промышленное прокидывание портов через SSH?
whyme
02.11.2019 22:50В IT, я думаю, все практикуют, но недостаточно удобно для обычных пользователей (все же надо подсаживать и родителей и далеких от IT друзей, на телефоне тот еще геморой).
loki82
02.11.2019 22:59Мне кажется речь не об этом. Я стараюсь вообще промышленные объекты не выпускать в интернет. Но если нужна телеметрия, то организую двумя контроллерами.
Eklykti
03.11.2019 00:51с DO есть ещё одна фишка, если вам сервер не нужен постоянно.
По дефолту за дроплет списывается бабло даже тогда, когда он выключен. Но если сделать снапшот дроплета, а сам дроплет удалить, то платить уже надо только копейки за хранение снапшота, а когда сервер снова понадобится — создать из снапшота новый дроплет.
splitfire
03.11.2019 20:13Подскажите, есть ли готовое решение под Windows для обхода казахстанских блокировок?
Суть в том, что в КЗ провайдеры заглушками не заморачиваются. На заблокированный ресурс просто не проходит соединение. Сервер пингуется нормально, но http(s) соединение отваливается по таймауту. И списков тоже нет. Сегодня одно заблокировано, завтра другое, послезавтра опять первое.
Пока в голову приходит только отслеживание коннекта на каждый вебсайт. Если соединение не устанавливается в течении 3-7 секунд — пробовать соединиться через ВПН.
Можно ли сделать такое без пота и крови?YourChief
03.11.2019 22:00Именно на сетевом уровне это сделать довольно трудно, потому что при таком избирательном переключении каналов попытка установления соединения напрямую уже начата.
Проще всего тогда в браузере всё через прокси пустить. Если сервер не слишком далеко, то это даже не будет заметно.
Если Вы всё же хотите идти таким путём селективного проксирования, то можно адаптировать мою вариацию SOCKS прокси через SSH, чтобы по возможности она использовала прямое соединение. Для этого буквально будет достаточно попытаться установить соединение напрямую и при ошибке/таймауте уже перейти к установлению соединения через удалённый сервер.splitfire
04.11.2019 14:40Да проще всего пустить вообще всё, с помощью Wireguard или SoftEther.
Но есть одно огромное «но». Обычные диапазоны ВПСов как правило загажены по самую маковку. А это означает прохождение капчи на каждый чих; блокировка захода на сайт, с предложением послать админам сайта имэйл, и они тогда, возможно, разблокируют; или просто 403 Forbidden и пшёл вон отсюда.
Меня то это не напрягает особо, всегда найду способ. Но сделать обход блокировок надо для девушки, которая от IT очень далека.
Вот и ищу способы.YourChief
04.11.2019 17:00Можно просто найти адрес из свежего диапазона, который не загажен, поперебирав адреса на каком-нибудь Digital Ocean. Там попадаются диапазоны адресов, которые только недавно куплены у нормальных владельцев. У меня сейчас как раз такой, вроде бы капчи не докучают.
Либо попробуйте Firefox Private Network, для ваших целей скорее всего хорошо подойдёт. Трафик идёт через серверы Cloudflare Warp (но не через wireguard, как в Warp, а обычный HTTP-прокси через TLS 1.3). В Firefox устанавливается простым расширением. С остальными браузерами и приложениями можно подружить, если сделать прокси, который получает и подставляет авторизационный токен в хедер авторизации прокси. У меня есть такое готовое решение.
Ivenoname
03.11.2019 20:13К чему эти статьи каждый год? Outline ставится одной строчкой. Хватает 45 рублевого vps. При этом даже в Китае работает, так как все эти обычные необсфуцированные впн сразу же блочатся.
garageman
03.11.2019 22:04Брал как-то Голландский VPS (Zomro) за $5/три месяца. Но там в ядре не поддерживалось чего-то, уж не помню. И ядро не сменишь.
YourChief
Что-то я здесь не вижу, чтобы DNS пускался через VPN и на сервере был форвардер DNS. Проверьте вашу конфигурацию каким-нибудь тестом DNS leak. Например, этим.
drew2a Автор
Спасибо за комментарий.
В качестве DNS сервера используется 8.8.8.8: github.com/drew2a/wireguard/blob/master/wg-genconf.sh#L47.
DNS leak тест проходит успешно.
YourChief
Те же самые VPN-провайдеры, которым Вы не доверяете, не позволяют себе сливать DNS-запросы пользователей гуглу.
В случае с виндой даже если DNS-сервер будет установлен, но по каким-то причинам не успеет отверить вовремя, то винда может использовать DNS-серверы, назначенные на других интерфейсах (есть отличный комментарий со схемой пользователя chupasaurus про это). Для OpenVPN есть плагин с фиксом этого, но я не уверен, что такое же есть для wireguard. К слову, коммерческие VPN-сервисы имеют клиенты, подавляющие эту уязвимость.
drew2a Автор
Резонно.
chupasaurus
Упомянутый в той ветке плагин — для старых версий OpenVPN, он влит в версии 2.3.9, которой 4 года в декабре стукнет.
Пробежался по диагонали в коде официального Windows-клиента WG, никаких действий по решению данной проблемы не нашёл.
Ссылка на оригинал схемы с Technet.
morohon
У меня были проблемы при использовании openvpn и проброса DNS в windows 10 (на планшете ipad — все работало корректно при подключении к той же сети).
Я далеко не спец, к сожалению, и решил это путем добавления параметра Blocking outside dns в конфигурацию openvpn (push «block-outside-dns»). Можете подсказать — это та же проблема или нечто другое?
YourChief
Да, это оно, block-outside-dns убёрет DNS-leak, если клиент эту опцию воспринимает.
muromdx
У меня решилось путем добавления в конфиг клиента client.ovpn строчки
dhcp-option DNS xxx.xxx.xxx.xxx
zerg59
А вы попробуйте выполнить команду «nslookup %запрещёнка%»
Где %запрещёнка% — любой ресурс из списка РКН. Мой провайдер выдаёт ip заглушки. Причём не важно вообще, какой ip указан для DNS сервера. Можно даже несуществующий — всё равно всё работает ибо провайдер просто перехватывает нешифрованные DNS-запросы. Помогает только или перенаправление DNS в тот же VPN или всякого рода DNScrypt/DoH/DoT.
SuAlUr
Подскажите, как поможет DNScrypt/DoH/DoT, если у провайдера установлен фильтр по IP-адресу заблокированных ресурсов?
Whuthering
Если по IP — не поможет, но некоторые провайдеры фильтруют заблокированные домены подсовывая левые dns-ответы.
zerg59
А вот для этого VPN. О чём как раз статья. Но VPN будет бесполезен для такого применения если DNS запросы идут через провайдера. Я, когда баловался подобным на Микротике, ставил специальное правило в файрволе, перенаправляя все обращения по 53 порту в VPN. То, что микротик в стабильных версиях не умеет OVPN через UDP в данном случае не мешало — скорость тут не особо важна. И если OVPN клиент под винду таки исключает утечки DNS, То SoftETHER — нет. И они сами рекомендуют использовать клиента OVPN.
kvazimoda24
Много, кто в интернете советует использовать гугловские DNS'ы, но мало кто рассказывает, что серверы эти самой Гугл позиционируются как тестовые, и на моей практике довольно часто не работали. Для себя я решил, что мне проще свой DNS поднять, чем надеяться на Гугл.
drew2a Автор
Спасибо за конструктивную критику, добавил dns forwarding с использованием unbound: github.com/drew2a/wireguard/pull/2
nevzorofff
Более того, я даже ISP знаю, что выдают клиентам их и проблем особых замечено не было.
kvazimoda24
А я несколько раз натыкался на то, что мне одновременно звонят с нескольких обслуживаемых мною объектов и рассказывают, что интернет не работает. При выяснениях обнаруживается, что гугловские четыре восмёрки либо не отвечают, либо отдают что-то не то. И можно было бы списать это на проблемы связности или ещё что-то, но свой кэширующий DNS как-то надёжнее, да и даёт плюшки вида обращения в локалке по доменным именам, а не по IP.
nevzorofff
Доменные имена можно и на реальный домен повесить-то )
Jipok
Попробуйте днс от opennic. Хороший проект, жаль мало кто про него слышал.
nevzorofff
У меня дома провайдер этот сайт блокирует.
Jipok
Не удивлён. Я последний год исключительно через прокси в интернет хожу, уж больно много нужных сайтов заблокировано. Но доступ к самому сайту не обязателен, хоть парочка адресов вам должна быть доступна.
unwrecker
Хорошо. Но ведь свой обращается к форвардерам. Что использовать в качестве них?
xdimquax
Необязательно, может обращаться напрямую к корневым серверам.