Ниже я расскажу о том, как заменить ваш VPN провайдер собственным сервером, развернутым на DigitalOcean с использованием WireGuard.


В чем главная проблема VPN провайдеров? Вы не знаете что они делают с вашими данными.
Очень мало VPN провайдеров прошли сторонний аудит и почти никто их них не открывает свой код.
Даже в случае открытого кода и пройденного аудита, для параноиков вопрос про то, что же происходит на стороне провайдера — остается открытым.


Решение достаточно простое — развернуть свою VPN ноду.


Я хочу сделать это просто


В сети существует достаточно много статей о том, как настроить WireGuard, вот некоторые из них:



Но что, если я просто хочу установить 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)


  1. YourChief
    01.11.2019 23:40

    Что-то я здесь не вижу, чтобы DNS пускался через VPN и на сервере был форвардер DNS. Проверьте вашу конфигурацию каким-нибудь тестом DNS leak. Например, этим.


    1. drew2a Автор
      01.11.2019 23:46

      Спасибо за комментарий.

      В качестве DNS сервера используется 8.8.8.8: github.com/drew2a/wireguard/blob/master/wg-genconf.sh#L47.

      DNS leak тест проходит успешно.


      1. YourChief
        02.11.2019 00:03
        +2

        Те же самые VPN-провайдеры, которым Вы не доверяете, не позволяют себе сливать DNS-запросы пользователей гуглу.

        В случае с виндой даже если DNS-сервер будет установлен, но по каким-то причинам не успеет отверить вовремя, то винда может использовать DNS-серверы, назначенные на других интерфейсах (есть отличный комментарий со схемой пользователя chupasaurus про это). Для OpenVPN есть плагин с фиксом этого, но я не уверен, что такое же есть для wireguard. К слову, коммерческие VPN-сервисы имеют клиенты, подавляющие эту уязвимость.


        1. drew2a Автор
          02.11.2019 00:14

          Резонно.


        1. chupasaurus
          02.11.2019 00:35
          +1

          Упомянутый в той ветке плагин — для старых версий OpenVPN, он влит в версии 2.3.9, которой 4 года в декабре стукнет.
          Пробежался по диагонали в коде официального Windows-клиента WG, никаких действий по решению данной проблемы не нашёл.
          Ссылка на оригинал схемы с Technet.


        1. morohon
          02.11.2019 21:38

          У меня были проблемы при использовании openvpn и проброса DNS в windows 10 (на планшете ipad — все работало корректно при подключении к той же сети).

          Я далеко не спец, к сожалению, и решил это путем добавления параметра Blocking outside dns в конфигурацию openvpn (push «block-outside-dns»). Можете подсказать — это та же проблема или нечто другое?


          1. YourChief
            02.11.2019 21:57

            Да, это оно, block-outside-dns убёрет DNS-leak, если клиент эту опцию воспринимает.


          1. muromdx
            02.11.2019 22:18

            У меня решилось путем добавления в конфиг клиента client.ovpn строчки
            dhcp-option DNS xxx.xxx.xxx.xxx


      1. zerg59
        02.11.2019 10:54
        +1

        А вы попробуйте выполнить команду «nslookup %запрещёнка%»
        Где %запрещёнка% — любой ресурс из списка РКН. Мой провайдер выдаёт ip заглушки. Причём не важно вообще, какой ip указан для DNS сервера. Можно даже несуществующий — всё равно всё работает ибо провайдер просто перехватывает нешифрованные DNS-запросы. Помогает только или перенаправление DNS в тот же VPN или всякого рода DNScrypt/DoH/DoT.


        1. SuAlUr
          02.11.2019 16:08

          Подскажите, как поможет DNScrypt/DoH/DoT, если у провайдера установлен фильтр по IP-адресу заблокированных ресурсов?


          1. Whuthering
            02.11.2019 18:40

            Если по IP — не поможет, но некоторые провайдеры фильтруют заблокированные домены подсовывая левые dns-ответы.


          1. zerg59
            02.11.2019 20:21

            А вот для этого VPN. О чём как раз статья. Но VPN будет бесполезен для такого применения если DNS запросы идут через провайдера. Я, когда баловался подобным на Микротике, ставил специальное правило в файрволе, перенаправляя все обращения по 53 порту в VPN. То, что микротик в стабильных версиях не умеет OVPN через UDP в данном случае не мешало — скорость тут не особо важна. И если OVPN клиент под винду таки исключает утечки DNS, То SoftETHER — нет. И они сами рекомендуют использовать клиента OVPN.


      1. kvazimoda24
        02.11.2019 13:10

        Много, кто в интернете советует использовать гугловские DNS'ы, но мало кто рассказывает, что серверы эти самой Гугл позиционируются как тестовые, и на моей практике довольно часто не работали. Для себя я решил, что мне проще свой DNS поднять, чем надеяться на Гугл.


        1. drew2a Автор
          02.11.2019 13:40

          Спасибо за конструктивную критику, добавил dns forwarding с использованием unbound: github.com/drew2a/wireguard/pull/2


        1. nevzorofff
          02.11.2019 15:27
          +1

          Более того, я даже ISP знаю, что выдают клиентам их и проблем особых замечено не было.


          1. kvazimoda24
            02.11.2019 16:27
            +1

            А я несколько раз натыкался на то, что мне одновременно звонят с нескольких обслуживаемых мною объектов и рассказывают, что интернет не работает. При выяснениях обнаруживается, что гугловские четыре восмёрки либо не отвечают, либо отдают что-то не то. И можно было бы списать это на проблемы связности или ещё что-то, но свой кэширующий DNS как-то надёжнее, да и даёт плюшки вида обращения в локалке по доменным именам, а не по IP.


            1. nevzorofff
              02.11.2019 17:21
              +1

              Доменные имена можно и на реальный домен повесить-то )


        1. Jipok
          02.11.2019 17:02
          +1

          Попробуйте днс от opennic. Хороший проект, жаль мало кто про него слышал.


          1. nevzorofff
            03.11.2019 09:19

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


            1. Jipok
              05.11.2019 14:48

              Не удивлён. Я последний год исключительно через прокси в интернет хожу, уж больно много нужных сайтов заблокировано. Но доступ к самому сайту не обязателен, хоть парочка адресов вам должна быть доступна.


        1. unwrecker
          02.11.2019 18:26

          Хорошо. Но ведь свой обращается к форвардерам. Что использовать в качестве них?


          1. xdimquax
            03.11.2019 05:21

            Необязательно, может обращаться напрямую к корневым серверам.


  1. enzain
    02.11.2019 00:20

    Почему нельзя одним конфигом всех подключать казалось бы?… Если это для себя…


    Зачем их 10?


    1. YourChief
      02.11.2019 00:48
      -1

      Иначе несколько клиентов вместе работать не будут.


      1. enzain
        02.11.2019 09:18

        Ну и для чего такой сервер?…
        Не проще настраивать тот, которому всё равно сколько одинаковых клиентов подключается?


        1. YourChief
          02.11.2019 12:41

          Нет, не проще. Смысл wireguard в том, что там роутинг связан с ключами. Кроме того он имеет массу других преимуществ: скорость, лёгкое переподключение, трудноузнаваемость трафика с точки зрения DPI. Ну а заводить все девайсы под одним аккаунтом — не совсем грамотно.


          1. xdimquax
            03.11.2019 05:26

            трудноузнаваемость трафика с точки зрения DPI

            AFAIK, нет. Многие DPI его пока не блокируют, но потому, скорее, что процент его использования пока относительно низкий, в т.ч. в Китае.


    1. mkll
      02.11.2019 14:27

      Не любить «колхоз» by default — это очень выигрышная стратегия, даже если вы (пока?) не понимаете, зачем усложнять.

      Что значит «для себя?» 10 аккаунтов — это явно не для себя любимого — это, очевидно, для родственников, членов семьи и т.д. И есть очень ненулевая вероятность, что какой-то аккаунт утечет на сторону (ребенок поделился с товарищем, скажем). В этом случае нужно будет переконфигурировать одно клиентское устройство, а не 10. Кроме того, при просмотре активных аккаунтов вы всегда будете понимать, чье и какое конкретно устройство вот в этой строке выдачи, и вон в той.


  1. Naves
    02.11.2019 00:53
    +2

    В статье не хватает обзора для сравнения ещё пары хостингов с ценой один евро в месяц.
    Почему не взят для сервера SoftEther VPN, для него даже никаких клиентов не надо ставить.


  1. vconst
    02.11.2019 00:59
    +3

    А чем это глобально отличается от OpenVPN или ShadowSocks?


    1. AllexIn
      02.11.2019 12:27

      Про ShadowSocks не знаю, а от OpenVPN отличается скоростью.


    1. vikaig
      02.11.2019 13:47

      После года использования самые заметные для меня отличия от OVPN: нативность(модуль ядра), скорость работы, ну и то что это не VPN, а тунель


  1. Tangeman
    02.11.2019 01:30
    +5

    В чем главная проблема VPN провайдеров? Вы не знаете что они делают с вашими данными.

    А что делают хостеры, особенно VPS, с вашими данными — вы знаете?


  1. Rebeiro
    02.11.2019 06:47

    openvpn поднимается в 5 ходов, и какие 5 долларов, я плачу 150 р. vps в Германии, третий год работает без проблем и зачем столько конфигов плодить, все работает на одном


    1. roller
      02.11.2019 13:07

      Выбор vpn в германии это кактус в профиль. Как только вы попробуете качнуть торрент — к вам придут. Не захотите платить штраф — не получите больше шенген)


      1. Rebeiro
        02.11.2019 13:23

        чего серьезно что ли? спасибо поржал от души, я три года качаю торренты целыми днями и ночами, за все время только в первый год, меня попросили, удалить два раза раздачу, и то это были фильмы Paramount Pictures(причем вежливо, а то может быть мы вам приостановим услугу, до того момента пока раздача не удалится, я удалил, сказали спасибо, приятного пользования), к слову, потом когда дальше качал, чего то даже не задумывался об этом, а сейчас только вы мне напомнили, так что все нормально, не знаю откуда у вас такая информация, все качается и раздается, причем одно время, полгода был релизером и раздавал круглые сутки, и чего то никто мне не жаловался, а может и впн реально анонимный, что просто прочухать не могут, че за трафик


        1. TimsTims
          02.11.2019 23:30

          Вспомнилось
          На стене вконтакте:
          Андрей: Армия? Ха-ха! Да меня в жизни не найдут, уже 3 года бегаю после универа, осталось еще 2 и уже будет не призывной возраст! Хмм, кто-то в дверь стучится, щас пойду посмотрю…
          — отправлено 1 год назад.


    1. Hecq
      02.11.2019 13:47

      Не поделитесь ссылкой?


      1. Rebeiro
        02.11.2019 14:27

        скорее нет чем да, откуда я знаю для чего она вам)))


    1. me-zundig
      02.11.2019 13:47

      опенвпн не поднимается в 5 ходов, либо вы не в курсе, либо врете. опенвпн крайне узкая труба и вообще юзерленд. Видео в нормальном разрешении вы не посмотрите.


      1. Rebeiro
        02.11.2019 14:35

        про openvpn чего врать то, у Nyr есть скрипт, купил vps, запустил debian, запустил скрипт, 2 минуты вопросов, сертификат готов, скачал себе, подсунул в openvpn файл, все, какая труба?
        пинг 39, скорость не режется вообще, у меня 48 мегабит, чего вдруг я 1080 не смогу посмотреть? сериалы, фильмы, онлайн правда не люблю смотреть, телевидение 400 каналов за 69 р в месяц))) все летает, вы на другой планете что ли живете?

        может от того что я не заморачиваюсь, и у меня все работает как часы)))


    1. dartraiden
      02.11.2019 20:29

      А как вы через OpenVPN протолкнёте хотя бы 100 мегабит, не говоря уж о большем? Даже в нашей провинции 300-мегабитные тарифы хоть и не у всех провайдеров, но есть. У пары провайдеров вообще самый дешевый тариф начинается с 75 мегабит.

      OpenVPN столько не вытянет. Вдобавок, Wireguard на Android (при условии, что ядро собрано с его поддержкой) более экономно расходует ресурс аккумулятора.


      1. Rebeiro
        02.11.2019 20:42

        я не знаю о чем разговор, подключал тариф у своего провайдера 100 мегабит, и через германию, где установлен openvpn, замерял, 80 мегабит идет нормально, мы может о разных вещах разговариваем, вообще не пойму чего набросились, есть vps 150 р. поставил debian, поднял openvpn, весь трафик через германию идет круглосуточно, пинг я уже писал какой, на 100 мегабитах у своего провайдера, 80 мегабит получаю


      1. loltrol
        03.11.2019 15:30

        OpenVPN на Celeron J1900 вытягивает 3 канала, каждый по +-150 мегабит. Каждый такой клиент грузил одно ядро на 100%. Процы с aes-ni инструкциями выдать могут и скорости больше и на большем количестве клиентов. Откуда у вас такое убеждение, что openvpn не выдаст сотку?


      1. kvazimoda24
        03.11.2019 23:49

        Я на трёх туннелях в сумме имел более 600 мегабит. И упирался не в скорость туннеля.


  1. proctoleha
    02.11.2019 08:42

    Digital Ocean один из лучших, с этим не поспоришь. Но, есть одно маленькое но — часть его ip адресов находится в черном списке Роскомнадзора. И с первого раза может не повезти. Страшного в этом ничего нет. Удаляем дроплет, создаем по новой, и так до тех пор, пока сервер не начнет откликаться. Проблема в другом: вступил в действие, как писали, здесь, на хабре, т.н. закон Яровой, и будет ли у нас завтра доступ к зарубежным серверам, богу весть.


    1. vconst
      02.11.2019 11:33
      +1

      Немного не так. Надо сначала создать новый дроплет, только потом удалить старый. Иначе можно получить тот же айпи.


  1. AllexIn
    02.11.2019 12:29

    Ценность VPN клиента, который нельзя/сложно установить на роутер равняется нулю.
    А вообще — если не хотите морочиться, ставьте StraizendVPN. Там и WireGuard и куча других протоколов из коробки.

    PS. Вопрос к экспертам: Подскажите роутер для дома, на который без проблем можно установить какой нибудь современный клиент типа WireGuard или OpenConnect.


    1. YourChief
      02.11.2019 12:39

      Любой, на котором OpenWRT хорошо работает. Посмотреть на каких лучше можно на сайте openwrt в таблице.


    1. ksenobayt
      02.11.2019 13:41

      Xiaomi Mi Router 3G. Абсолютный SOHO-убийца по соотношению цена\качество (в московскую розницу порядка 2.2-2.5 тысяч). 256 мегабайт оперативной памяти, 128 мегабайт флэша, и даже (зачем-то) дуалкор. Такого железа за такие деньги я нигде за последние два года не видел.

      Нюанса два: его нужно сразу же перепрошивать на OpenWRT (штатная китайская прошивка абсолютно бесполезна, хоть и основана на OpenWRT сама по себе), и его становится всё сложнее и сложнее найти, что на Али, что в рознице.

      Его спокойно хватает, чтобы держать 250-350 мегабит на WG.


      1. garageman
        02.11.2019 17:57

        О, благодарю. У меня домашний роутер на Tplink WR1043N уже не справляется, три VPN туннеля, один из которых OpenVPN и приличный трафик.


        1. ksenobayt
          02.11.2019 18:10

          Из существенных для кого-то минусов следует упомянуть ещё тот факт, что езернет-портов там ровно два, не считая аплинка. Впрочем, я просто поставил рядом свитч гигабитный, который у меня стоял без дела, и никак этого не замечаю.


          1. garageman
            02.11.2019 19:14

            Двух — достаточно, у меня и так стоит свитч рядом, не хватает.На али есть, закажу пожалуй.


            1. dartraiden
              02.11.2019 20:20

              Не нарвитесь на вторую ревизию (V2), которая представляет собой перемаркированную «четвёрку». Она иная по железу и никакого OpenWrt на неё нет.

              Самый верный признак — наличие синего USB-порта. Если он чёрный — перед вами «трёшка» (без гигабитных портов и без официальных сборок OpenWrt), если его нет — «четвёрка». Синий (USB 3.0) только у 3G.

              И ещё посмотрите коммент ниже, возможно, захотите взять Newifi на Ebay. Тем более, там сейчас дают 5 баксовую скидку.


          1. dartraiden
            02.11.2019 20:12

            Поэтому лучше взять Lenovo Newifi 3 D2. Цена сопоставимая, портов — 4, оперативки вдвое больше, а вместо NAND старый добрый SPI-флеш.

            Любители KeeneticOS могут посмотреть на Xiaomi R3P, который после определённых программных манипуляций превращается в Keenetic Ultra KN-1810.


            1. garageman
              02.11.2019 23:14

              Респект! Особенно за spi. Скорее всего на этом варианте и остановлюсь, а то иногда накатывает желание поэкспериментировать. Прищепкой прицепился — и сливай/заливай как хочешь.


              1. dartraiden
                02.11.2019 23:24

                Там UART есть для экспериментов. Плюс сторонний загрузчик от китайцев, который позволяет менять прошивки как перчатки. Но SPI ещё лучше тем, что надёжнее, чем NAND.

                А если покрутить исходники, то даже Wive-NG можно натянуть. Wireguard там нет, но прошивку хвалят.


                1. ksenobayt
                  02.11.2019 23:37

                  Так-то U-boot спокойно меняется на Breed и на 3G, то единственный шанс вытащить его из кирпича впоследствии.


      1. rostislav-zp
        02.11.2019 22:02

        Да.отличный роутер.правда я шил на padavan. Второй год держит vpn подключение к zaborona.help как клиент.так же великолепно проявляет себя как vpn сервер.только 2 порта на корпусе немного огорчали, но дешевый свитч решил проблему


        1. ksenobayt
          02.11.2019 22:07

          Падаван все же проприетарен, и в нем до сих пор нет поддержки Wireguard. Тикет второй год висит.


          1. dartraiden
            02.11.2019 23:26

            И не будет, ядро слишком старое. А развитие прошивки прекращено, энтузиасты только отдельные компоненты обновляют. Из проприетарного, если мне не изменяет память, там NTFS-драйвер, который вообще не нужен, пока есть NTFS-3G. Остальное свободное.

            Возможно, что-то можно завести на портированной с асусовских роутеров прошивке (там ядро 3.10), но я не заморачивался, потому что OpenWrt с каждым релизом работает всё лучше (свободный драйвер mt76 в транке вообще изумительно), а при желании можно и проприетарные дрова прикрутить.


            1. ksenobayt
              02.11.2019 23:35

              Там сама лицензия рома проприетарна по своей сути. Я не рассматривал его именно по этой причине в первую очередь.


              1. dartraiden
                03.11.2019 00:47

                Автор может накрутить любые запреты, но если они противоречат GNU GPL, то они ничтожны.


                1. ksenobayt
                  03.11.2019 21:34

                  Безусловно, это было бы так, если бы итоговый результат не включал их (его) собственного кода. При любом раскладе, я предпочитаю с подобными проектами не связывать ни себя, ни свою инфраструктуру.


    1. Tangeman
      02.11.2019 18:03

      GL.iNet имеет несколько моделей с нативной (из коробки) поддержкой WireGuard.

      Памяти и флеша тем не очень много (хотя и хватает для фич типа прокси и прочего), но по скорости всё ок — как SOHO рутер очень даже. Цены тоже вполне демократичные.


    1. BigD
      03.11.2019 00:03

      Keenetic начал получать поддержку Wireguard. А IPSec давно из коробки с хардварным ускорением. OpenVPN давно тоже есть.


  1. paco
    02.11.2019 12:59

    Лучше Outline (по простоте установки, распространению и клиентским приложениям) еще ничего не придумали. Кстати на DO ставится в 1 клик, без консоли :)


  1. restylane
    02.11.2019 13:47

    Для россиян уже довольно давно самый простой тариф DigitalOcean стоит $6 в месяц. Кроме того, едва ли не все IP данного хостинга заблокированы РКН, и таким образом, для соединения с VPN вам понадобится еще один VPN.


  1. krab4yar
    02.11.2019 13:47

    Лучший костыль для генерации конфига github.com/burghardt/easy-wg-quick скачать скрипт можно прямо в /etc/wireguard/


    1. UnnamedUA
      02.11.2019 14:44

      +1
      И на винду рекомендую такой клиент tunsafe.com


      1. krab4yar
        02.11.2019 14:45

        Ну уж нет. Он не развивается. www.wireguard.com/install


  1. Whuthering
    02.11.2019 15:38

    Существенный недостаток Wireguard — то что он UDP-based и его пакеты со стороны выглядят как непонятное нечто. Что, с одной стороны, даёт хорошую скорость и устойчивость к выявлению со стороны DPI конкретных типов VPN, но при этом окажется совершенно неработоспособным, когда в попытках борьбы с VPN'ами маразм дойдет до блокирования или шейпинга всего, что не похоже на ни на один стандартный протокол. Ну и бонусом возможны проблемы с пролезанием через корпоративные firewall'ы и криво настроенные NAT'ы. Поэтому протоколы, которые со стороны выглядят как валидный HTTPS (типа SSTP или AnyConnect) будут гораздо надежнее, хоть и не такие скоростные.



    1. krab4yar
      03.11.2019 05:38

      Пока что этот недостаток не перевешивает его достоинства: мгновенное переподключение (даже под NAT при условии включенным KeepAlive раз в 20 секунд), в несколько раз ниже нагрузка на CPU в юзерспейсной реализации, лучшие показатели по энергопотреблению, в разы легче конфигурация серверов и клиентов.
      Но сабж не создавался для этих ваших VPN, в самом начале, это средство создания тунелей.
      Он реализует на столько простую основу что для «коммерческих» VPN'ов нужно писать и управление клиентами на сервере и фирменный клиент для Windows.


    1. xdimquax
      03.11.2019 05:38

      его пакеты со стороны выглядят как непонятное нечто.

      С чего вы решили?


      1. Whuthering
        03.11.2019 10:07

        Wireshark'ом посмотрел.


  1. 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 после авторизации, очень сложно заблокировать. Единственный минус — нативный клиент только под винду.


    1. garageman
      02.11.2019 18:02

      Почему ж никто? Я использую, например. Раз настроил и доволен.


      1. whyme
        02.11.2019 18:22

        Справедливости ради я написал «мало кто», статью про ipsec я разве что одну помню на хабре среди десятка про другие впн, даже подумываю свою попробовать написать, если время появится.


        1. shachneff
          02.11.2019 21:16

          Я решал задачу наладить работу с bot-API Telegram из софта, который находится в РФ.
          На DO взял дроплет, поставил Debian 10 и настроил ipsec ikev2. Но проблемы это не решило, т.е. запосы к bot-API уходят через VPN, а webhook'и от bot-API сервера пытаются идти напрямую в РФ и как их замаршрутизировать в vpn я не понимаю, поскольку ikev2 не является dev'айсом ...


          1. loki82
            02.11.2019 21:37

            Как то странно. А адрес вэбхука какой?


            1. shachneff
              02.11.2019 21:39

              Действительный. IPv4-адрес.
              Поэтому задам вопрос иначе: если сервер телеграм шлет сообщения на вебхук-IP-адрес моего сервера IPSEC IKEV2 VPN в Европе, то как настроить этот VPN-сервер так, чтобы полученное сообщение получал мой веб-сервер в РФ?


              1. loki82
                02.11.2019 21:45

                Перенаправить все внутрь тунеля по 443/80 порту?


          1. whyme
            02.11.2019 22:02

            Если я правильно понял, тут проще вынести сервер с ботом за РФ, другие впн тоже не должны работать, если не с policy based vpn работает, то тут надо подумать над маршрутами, должно быть решаемо, как и сказал loki82, перенаправить нужный трафик в тунель.


  1. SergeyPerm
    02.11.2019 22:42

    А кто-то практикует промышленное прокидывание портов через SSH?


    1. whyme
      02.11.2019 22:50

      В IT, я думаю, все практикуют, но недостаточно удобно для обычных пользователей (все же надо подсаживать и родителей и далеких от IT друзей, на телефоне тот еще геморой).


      1. loki82
        02.11.2019 22:59

        Мне кажется речь не об этом. Я стараюсь вообще промышленные объекты не выпускать в интернет. Но если нужна телеметрия, то организую двумя контроллерами.


  1. whyme
    02.11.2019 22:50

    del (не туда)


  1. Eklykti
    03.11.2019 00:51

    с DO есть ещё одна фишка, если вам сервер не нужен постоянно.


    По дефолту за дроплет списывается бабло даже тогда, когда он выключен. Но если сделать снапшот дроплета, а сам дроплет удалить, то платить уже надо только копейки за хранение снапшота, а когда сервер снова понадобится — создать из снапшота новый дроплет.


    1. garageman
      03.11.2019 14:36

      А адрес-то у дроплета при этом меняется? Надо будет клиентов перенастраивать либо dns запись менять.


      1. Eklykti
        03.11.2019 14:41

        Меняется, так что да.


  1. splitfire
    03.11.2019 20:13

    Подскажите, есть ли готовое решение под Windows для обхода казахстанских блокировок?
    Суть в том, что в КЗ провайдеры заглушками не заморачиваются. На заблокированный ресурс просто не проходит соединение. Сервер пингуется нормально, но http(s) соединение отваливается по таймауту. И списков тоже нет. Сегодня одно заблокировано, завтра другое, послезавтра опять первое.
    Пока в голову приходит только отслеживание коннекта на каждый вебсайт. Если соединение не устанавливается в течении 3-7 секунд — пробовать соединиться через ВПН.
    Можно ли сделать такое без пота и крови?


    1. YourChief
      03.11.2019 22:00

      Именно на сетевом уровне это сделать довольно трудно, потому что при таком избирательном переключении каналов попытка установления соединения напрямую уже начата.

      Проще всего тогда в браузере всё через прокси пустить. Если сервер не слишком далеко, то это даже не будет заметно.

      Если Вы всё же хотите идти таким путём селективного проксирования, то можно адаптировать мою вариацию SOCKS прокси через SSH, чтобы по возможности она использовала прямое соединение. Для этого буквально будет достаточно попытаться установить соединение напрямую и при ошибке/таймауте уже перейти к установлению соединения через удалённый сервер.


      1. splitfire
        04.11.2019 14:40

        Да проще всего пустить вообще всё, с помощью Wireguard или SoftEther.
        Но есть одно огромное «но». Обычные диапазоны ВПСов как правило загажены по самую маковку. А это означает прохождение капчи на каждый чих; блокировка захода на сайт, с предложением послать админам сайта имэйл, и они тогда, возможно, разблокируют; или просто 403 Forbidden и пшёл вон отсюда.
        Меня то это не напрягает особо, всегда найду способ. Но сделать обход блокировок надо для девушки, которая от IT очень далека.
        Вот и ищу способы.


        1. YourChief
          04.11.2019 17:00

          Можно просто найти адрес из свежего диапазона, который не загажен, поперебирав адреса на каком-нибудь Digital Ocean. Там попадаются диапазоны адресов, которые только недавно куплены у нормальных владельцев. У меня сейчас как раз такой, вроде бы капчи не докучают.

          Либо попробуйте Firefox Private Network, для ваших целей скорее всего хорошо подойдёт. Трафик идёт через серверы Cloudflare Warp (но не через wireguard, как в Warp, а обычный HTTP-прокси через TLS 1.3). В Firefox устанавливается простым расширением. С остальными браузерами и приложениями можно подружить, если сделать прокси, который получает и подставляет авторизационный токен в хедер авторизации прокси. У меня есть такое готовое решение.


  1. Ivenoname
    03.11.2019 20:13

    К чему эти статьи каждый год? Outline ставится одной строчкой. Хватает 45 рублевого vps. При этом даже в Китае работает, так как все эти обычные необсфуцированные впн сразу же блочатся.


    1. loki82
      03.11.2019 21:33

      Где такой? За 45 рублей


    1. garageman
      03.11.2019 22:04

      Брал как-то Голландский VPS (Zomro) за $5/три месяца. Но там в ядре не поддерживалось чего-то, уж не помню. И ядро не сменишь.