Как поднять личный VPN в Европе из РФ за 15 минут

Данный вопрос все чаще возникает в комментах на Пикабу, в связи с чем я решил запилить максимально простой гайд по настройке собственного VPN на виртуальном сервере. Выгодное отличие от доступа к готовым VPN серверам, вроде ExpressVPN, состоит в том, что если VPN начнут банить, первым делом придут именно к ним. За vpn на личных виртуальных серверах вряд ли кто-то вообще будет гоняться.


UPD. Получилось длиннее, чем я рассчитывал, но все не так страшно, как выглядит. Глобально, всего 3 простых шага.


Шаг 1: покупка VPS

Если у вас уже есть свой VPS или вы планируете использовать какой-то другой (не тот, который предлагаю я), можете смело переходить к третьей части.


Использовать можно абсолютно любой выделенный сервер, но я, в качестве примера, приведу тот, который использую сам - ihor.ru (@alex6508, спасибо за совет).

Наверняка найдутся инвалиды, которые начнут обвинять меня в рекламе. По этому сразу хочу сказать таким - идите, пожалуйста, █████ и не сворачивайте. Единственная моя цель - это помочь людям разобраться в теме.


UPD. Задают вопросы - у данного провайдера скорость 200 мегабит и безлимитный трафик


Из плюсов у него то, что компания российская и оплатить ее услуги можно российскими картами, но сервер можно арендовать в Финляндии. Стоит это добро от 240 рублей в месяц (или 80 рублей, если вам зачем-то нужен vpn на территории РФ).

В общем, переходим на сайт, отмечаем Европу, выбираем самый дешевый тариф, отключаем все дополнительные услуги, если они будут значится. Регистрация довольно банальная, проделывать ее заново и скринить мне лениво, простите. Уверен, все разберутся. Впрочем, постараться придется, подтверждать email мне пришлось 4 раза, пока до них дошло. Но это ладно, мелочи. Операционную систему выбираем - Ubuntu 20. В итоге должно выглядеть примерно так

Как поднять личный VPN в Европе из РФ за 15 минут VPN, Санкции, Гайд, Мат, Длиннопост

Вот с оплатой могут возникнуть небольшие сложности. Дело в том, что всю пользовательскую часть интерфейса этого хостинга разрабатывали глубоко душевнобольные люди и все что можно было сделать через задницу, они сделали именно так. В частности, оплатить при помощи visa/mastercard мне не удалось, так как, видимо, оплата идет через западные конторы. Но можно оплатить через Мир, Яндекс деньги, Киви и еще какую-то поебень. В общем, тоже разберетесь, не маленькие.

После оплаты, наконец, мы сможем перейти во вкладку "Виртуальные серверы" в меню личного кабинета, выбрать нашу машину в списке (она будет одна) и нажать кнопку "Перейти"

Как поднять личный VPN в Европе из РФ за 15 минут VPN, Санкции, Гайд, Мат, Длиннопост

Попадаем в панельку сервера, жмем в меню на "Виртуальные машины" => "Параметры VM", Там нас интересует две вещи: ip адрес и пароль.

Как поднять личный VPN в Европе из РФ за 15 минут VPN, Санкции, Гайд, Мат, Длиннопост

ip смотрим в соответствующем пункте меню, пароль создаем новый (не делайте пароль простым. Его будут пытаться подобрать, поверьте).


Шаг 2: Подключение к VPS

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

ssh root@MY_IP

к примеру:

ssh root@111.111.111.111

После чего ввести пароль, когда его спросят.


Пользователям Windows нужно будет скачать PuTTY на официальном сайте. Установка в два клика, ничего сложного. Запускаем PuTTY, в появившемся окне вводим наш ip и нажимаем "Open"

Как поднять личный VPN в Европе из РФ за 15 минут VPN, Санкции, Гайд, Мат, Длиннопост

У нас спросят login - вводим root. Пароль - наш пароль. Будет выглядеть как-то так

Как поднять личный VPN в Европе из РФ за 15 минут VPN, Санкции, Гайд, Мат, Длиннопост

Шаг 3: Установка OpenVPN

Поздравляю! Самое сложное позади! Было решено пойти по пути наименьшего сопротивления и воспользоваться готовым скриптом для установки OpenVPN. Вставляем в консоль следующую строку:


wget https://git.io/vpn -O openvpn-install.sh


Это скачает нам скрипт, который сильно упростит задачу (можете изучить его перед запуском, ничего предосудительного в нем нет). Далее запускаем его:


sudo bash openvpn-install.sh


Нам зададут несколько вопросов:


Which protocol should OpenVPN use?

Жмем "1" и enter


What port should OpenVPN listen to?

Жмем enter


Select a DNS server for the clients:

Жмем "2" и enter


Enter a name for the first client:

Это имя пользователя. Называйте как хотите. К примеру, я назвал mydesktop и myphone. Чтобы было понятно что это и кто это.


После жмем enter


Готово! Можно пользоваться!


Ну... Почти. Нужно скачать сгенерированный ключ к себе. Проще всего это сделать при помощи filezilla. Качаем клиент на официальном сайте, установка в два клика. Открываем софтину, жмем на кнопку менеджер сайтов (верхняя левая), добавляем новый сайт и вводим наши данные:

Как поднять личный VPN в Европе из РФ за 15 минут VPN, Санкции, Гайд, Мат, Длиннопост

После жмем "Соединиться". Откроется директория сервера со сгенерированным ключами. Просто перетаскиваем их к себе на ПК.

Как поднять личный VPN в Европе из РФ за 15 минут VPN, Санкции, Гайд, Мат, Длиннопост

Этот файл - все что нам нужно, чтобы подключиться к VPN.


Шаг 4: Подключаемся

Для ПК нужно скачать клиент OpenVPN на официальном сайте. Качаем Windows 64-bit MSI installer. После простой установки у нас в трее появится вот такой значок

Как поднять личный VPN в Европе из РФ за 15 минут VPN, Санкции, Гайд, Мат, Длиннопост

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


Вот теперь точно все, можно пользоваться! : )


P.S. Для мобильных телефонов все точно так же, качаем в маркете клиент OpenVPN и скармливаем ему наш файл ключ.


P.P.S. Если мы хотим добавить больше пользователей, как раньше, подключаемся к серверу и снова выполняем

sudo bash openvpn-install.sh


Нам предложат добавить нового пользователя или удалить старого.

Вы смотрите срез комментариев. Показать все
21
Автор поста оценил этот комментарий
Не работай под рутом!
раскрыть ветку (20)
19
Автор поста оценил этот комментарий

Гайд и так получился непростым. Если здесь еще описывать настойки по безопасности, формирование ssh ключа и прочее - народ охренеет. Плюс, в данном случае - насрать. Это не сервер компании и никто не будет целенаправленно ебаться его ломать. Надежного пароля вполне достаточно

раскрыть ветку (10)
8
Автор поста оценил этот комментарий
Боты будут. А так же, учти тот факт что люди которые будут пользоваться этим гайдом, уж явно не будут обновлять систему, соответственно боты которые сканят на наличие известных уязвимостей и бэкдоров в один прекрасный момент могут и получить доступ. Ну и чтобы особо не грузить людей о том что и для чего надо при настройке безопасности, можно за полчасика на коленке написать баш скрипт (не уверен есть ли таковые уже готовые, но скорее всего да) который за юзера и проведет все нужные настройки.
раскрыть ветку (4)
5
Автор поста оценил этот комментарий
Не, в целом я согласен, это не хорошо, но вариантов я не вижу других. Сделать скрипт, который на сервере выполнит настройки - не большая проблема. А на клиенте? Под виндой сгенерить ssh ключ, доставить его на сервер, подключиться с ним... Хрен знает. На линухе можно было бы, но его мало кто пользует
раскрыть ветку (3)
Автор поста оценил этот комментарий
Как минимум, на сервере создать нового пользователя и создать ему пароль и выключить возможность логиниться по ссш от рута. Да, логин по rsa будет несомненно безопаснее чем по паролю, но да, я соглашусь что мучать юзера под виндой создавать серт, это то ещё извращение. Но в любом случае не стоит пренебрегать элементарными правилами безопасности.
раскрыть ветку (2)
3
Автор поста оценил этот комментарий
Да, пожалуй нужно будет скрипт для этого сделать и в пост добавить
2
DELETED
Автор поста оценил этот комментарий
В наше время всё это делается 10-15 минут :)
Я на потоке собираю друзьям ВПНы, т. к. живу в Крыму - смена порта ссш, установка fail2ban, запрет логина рута и по паролю (включая генерацию ключа), установка ufw с 3 правилами и поднятие openvpn делается очень быстро.
1
Автор поста оценил этот комментарий

Для подобных целей изобрели скрипты и контейнеры. Если изобретать велосипед, то хоть с круглыми колёсами.

раскрыть ветку (4)
Автор поста оценил этот комментарий
Ниже уже отвечал. Не представляю, как сделать такой скрипт под виндой
раскрыть ветку (3)
2
Автор поста оценил этот комментарий
Да просто добавь в инструкцию:
sudo apt install fail2ban
он с настройками по умолчанию вполне сгодится для блокировки ботов
2
Автор поста оценил этот комментарий

У вас ssh и VPS с GNU/linux под рукой. Так что винда никак не помешает. Подобные посты в целом могут вызвать вопросы к хостеру от соответствующих органов. Лучше бы Вы убрали ссылку на него, чтобы не оказывать людям медвежью услугу, так, на всякий случай.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
1) ssh у меня под рукой, а ключ как генерировать, на сервер доставлять и подключаться с ним? Можно через putty тот же, но там статья выйдет в 3 раза длиннее этой.

2) У них самих на сайте висит страница, где они рассказывают, как хорошо купить у них сервер и поднять там vpn
Автор поста оценил этот комментарий

Как это?

1
Автор поста оценил этот комментарий

Почему? Что конкретно тут может случиться? Ничего. Пользовательница просто установит openvpn и закроет консоль.

раскрыть ветку (7)
1
Автор поста оценил этот комментарий
Расскажи это ботам-сканнерам. У меня на моем серваке в логах такое дикое количество попыток логина в систему, что можно охереть. Может быть если "пользовательница" не лоханется и наберет все команды правильно, то ничего и не случится. Но как минимум рут будет открыт для логина по ссш, что ни капли не есть хорошо. Вторым моментом будет то что можно с учетом человеческого фактора не так прочитать, не так набрать (не все копипастят же), и по случайности выполнить совершенно другую команду.
раскрыть ветку (6)
5
Автор поста оценил этот комментарий

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

На сервер по ssh ты ходишь с одной единственной целью - провести какие-то работы. Которые в подавляющем большинстве случаев требуют root прав.
Так что ты или сразу делаешь sudo -i, или просто каждую команду запускаешь через sudo.

И как тут это защищает от человеческого фактора и выполнения не той команды? Какая разница, будет она выполнена от рута или от рута через sudo?


Возможность логина рутом через ssh - тут соглашусь, потенциально уменьшает безопасность.
НО имея достаточно сложный пароль можно на самом деле не очень беспокоиться о своём бесполезном VPN сервере. Вряд ли его подберут в ближайшую сотню лет.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
В одном из комментов выше в ветке я упомянул ботов и уязвимости. В ядре линукса было уже не один десяток уязвимостей позволяющих получить удаленный доступ без знания пароля.

Плюсом, далеко не все действия требуют рут доступа, и если какая-то команда либо скрипт внезапно выдают предупреждение что им нужен рут доступ, это может звоночком чтобы пересмотреть свои действия. Грубо говоря выполняя команду через судо ты сам для себя ещё подтверждаешь что ты знаешь зачем нужны права администратора тому или иному скрипту. А ранить из-под рута все подряд... Прямой путь отправиться искать бэкапы.
1
Автор поста оценил этот комментарий
боты сканеры в основном же стучатся на стандартный 22 порт, поставить какой нибудь 43821, и станет как минимум «потише». Ещё есть fail2ban например
Автор поста оценил этот комментарий

Если человек не понимает что он делает, то уж отключение рута вообще не для него.

раскрыть ветку (2)
3
Автор поста оценил этот комментарий
Человек который понимает что делает, явно не на пикабушке будет искать статейки на тему "как поднять впн". А того кто не понимает что он делает, надо обезопасить от как минимум банальных брешей в безопасности.
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

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

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку