В связи с претензиями к популярным VPN-сервисам и появлением новой компании, которая обещает «100% блокировку Telegram».
Как мы все уже на TJ знаем, Роскомнадзор выдал тендер «РДП.ру» на установку их системы DPI, для того чтобы попытаться окончательно заблокировать Telegram на территории РФ. Пытаются ввести всякие законы о ещё большем контроле трафика внутри РФ, и помимо этого Роскомнадзор попросил многие популярные VPN-провайдеры зарегистрироваться в его системе, в противном случае пригрозив им блокировкой. Из-за этого всё больше людей изучают возможности создания своего собственного VPN соединения, а не покупки сервиса у кого-то другого.
Для начала поймём, в чём разница в сравнении с покупкой VPN-сервиса:
- Дешевле (иногда);
- Приватнее и безопаснее. Вы точно будете знать, ведёте ли вы сами записи о посещаемых сайтах на вашем VPN-сервере или нет;
- Быстрее. Вы можете выбрать сервер ближе к вашей локации для меньшего пинга, да и на самом сервере будете вы один;
- Круче (100%).
Для того чтобы запустить на своём сервере VPN, нужно понимать, какой клиент, протокол и тому подобное вы собираетесь для него использовать. Об этом и будет конкретно эта статья.
Проект, который начали разрабатывать ещё в 2001 году и с тех пор потихоньку улучшали. Является в какой-то степени академическим исследованием.
На мой взгляд, самый умный, интересный и легкий для установки и подключения клиент. Главная фишка даже не в том, что его разрабатывали в Японии от имени прекрасного университета Цукубы, а в том, что его функциональность уникалmyf по сравнению с любыми другими VPN-клиентами (хоть и немного ограничена по ОС).
SoftEther VPN позволяет подключаться к себе, шифруя трафик в:
- DNS. Таким образом можно использовать интернет на полную, даже если ваш провайдер отключил вам интернет, но не ограничил DNS-соединения;
- ICMP. Аналогично DNS-соединению, все ваши пакеты будут видны на уровне DPI как обычный ICMP;
- SSL. Самое крутое на мой взгляд, 100% соответствие HTTPS-пакетам. Отличить от обычного подключения на сайт через HTTPS невозможно (как заверяет SoftEther);
- L2TPv3/IPsec;
- OpenVPN.
Вдобавок всё это даётся бесплатно из коробки, а в версии для Windows есть графический интерфейс.
Минус SoftEther: на macOS использовать его в полном объёме не выйдет, как и на телефонах. SSL-VPN соединение (то самое которое упаковывает трафик в HTTPS) работает только при условии подключения с компьютера под операционной системой Windows. А для того, чтобы запустить и без того полурабочий клиент для macOS, придётся собирать клиент вручную.
Других серьёзных минусов у него нет. Я с удовольствием использовал его в свои времена, когда на рабочем Wi-Fi отфильтровали OpenVPN, L2TP, IPSec и другие, а на Reddit мне всё равно хотелось заходить.
OpenVPN
(Обновлено благодаря Золотому Наномишке)
Самый популярный в мире клиент OpenVPN для создания VPN-подключений. Его тоже можно установить бесплатно на любой сервер Linux, а их можно достать всего за 2 евро в месяц: работать OpenVPN на них будет прекрасно.
В интернете существует куча руководств по установке данного VPN-сервера. Запустить его ужасающе просто.
OpenVPN используют много компаний, есть вдоволь публичных и приватных VPN-сервисов на продажу и для бесплатного подключения. Всё это позволяет коммьюнити вокруг клиента быстро находить баги и уязвимости, а разработчикам — исправлять их.
Эксплуатировать OpenVPN возможно разными способами: пропуская свой трафик через обычный OpenVPN-протокол или же модернизируя клиент, к которому существует множество интересных модулей. По словам пользователя TJ Золотого Наномишки, нижеперечисленное используют для обхода блокировок в Китае:
- Stunnel. Позволяет превратить трафик между OpenVPN-сервером и OpenVPN-клиентом в полную копию TLS/TCP (HTTPS трафика, о котором уже говорилось в клиенте SoftEther);
- obfsproxy. Он хоть и старый модуль, но в каком-то смысле «морфит» (изменяет вид) трафика, пакуя его в нужный человеку формат. Он сложен для настройки на серверной стороне, да и новый модифицированный пакет может быть заблокирован, и несколько внутренностей всегда останутся теми же — время, размеры пакета, другие основные характеристики. Однако когда в Иране в 2012 году начали фильтровать SSL-трафик и подключение к ТОРу было заблокировано, это на какое-то время спасло ситуацию.
Для кого-то устанавливать модули поверх OpenVPN может показаться проблемой, однако это до момента, пока не будет найдена инструкция на установку популярного модуля. В основном это не занимает больше пары-тройки строк в командной строке.
IPSec VPN
Популярное и ещё более простое решение. IPSec является протоколом для VPN-соединений (выходящие из него — AH, ESP, IKE, и другие), и установить его можно одной строчкой в командной строке Linux-сервера. Он даёт достаточный уровень безопасности, скорости и всего остального, при этом функциональность ужасно скудна, да и сами протоколы легко блокируются и фильтруются.
С другой стороны, он также быстро и круто работает на телефонах, и многие публичные VPN-сервисы, которые продают к себе доступ для соединений с мобильных устройств, используют именно IPSec.
VPN через SSH
Самое смешное и простое подключение, которое позволяет создать прокси из пустого SSH подключения к стороннему серверу. Обнаружить трафик и определить какого он типа в этом случае возможно, однако не так легко, как кажется.
Реализуется простой командой в одну строку ("ssh -N [email protected] -L 3306:127.0.0.1:3306") — и вуаля, у вас прокси на указанном вами порте (в приведённом примере — 3306, а IP для подключения 127.0.0.1, потому что соединение открыто на локалхосте).
Удобен в использовании, относительно сложен и непопулярен в какой-то степени в блокировке. Позже его можно использовать как прокси, пуская всю систему через него — например, с помощью Proxifier или любого другого софта. Тем не менее обнаружение уже исходящего трафика, зашифрованного в вид SOCKS5 (например), возможно, а поскольку SOCKS5 очень популярен, руководства по его блокировке в сети пруд пруди, и шанс того, что ваш местный офисный сисадмин уже заблокировал его, довольно велик.
PPTP VPN
Очередной очень популярный протокол, встроенный в операционные системы Windows со времён, когда ещё мамонты были живы.
Относительно сложно настраивается и на стороне клиента, и на стороне сервера. Даже с учётом, что всё делается через графический интерфейс, работает относительно средне, ничем удивительным от других протоколов или видов подключений не отличается. Пакеты идут с понятным названием протоколов и легко фильтруются с помощью DPI. Это, наверное, один из самых старых и до сих пор самых используемых протоколов и систем соединения между сервером и клиентом.
Многие говорят, что он 100% безопасен для использования, и вообще не стоит даже думать его устанавливать. Он как самое худшее — в конце списка.
Итог
Используем SoftEther VPN для максимальной эффективности, поскольку имеем кучу протоколов, настроек, и всё удобно из коробки. Однако для того, чтобы всё работало хорошо, придётся иметь сервер на Windows: стоят они недёшево по сравнению с Linux, и платить придётся по 10-15 евро в месяц. Однако можно быть уверенным в том, что VPN тебе не заблокируют, да и ограничить доступ к нему в целом не смогут, а трафик будет надёжно защищён.
Использовать его стоит только в случае, если у вас основной компьютер на Windows, потому что без SSL-VPN, VPN через ICMP и VPN через DNS он в наших реалиях теряет смысл. Разве что ради возможности подключаться сразу к серверу с нескольких протоколов (и с OpenVPN можно, и с IPSec, да и с PPTP) и отсутствию необходимости устанавливать отдельно OpenVPN + IPsec + PPTP.
В случае, если ваш основной компьютер работает на macOS, или вы не хотите платить много денег за VPN и понимаете, что он нужен просто для обхода блокировок, а именно за вами конкретно никто не следит и к каким VPN серверам для обхода блокировок вы подключаетесь никого не волнует, можно использовать OpenVPN/Ipsec протоколы — выйдет дешевле и круче.
А если вам просто лень разбираться, запускать всякие клиенты и просто хочется иметь что-то похожее на VPN под рукой, вы можете купить сервер и подключаться к нему по SSH, создавая себе прокси-соединение. Таким образом вам не придётся настраивать ровно ничего на сервере, а прокси будет стабилен, однако нужно помнить о легкой его блокировке (при условии фильтрации исходящего трафика).
Существуют и другие протоколы, методы, клиенты для подключения. Тут перечислены те, которые я по своему мнению решил перечислить (помимо PPTP — я его просто так добавил): самые популярные, стабильные, быстрые и безопасные для использования. Существует IKe2, SSTP и ещё парочка, которые в принципе бесполезны и являются или клоном/новой версией PPTP, или просто недостоверными настолько, что их не использует почти никто и нигде из-за боязни наличия дыр, которые повлекут за собой утечку данных.
Это моя первая статья. Я не умею писать, но, мне кажется, ребятам, которые мало чего понимают в этом, будет интересно почитать. Особенно при том, что почти никто не знает про SoftEther, а это ведь реально очень хороший софт, который ушёл далеко в будущее по сравнению даже с OpenVPNом, и его отсутствие в массах объясняется лишь тем, что никто о нём не знает.
Меня больше интересует всегда, кто эти люди, которые непосредственно занимаются блокировкой телеграмм vpn и тд? Это же какие-то программисты, которые читают ТЖ, сидят на хабре и тд. Что с вами не так?
Всегда были, есть и будут люди, готовые продать мать родную за деньги
Возможно они нормальные люди, которые хотят и хлебушек с маслом и не вредить особо
Может быть благодаря им телеграм и работает. Это хорошие программисты, они в ркн под прикрытием, саботируют блокировки
Даедра, спасибо за полезный пост.
Комментарий недоступен
под управлением Windows
Звучит очень-очень странно.
Комментарий недоступен
Про другие способы скрытия OpenVPN траффика не рассказал, хотя ими пользуется большинство сервисов, предназначенных для использования в Китае (там как раз жёсткий DPI фаерволл).
Вот гайд про них: https://support.nvpn.net/Knowledgebase/Article/View/416/0/how-to-bypass-dpi-deep-packet-inspection
Блин, а я про Stunnel и не знал, спасибо, ты крутой, обновлю потом текст, если можно будет.
Obsfproxy + tls-crypt тоже добавлю, хотя они какие-то не очень интересные.
Комментарий недоступен
Напиши инструкцию.
DO Это не очень вариант для некоторые сервисов, например нетфликс. Они блокируют такие известные VPS. Плюс некоторые айпи заблокированы
Самый удобный вариант, имхо - https://github.com/StreisandEffect/streisand
Я думаю, варианты с Docker будут самыми простыми для начинающих, учитывая установку в два клика. Накидай, еще хороших образов, я бы добавил их в статью на месте автора
Странно, что не упомянули outline.
Устанавливаешь, авторизируешься через DO и в пару кликов свой VPN.
https://getoutline.org/
В этой статье плохо всё: от сервера на виндовс до предложений без мультиплатформы.
SoftEther, OpenVPN, IPSec по сути все мульти-платформны.
Ещё такое есть:
https://github.com/ValdikSS/GoodbyeDPI
Сам не ковырял
С хорошим DPI у провайдера она тебе не поможет
Комментарий недоступен
Я бы ещё про Outline (протокол shadowsocks) добавил. Устанавливается легко как на сервере,так и на клиентах,про возможность обнаружения не знаю,к сожалению, ничего, но, говорят, в Китае норм работает
Outline лучшее с чего сталкивался, из коробки все заработало, каждая домохозяйка осилит установку и настройку
Сам не тестил, но шарил outline и в китае были с этим проблемы, много сетей не пропускало
Спасибо большое за пост, особенно учитывая, что чукча не писатель. Я отредактировал насколько мог, чтобы сделать более удобочитаемым.
Всё-таки это не инструкция, а обзор
А как же WireGuard? Да, он пока не умеет ходить по TCP и у него нет обфускации, но это самый быстрый VPN. С моим гигабитным каналом, я получаю на выходе тот же самый гигабит с минорной потерей в районе 5%. Разве это не сказка? Я уж молчу про ультрамалое время хендшейка. На мобиле использовать в режиме Always-On одно удовольствие.
напиши инструкцию?
Раз уж ты в теме: винду можно подключить? Сам уже давно на этот проект засматриваюсь, но официального клиента так и нет.
Настроить OpenVPN легко — ну да, конечно
В статье не хватает тех самых инструкций, которые позволят юзерам не потонуть в сертификатах, параметрах и правилах iptables. А то информация полезна, но как что-то поднять самому так и неясно
Комментарий недоступен
Есть скрипты-однострочники
Используем SoftEther VPN для максимальной эффективности
О**енное [охуенное] начало, ящетаю.
UPD:
Ещё круче то, что если вручную добавить exception, автоматом перекидывает на google.com.
В общем, специалисты по сетевым протоколам на ТЖ примерно такие же, как японские админы.
Используем SoftEther VPN ... однако для того чтобы всё работало хорошо, придётся иметь сервер на WindowsSoftether поддерживает, как они сами пишут, "Linux (32bit, 64bit): Linux 2.4, 2.6, 3.x, 4.x".
При этом рекомендуют RHEL, Fedora и CentOS:
https://www.softether.org/4-docs/1-manual/7._Installing_SoftEther_VPN_Server/7.3_Install_on_Linux_and_Initial_Configurations
Вот несколько гайдов по установке из Гугла (я не тестировал ни один из них!):
https://www.digitalocean.com/community/tutorials/how-to-setup-a-multi-protocol-vpn-server-using-softether
https://linoxide.com/linux-how-to/install-softether-vpn-server-centos-7/
https://www.ukhost4u.com/community/blog/how-to-set-up-a-vpn-using-softether-on-centos-7/
Есть даже некий установочный скрипт для CentOS 7 (обязательно читайте readme к нему):
https://github.com/MaverickTse/softether-install
Почему в подсайте разработка?
А куда стоило? В технологии? Думаю в разработке чуть больше подходит
Добавлю ещё WireGuard. Не пробовал, но от него все ссут кипятком на hackernews и недавно появился клиент iOS.
Только под винду пока нет, уже давно обещают soon
Комментарий недоступен
Заголовок: «Инструкция: Как настроить свой VPN-сервер». Внутри: беглый и не всегда корректный обзор имеющихся решений и полное отсутствие инструкции. wtf?
ПУТИН ХУЙЛО!
Комментарий недоступен
целовальник закрой порванка
Комментарий недоступен
ла-ла-ла
Подскажи последнее слово силы.
WireGuard забыли.
OpenConnect забыли.
Несерьезный подход.
Статья пушка, в закладки
Streisand top
Ничего не понимаю, нужен впн или прокси для телеграма на андроид. Что ставить, где платить?
Очень легко заблокировать на уровне файрволла имхо, да и такой-же формулой можно OpenVPN поднять который по моему мнению лично в разы лучше.
Ну это спорно, на самом деле.
Во-первых, смотря как настроишь. Если не повырубать на машине логи, то уже не приватнее и безопаснее.
Во-вторых, хостер будет видеть все исходящие подключения. И логировать их, конечно.
В-третьих, фиг знает, может ещё что-то
Крутая стаття. Но - в случае (моего любимого) SoftEther VPN - у них на сайте есть большое количество публичных VPN-серверов, которые выкладывают добровольцы со всего мира. И можно совершенно бесплатно - подключаться к любому из них (страну - ты видишь сразу, и выбираешь сам - США, Корея,Япония,Вьетнам.....) ..одно из моих развлечений - заходишь через Иран, например, идёшь в тренды Youtube - там такая дичь ))))
Ну гайд для винды сосед, т.к. я думаю много кто пользуется разными ос, у всех есть ведь телефоны. А заюзать телефон чтобы зайти на любимый pornhub через vpn так это вообще маст хэв. Далее. Юзать ближайший сервер - это российский значит. Который так же будет обслуживаться российским провайдером скорее всего и смысл тогда..........................
Вот скрипт:
https://github.com/hwdsl2/setup-ipsec-vpn
Поднимает и настраивает личный впн за 5 минут. Юзал на Azure, но другие хостинги тоже подойдут, лишь бы линух был.
Ну и писал по этому поводу на дтф:
https://dtf.ru/flood/19708-kak-zastavit-rabotat-psn
Но разве IPSec не проще всего заблокировать?
Комментарий недоступен
Я жду когда мне впарят штраф в 100 тысяч)
Вот самая простая инструкция и возможность почувствовать себя умнее:
https://p.umputun.com/p/2014/08/12/svoi-sobstviennyi-vpn-za-3-minuty/
А есть же, вроде, способы поднять VPN на своем роутере? Может, кто-то расскажет как (желательно, на примере Keenetic'а)?
зачем? что-бы подключаться с телефона в свою локальную сеть? VPN должен находиться там - где нет заблокированых ресурсов
Главное не поднимайте на своих серверах чистый MTProto для телеграма. Ркн блокирует айпи крайне быстро
а что поднимать если хочешь прокси для телеги?
мы себе в офис SoftEther на убунте в ирландии подняли и подключаемся к нему через OpenVpn клиенты и работает все хорошо, даже с маков
А shadowsocks? Не VPN технически, но все же
Самый простой способ настроить свой собственный VPN — это гугловский Outline: https://getoutline.org
Поступки на высших законах эволюции блокироаки модераторов отомрут сами
Комментарий удален модератором
Статья для Хабра, сначала даже не понял, что это TJ :)
Я давненько писал пост обо всем этом. берем заграничный travelsim, профит. Мобильный роуминговый интернет трафик не режут даже в Китае. Цены вполне ок, видов сим-карт навалом.