Всем приветь!
Последнее время все больше и больше "закручиваются гайки" интернет-свобод и это толкает все большее количество людей на то, чтобы прибегать к разным анонимайзерам и проксимайзерам. Конечно, скрыть свой реальный 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-серверу.
Ссылка на сайт и инструкцию по установке.
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 тут показала наиболее высокую, чем со всеми остальными сервисами.
Ссылка на сайт и инструкцию по установке.
3. Outline
Из всех рассматриваемых сегодня VPN-сервисов этот является наиболее легким в установке. Администрация VPN-сервиса происходит с локального компьютера через приложение Outline Manager, а на удаленном сервере нужно всего лишь ввести одну команду, которую дает Outline Manager. Из сложностей может стать только то, что для работы VPN нужно установить докер. Из всех возможных настроек, которые можно применять, - это индивидуальное ограничение количества трафика для клиента в течение 30 дней.
Outline работает, когда другие VPN заблокированы, и устойчив к изощренным формам цензуры, таким как блокировка на основе сети или блокировка IP. Outline более устойчив, потому что он построен с использованием протокола, который трудно обнаружить и, следовательно, сложнее заблокировать.
За два месяца работы зарекомендовал себя положительно и стабильно.
4. Pritunl
С Pritunl у меня давняя дружба, как и с OpenVPN. Собственно, Pritunl является надстройкой OpenVPN. Он имеет очень дружелюбный и понятный веб-интерфейс, через который можно не только отслеживать количество клиентов и статус их подключения, но и настраивать сам VPN-сервер. Если быть точным, то всё администрирование VPN-сервиса происходит в вебе. Данный сервис имеет три тарифа, один из которых бесплатный. С повышением тарифа можно получить дополнительные опции, которые достаточно интересны, но для личного использования бесполезны и с лихвой можно ограничится бесплатным тарифом. Платным тарифом можно воспользоваться бесплатно в тестовом периоде (7 дней), но для этого надо привязать карту. Углубляться во все прелести платной подписки не стану, их можно узнать самостоятельно на сайте или спросить в комментариях. Для использования Pritunl не нужна регистрация.
Сам процесс установки прост. Он займет не более 15 минут, еще 5 минут на создание инфраструктуры и минута на получение и установку сертификата VPN.
Из особенностей хочу отметить то, что без особого труда можно создавать несколько VPN-сервисов на одном сервере. И мы не создаем пользователя для каждого сервиса в отдельности или для всех сервисов сразу, есть возможность решать, сможет ли тот или иной пользователь получать доступ к тому или иному сервису. Для этого есть группы (или organizations), в которых состоят пользователи. И доступ к сервисам разрешается не пользователю, а группе, в которой состоит пользователь.
Ссылка на сайт и инструкцию по установке.
5. VPNFace Lite
С данным VPN-сервисом я познакомился несколько лет назад, и он покорил меня своей простотой и Tor-подключением. На сервере для его установки надо запустить только одну команду и ответить на два интерактивных вопроса, после мы переходим в браузер и в три клика настраиваем админку, которая дает доступ к администрированию веб и сервера (доступ на сервер становится доступен только через админский VPN-сертификат), однако он не анонимизирует трафик, он создает только шифрованный туннель для администраторских нужд. Помимо этого подключения, доступно еще два вида подключения: стандартный и всем привычный VPN, который шифрует и анонимизирует трафик, а второй, DarkVPN, который дает доступ к ресурсам .onion, шифрует трафик, анонимизация происходит посредством постоянно меняющейся точки выхода в сеть, что скрывает не только реальный IP-адрес пользователя, но и IP-адрес VPN-сервера, через который осуществляется выход. Однако все это приносит в жертву скорость интернет-подключения.
Не буду навязывать свое мнение, что лучше, а перефразирую старую советскую песню, которую до сих пор можно услышать под Новый год в каждой квартире: "Думайте сами, решайте сами, какой VPN иметь..."
Благодарю за внимание!
Благодарность автора
Благодарю Алексея Байко, Дарью Гулькович и Владислава Гедвило за внесенные правки, а также Евгению Нелипович за помощь в оформлении.
Комментарии (31)
mSnus
02.08.2021 12:47Интересно, а за что минусуют? С этими решениями что-то не так? Интересуюсь с точки зрения пользователя
dumasti Автор
02.08.2021 12:53+1Вот эти минусы. У меня тоже вопросы. если кто-то не согласен с тем, что в статье, то хотелось бы узнать с чем и почему? Ну про новую инфу может быть, но я не минусую за такое(
Pearson
02.08.2021 12:54Почему это обзор "сравнительный", если тут просто список из пять тул со скриншотами без всякого сравнения?
На скорость интернет-соединения в моменте (и скачивания файла скриптами спидтеста) влияет с десяток факторов, даже если вы их не учитываете, то единичный замер говорит примерно ни о чем, если тестируете "черным ящиком" - сделали б с десяток, хотя бы, а то и больше (с автоматизацией).
Плюс нет никакой инфы про и, очевидно, самой настройки тестируемых узлов и тул в попытке выжать побольше скорости, просто дефолты.
Такое себе, крч, имхо.
dumasti Автор
02.08.2021 13:00Сравнивалось тут сложность настройки, возможность что-то менять от дефолта, "умения" сервисов и скорость. Основной фактор, который влияет на скорость - это способность локального компьютера зашифровать/расшифровать трафик, передать его на сервер и там тоже самое, только обратно.
Renaissance
02.08.2021 13:03Тестирование скорости проведено неправильно: замеры нужно делать внутри тоннеля «клиент-сервер», по скриншотам из статьи можно сделать ошибочный вывод, что ни одно из указанных приложений не способно протянуть через себя 100мбит/с трафика, что является полной неправдой (это я еще не говорю про тех. характеристики сервера и клиента, если еще и их учитывать, то вообще смешно получается). Это просто ввод в заблуждение.
Ungla
02.08.2021 14:12+2Пользуюсь https://github.com/trailofbits/algo . Поднимает StrongSwan для ipsec с высокосекьюрными настройками, WireGuard и генерирует настройки клиентов.
dartraiden
02.08.2021 16:19https://github.com/pivpn/pivpn туда же. shell-скрипт, который поднимает сервер WireGuard/OpenVPN и генерирует конфиги для клиентов.
edo1h
04.08.2021 15:05но у него же есть режим static key, который ну просто тривиален в настройке:
генерируем ключ одной командой, подготавливаем конфиги клиента и сервера из нескольких строк каждый и… всё.
ModestONE
02.08.2021 23:11Прочитал, но посыл заметки не совсем понял. Потому что: если руки прямые, то wiregurad, а если нет и/или лень, тогда есть cloudflare warp. Последнего хватит чтоб открыть заблокированные ресурсы. Так понимаю, что автор под закручиванием это таки имел ввиду. Если же речь шла о РЕАЛЬНОЙ безопасности, то где в таком случае тесты, список оборудования и прочее? Потому что без аппаратной поддержки любое шифрование, ну такое себе. Да, "внезапно", есть такие сетевые устройства. Моделируем ситуацию: автор поднимает опенВПН, а оборудование у него стоит от РТ - оптический терминал в режиме роутера. Почему нет?.. Затем он становится "кому-то" интересен. Далее: ему посредством ОМСИ заливают модифицированную прошивку, да - "внезапно", такие есть и это реально. Все, приехали. Весь ВПН трафик попадает в деанон. В общем хз, но заметка странная. Больше на "опрос" похоже, мол написанное автором не "тру". Лучше делать так-то и вот так, а использовать такое-то и эдакое.
ЗЫ: Фидонет эдишн.
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 - если правильно всё поднять и настроить - работает на удивление быстро.
фуух вроде бы всё
edo1h
09.08.2021 18:48т.к. конфиг не зашифрованый и там лежит приватный ключ(в офицальном клиенте конфиг зашифрован средствами dpapi вроде как и пользователю нельзя получить к расположению конфига).
OpenVPN: (f finally)
хм, а как это решается в openvpn? (да и в wireguard интересно, это windows-специфичная фича?)
justPassedBy
09.08.2021 23:13+1openvpn работает на сертефикатах и если явно не указывать опцию
nopass
при генерировании сертефиката (./easyrsa gen-req client1 nopass) то в конфиге всё будет зашифровано, например как вот здесьwireguard под линуксом без рута в ту папку где лежит конфиг не зайдёшь, эта тема поднималась даже разработчикам в писали но они ответели что пароль можно также как и конфиг угнать так или иначе.
edo1h
10.08.2021 02:01понял про что вы.
я привык, что vpn работает как демон/служба, не взаимодействуя с пользователем.
endlessnights
Могли бы еще рассмотреть отличное решение — Mikrotik CHR (да анлок скорости стоит денег, около 2к рублей, но это единовременно, + лицензия переносимая)
dumasti Автор
В том-то и дело, что тут я говорил о бесплатных решениях (pritunl только немного выбивается из этого, но у него есть бесплатная версия, которая для личного пользования полностью подходит)