Всем приветь!

Последнее время все больше и больше "закручиваются гайки" интернет-свобод и это толкает все большее количество людей на то, чтобы прибегать к разным анонимайзерам и проксимайзерам. Конечно, скрыть свой реальный IP-адрес - это неединственная цель прокси-серверов и VPN-серверов. У них куда больше возможностей и целей. Они позволяют не только скрыть реальный IP, но и шифровать трафик, дабы уберечься от злоумышленников, которые могут его перехватить. Еще одна область применения VPN - это построение сетей для связывания, допустим, двух территориально распределенных компьютеров / офисов. Если вы настраиваете VPN-сервер, то это не значит, что вы хотите скрыть свой реальный IP, можно построить туннель для шифрования трафика, но без сокрытия IP или обхода блокировок.

Сегодня я хочу поговорить о разных VPN'ах: не о тех, которые мы покупаем у какого-либо провайдера VPN, тем более что паранойя и периодически появляющиеся новости о сливах подрывают к ним доверие; а о тех VPN-сервисах, которые мы самостоятельно устанавливаем и настраиваем.

Характеристики сервера: процессор: 2 core x 3.2 GHz, память: 2 ГБ, канал интернета: 500Мбит/с

Характеристики компьютера: процессор: 2 core x  2.4 GHz, память: 8 ГБ, Wi-Fi: 2.4GHz/5GHz, канал интернета: 100Мбит/с

Тут мы рассмотрим 5 VPN-решений:

1. OpenVPN

Об OpenVPN можно говорить много и долго, однако только глухой о нем не слышал, но читал. А посему я сразу перейду к сути.

Настройка OpenVPN несложная, однако одной-двумя командами не отделаться. Помимо настройки OpenVPN-сервера, нужно сгенерировать ключи шифрования не только для пользователей, но и для самого сервера, объединить (но необязательно) клиентские ключи и настройки в один файл .ovpn или .conf (зависит от OS, в которой будет использоваться сертификат) для удобства. Для повышения безопасности Центр сертификации для выпуска ключей лучше делать на отдельном сервере (но это опционально и все можно сделать на одном сервере). Говоря о безопасности ЦС, хочу обратить внимание на двухуровневую иерархию ЦС (тут же можно найти базовую конфигурацию OpenVPN и инструкцию по настройке), для домашнего / личного использования это конечно слишком, но быть может для большего пригодится.

Данный сервис поддается настройке под множество задач и имеет целый арсенал опций и возможностей. Обо всем этом можно прочитать в документации или на просторах Google.

Тут и далее определение туннеля (двусторонний пинг) исправляется запретом на сервере ICMP-трафика к своему VPN-серверу.

Вот как выглядит структура OpenVPN у меня на сервере
Вот как выглядит структура OpenVPN у меня на сервере
Скорость интернета без VPN
Скорость интернета без VPN
Скорость интернета в VPN
Скорость интернета в VPN
Уровень анонимизации
Уровень анонимизации

Ссылка на сайт и инструкцию по установке.

2. Softether

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

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

Настройка VPN может осуществляться как в терминале Linux, так и через серверное графическое приложение на Windows. После установки на Linux через терминал на локальном компьютере через Softether manager можно подключиться к серверу и администрировать его в GUI. Для подключения клиента нужно его установить на ПК / сервер и подключаться тем способом, который вам больше нравится (OpenVPN, L2TP и др.).

В данном решении есть одна интересная опция, которая меня заинтересовала год назад - это connect via icmp. Объясню ее принцип работы: когда провайдер прибегает к DPI и блокирует трафик, в котором замечен протокол OpenVPN или другой VPN, данная функция маскирует VPN-трафик под icmp-протокол, что позволяет пробиться сквозь блокировку.

Хочу сразу предупредить о том, что есть некоторые подводные камни во время установки, - это проблема при настройке dhcp сервера на Debian, решается она отключением dhcp для IPv6. Также происходит утечка dns, что снижает уровень анонимизации, однако немного потанцевав это исправляется.

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

Подключение менеджера к серверу
Подключение менеджера к серверу
Опции, доступные на сервере softether
Опции, доступные на сервере softether
Добавление нового VPN-сервера в клиенте
Добавление нового VPN-сервера в клиенте
Подключение клиента к серверу
Подключение клиента к серверу
Скорость интернета без VPN
Скорость интернета без VPN
Скорость интернета в VPN
Скорость интернета в VPN
Уровень анонимизации
Уровень анонимизации

Ссылка на сайт и инструкцию по установке.

3. Outline

Из всех рассматриваемых сегодня VPN-сервисов этот является наиболее легким в установке. Администрация VPN-сервиса происходит с локального компьютера через приложение Outline Manager, а на удаленном сервере нужно всего лишь ввести одну команду, которую дает Outline Manager. Из сложностей может стать только то, что для работы VPN нужно установить докер. Из всех возможных настроек, которые можно применять, - это индивидуальное ограничение количества трафика для клиента в течение 30 дней.

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

За два месяца работы зарекомендовал себя положительно и стабильно.

Окно создания VPN-сервиса
Окно создания VPN-сервиса
После установки и подключения клиента
После установки и подключения клиента
Уровень анонимизации
Уровень анонимизации
Скорость интернета без VPN
Скорость интернета без VPN
Скорость интернета в VPN
Скорость интернета в VPN

Ссылка на сайт и инструкцию по установке.

4. Pritunl

С Pritunl у меня давняя дружба, как и с OpenVPN. Собственно, Pritunl является надстройкой OpenVPN. Он имеет очень дружелюбный и понятный веб-интерфейс, через который можно не только отслеживать количество клиентов и статус их подключения, но и настраивать сам VPN-сервер. Если быть точным, то всё администрирование VPN-сервиса происходит в вебе. Данный сервис имеет три тарифа, один из которых бесплатный. С повышением тарифа можно получить дополнительные опции, которые достаточно интересны, но для личного использования бесполезны и с лихвой можно ограничится бесплатным тарифом. Платным тарифом можно воспользоваться бесплатно в тестовом периоде (7 дней), но для этого надо привязать карту. Углубляться во все прелести платной подписки не стану, их можно узнать самостоятельно на сайте или спросить в комментариях. Для использования Pritunl не нужна регистрация.

Сам процесс установки прост. Он займет не более 15 минут, еще 5 минут на создание инфраструктуры и минута на получение и установку сертификата VPN.

Из особенностей хочу отметить то, что без особого труда можно создавать несколько VPN-сервисов на одном сервере. И мы не создаем пользователя для каждого сервиса в отдельности или для всех сервисов сразу, есть возможность решать, сможет ли тот или иной пользователь получать доступ к тому или иному сервису. Для этого есть группы (или organizations), в которых состоят пользователи. И доступ к сервисам разрешается не пользователю, а группе, в которой состоит пользователь.

Только настроенный сервис
Только настроенный сервис
Окно настройки VPN-сервера
Окно настройки VPN-сервера
Настроенный и запущенный VPN-сервер
Настроенный и запущенный VPN-сервер
Страница мониторинга и создания пользователей
Страница мониторинга и создания пользователей
Скорость интернета без VPN
Скорость интернета без VPN
Скорость интернета в VPN
Скорость интернета в VPN
Уровень анонимизации
Уровень анонимизации

Ссылка на сайт и инструкцию по установке.

5. VPNFace Lite

С данным VPN-сервисом я познакомился несколько лет назад, и он покорил меня своей простотой и Tor-подключением. На сервере для его установки надо запустить только одну команду и ответить на два интерактивных вопроса, после мы переходим в браузер и в три клика настраиваем админку, которая дает доступ к администрированию веб и сервера (доступ на сервер становится доступен только через админский VPN-сертификат), однако он не анонимизирует трафик, он создает только шифрованный туннель для администраторских нужд. Помимо этого подключения, доступно еще два вида подключения: стандартный и всем привычный VPN, который шифрует и анонимизирует трафик, а второй, DarkVPN, который дает доступ к ресурсам .onion, шифрует трафик, анонимизация происходит посредством постоянно меняющейся точки выхода в сеть, что скрывает не только реальный IP-адрес пользователя, но и IP-адрес VPN-сервера, через который осуществляется выход. Однако все это приносит в жертву скорость интернет-подключения.

Начало настройки сервиса в веб
Начало настройки сервиса в веб
Получение ключа от админки
Получение ключа от админки
Окно админки с тремя видами подключения
Окно админки с тремя видами подключения
Скорость интернета без VPN
Скорость интернета без VPN
Скорость интернета в VPN
Скорость интернета в VPN
Уровень анонимизации в стандартном VPN-подключении
Уровень анонимизации в стандартном VPN-подключении
Скорость интернета в DarkVPN
Скорость интернета в DarkVPN
Уровень анонимизации в DarkVPN
Уровень анонимизации в DarkVPN
Доступ к сайту .onion в DarkVPN подключении
Доступ к сайту .onion в DarkVPN подключении

Ссылка на сайт и инструкцию по установке.

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

Благодарю за внимание!

Благодарность автора

Благодарю Алексея Байко, Дарью Гулькович и Владислава Гедвило за внесенные правки, а также Евгению Нелипович за помощь в оформлении.

Комментарии (31)


  1. endlessnights
    02.08.2021 12:33
    +1

    Могли бы еще рассмотреть отличное решение — Mikrotik CHR (да анлок скорости стоит денег, около 2к рублей, но это единовременно, + лицензия переносимая)


    1. dumasti Автор
      02.08.2021 12:38

      В том-то и дело, что тут я говорил о бесплатных решениях (pritunl только немного выбивается из этого, но у него есть бесплатная версия, которая для личного пользования полностью подходит)


  1. mSnus
    02.08.2021 12:47

    Интересно, а за что минусуют? С этими решениями что-то не так? Интересуюсь с точки зрения пользователя


    1. dumasti Автор
      02.08.2021 12:53
      +1

      Вот эти минусы. У меня тоже вопросы. если кто-то не согласен с тем, что в статье, то хотелось бы узнать с чем и почему? Ну про новую инфу может быть, но я не минусую за такое(


  1. anonymous
    00.00.0000 00:00


  1. Pearson
    02.08.2021 12:54

    Почему это обзор "сравнительный", если тут просто список из пять тул со скриншотами без всякого сравнения?

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

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

    Такое себе, крч, имхо.


    1. dumasti Автор
      02.08.2021 13:00

      Сравнивалось тут сложность настройки, возможность что-то менять от дефолта, "умения" сервисов и скорость. Основной фактор, который влияет на скорость - это способность локального компьютера зашифровать/расшифровать трафик, передать его на сервер и там тоже самое, только обратно.


  1. Renaissance
    02.08.2021 13:03

    Тестирование скорости проведено неправильно: замеры нужно делать внутри тоннеля «клиент-сервер», по скриншотам из статьи можно сделать ошибочный вывод, что ни одно из указанных приложений не способно протянуть через себя 100мбит/с трафика, что является полной неправдой (это я еще не говорю про тех. характеристики сервера и клиента, если еще и их учитывать, то вообще смешно получается). Это просто ввод в заблуждение.


  1. Ungla
    02.08.2021 14:12
    +2

    Пользуюсь https://github.com/trailofbits/algo . Поднимает StrongSwan для ipsec с высокосекьюрными настройками, WireGuard и генерирует настройки клиентов.


    1. dartraiden
      02.08.2021 16:19

      https://github.com/pivpn/pivpn туда же. shell-скрипт, который поднимает сервер WireGuard/OpenVPN и генерирует конфиги для клиентов.


  1. anonymous
    00.00.0000 00:00


    1. edo1h
      02.08.2021 18:58

      +Простота добавления новых пользователей

      Можете пояснить?


  1. anonymous
    00.00.0000 00:00


  1. edo1h
    03.08.2021 21:24

    а у кого сильно сложнее?


  1. anonymous
    00.00.0000 00:00


  1. edo1h
    04.08.2021 15:05

    но у него же есть режим static key, который ну просто тривиален в настройке:
    генерируем ключ одной командой, подготавливаем конфиги клиента и сервера из нескольких строк каждый и… всё.


  1. Tiberiy1976
    02.08.2021 16:03

    А wiregurad где?


  1. Alekseyz
    02.08.2021 20:31

    А где упоминание IPsec, L2TP, IKEv2? Или они не настолько популярны? :)


    1. dumasti Автор
      02.08.2021 21:07

      Не сказал об этих протоколах, мое упущение. Их умеет Softether.


  1. ModestONE
    02.08.2021 23:11

    Прочитал, но посыл заметки не совсем понял. Потому что: если руки прямые, то wiregurad, а если нет и/или лень, тогда есть cloudflare warp. Последнего хватит чтоб открыть заблокированные ресурсы. Так понимаю, что автор под закручиванием это таки имел ввиду. Если же речь шла о РЕАЛЬНОЙ безопасности, то где в таком случае тесты, список оборудования и прочее? Потому что без аппаратной поддержки любое шифрование, ну такое себе. Да, "внезапно", есть такие сетевые устройства. Моделируем ситуацию: автор поднимает опенВПН, а оборудование у него стоит от РТ - оптический терминал в режиме роутера. Почему нет?.. Затем он становится "кому-то" интересен. Далее: ему посредством ОМСИ заливают модифицированную прошивку, да - "внезапно", такие есть и это реально. Все, приехали. Весь ВПН трафик попадает в деанон. В общем хз, но заметка странная. Больше на "опрос" похоже, мол написанное автором не "тру". Лучше делать так-то и вот так, а использовать такое-то и эдакое.

    ЗЫ: Фидонет эдишн. ​


  1. pokamest_nikak
    03.08.2021 01:23
    +1

    AmneziaVPN забыли!


  1. pdqpdq
    03.08.2021 12:46

    Wireguard нету, статья ради статьи ?


  1. Maxim_Q
    03.08.2021 16:14

    У вас двусторонний пинг разрешен, вы не верно настроили свой VPS или ваш поставщик VPN не смог закрыть эту дырку элементарно запретив пингование сервера.


    1. dumasti Автор
      03.08.2021 16:20

      см. последний абзац части об OpenVPN


      1. Maxim_Q
        03.08.2021 16:43

        Я вижу это. Вы написали, но не исправили проблему? Просто посчитали это не нужным или другая причина? Зачем дырку в безопасности оставлять?


        1. dumasti Автор
          03.08.2021 17:00

          Я посчитал это несущественным в рамках данной статьи, а просто указал, как закрыть эту дыру.


  1. PIDrila
    09.08.2021 14:09
    +1

    Раз пошла такая пьянка - добавлю свои пять копеек про опыт поднятия различных сервисов (на отдельную статью не тянет - напишу тут), может быть кому-нибудь пригодится как мин. съэкономить своё время т.к. суммарно на "r&d" я потратил несколько месяцев:

    потратить 5 минут своей жизни

    Тоже работаю симстемным адмемнисратором и когда началась вся эта суматоха (панкдемия я имею ввиду) начальники спустили задачу поднять впн сервер на своих "мощностях" чтобы пользователи из дома подключались на рабочие компьютеры (топология типа "road warrior" или "remote access to lan" я уже не помню). Было перепробовано куча решений (бесплатных и опенсорсных) - Wireguard, Pritunl, Softether, OpenConnect, Strongswan IPSec IKEv2, OpenVpn, забегая вперёд скажу что остановились в конце концов на опенВпэне. В кратце про каждое решение(плюсы и минусы):

    Начали с новомодного wireguard:

    из плюсов: быстро работает, поднимается легко, автовостановления соединения(keepAlive), относительно lightwieight

    из минусов(почему отказались): официальный виндовый клиент не запускается без прав локального админа(начиная с версии 0.3 появилась возможность добавить пользователя в группу "сетевых операторов" и если слегка поправить реестр появится возможность включать и отключаться от тунелей пользователю со стандартными правами). Нашли не офицальный клиент(tunsafe) ту проблему он решал, но тут вмешался начальник и завернул всё это дело - т.к. конфиг не зашифрованый и там лежит приватный ключ(в офицальном клиенте конфиг зашифрован средствами dpapi вроде как и пользователю нельзя получить к расположению конфига).

    Дальше был pritunl(бесплатная версия):

    из плюсов: удобное администрирование, легко поднимается, клиент работат под обычным пользователем

    из минусов: на сервере обязательно должен быть включен ipv6 иначе оно просто не запускается(у нас в grub прописано ipv6.disable=1), пароль на конфиг файл подключения - только в виде цифр(пин код), опять таки - наличие платной версии - в какой момент разработчики решат отказаться от поддержки бесплатной версии?

    Следующий softether:

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

    из минусов: работает медленне чем другие решения, но главная причина отказа была когда я случайно обнаружил японский ip-адрес в таблице маршрутизации при активированом подключении через клиент(да я зыбыл отключить nat traversal).

    OpenConnect на очереди:

    плюсы: работает по ощущениям довольно таки быстро, лёгкая насройка серверной части(не поднятие!), "an open-source replacement for Cisco's proprietary AnyConnect SSL VPN client"

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

    Strongswan IKEAv2:

    плюсы: поддержка из коробки всеми в том числе виндой (clientless (бесклиентный), довольно таки шустрый по ощущениям

    минусы: сложна!, нет востановления соединения после отвала(по карйней мере на десятке), это моя проблема но я так и не смог пушить маршруты клиенту - и когда пользователь подключен к впну и вдруг решил зайти по smb на сетевую шару винда викидывает окно ввода кодов доступа к шаре т.е. конект к локальной шаре идёт через впн сервер.

    OpenVPN: (f finally)

    минусы (или почему я не хотел с ним связыватся in first place): сложна! долго и муторно поднимается настраивается, жрёт ресурсы как не в себя и вообще ***!1

    плюсы: когда разобрался с настройком начинаешь видеть картину целиком: начиная с версии 2.4 появилась возможность запускать клиент без прав админа(служба отдельная), начиная с версии 2.5 разработчики внедрили алгоритмы шифрования от wireguard(chacha20poly1305, ed25519), а также добавили в клиент поддержку winTUN - если правильно всё поднять и настроить - работает на удивление быстро.

    фуух вроде бы всё


    1. dumasti Автор
      09.08.2021 14:34

      Наконец-то пошел обмен опытом и впечатлениями. Спасибо)


    1. edo1h
      09.08.2021 18:48

      т.к. конфиг не зашифрованый и там лежит приватный ключ(в офицальном клиенте конфиг зашифрован средствами dpapi вроде как и пользователю нельзя получить к расположению конфига).

      OpenVPN: (f finally)

      хм, а как это решается в openvpn? (да и в wireguard интересно, это windows-специфичная фича?)


      1. justPassedBy
        09.08.2021 23:13
        +1

        openvpn работает на сертефикатах и если явно не указывать опцию nopassпри генерировании сертефиката (./easyrsa gen-req client1 nopass) то в конфиге всё будет зашифровано, например как вот здесь

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


        1. edo1h
          10.08.2021 02:01

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