VPN на своём сервере с IP адресом из США за 1$ в месяц

VPN на своём сервере с IP адресом из США за 1$ в месяц VPN, Обход блокировок, Обход ограничений, Гайд, Wireguard, VPS, Linux, Длиннопост, Комментарии на Пикабу, Скриншот

После этого коммента на меня подписалось 10 человек, так что пост специально для вас и для @bugagaggi, @Bs1234, @SvinkiPilki.

Дисклеймер:

  1. Этот пост для тех, кто знает, зачем ему VPN на своём серваке. Если вас устраивает браузерное расширение, опера турбо и прочие способы, никто не заставляет вас платить за свой сервак и настраивать его.

  2. Предполагается, что вы умеете пользоваться серваком на ubuntu на минимальном уровне и непонятные для себя вещи можете нагуглить сами.

  3. Пост содержит ряд рискованных шагов, автор не несет ответственности за ваши действия с деньгами, вы всё делаете на свой страх и риск, перепроверяйте каждую операцию и не верьте наслово.

Этот пост - не совсем гайд, просто делюсь опытом на какие грабли наткнулся на своём пути. Так что будет многобуков.

Предыстория

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

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

  2. когда придёт время, власти будут вырубать наиболее популярные решения, и такие расширения пойдут под нож первыми;

  3. непонятно, что там с безопасностью.

Поэтому было решено пилить свой собственный сервак.

Был арендован самый дешевый VPS от FirstByte в Амстердаме, на него установлен Wireguard, всё работает, блокировки от РКН обходятся. Но быстро выяснилось, что кроме блокировок с нашей стороны есть ещё и ограничения на пользователей из РФ от западных компаний. Например, в этом были замечены https://redis.com и https://www.perforce.com/

Но как они определяют, что мы из России, если сервак в Нидерландах и, судя по сайту https://2ip.io/ru/privacy/ IP адрес тоже нидерландский? Знающие люди подсказали мне, что проверять надо не на 2ip, а тут:

https://whatismycountry.com/

https://www.myip.com/

А они показывают Россию. Выяснилось, что при проверке ip адреса через https://www.ripe.net/ можно установить владельца адреса - компанию firstbyte, и именно отсюда они знают, что мы из РФ. Сейчас, год спустя, при проверке firstbyte выходят ip адреса Cloudflare. Кроме того, здесь в комментарии #comment_269943379 человек пишет, что его VPN на VPS от firstbyte, расположенный в Финляндии, определяется как финский, так что, возможно, сейчас имеет смысл попробовать firstbyte, т.к. там доступны российские методы оплаты.

Тем не менее, год назад ничего этого не было, и передо мной встала задача найти VPS за рубежом и каким-то образом оплатить его из РФ.

Был найден хостинг в США - racknerd, который можно было оплатить через WebMoney. Оплата прошла, сервак в Ashburn (рядом с Вашингтоном), VPN работает, блокировок нет ни с нашей, ни с их стороны, скорость высокая, пинг так себе. Прекрасно.

Прошел год, неделю назад пришло время расплаты оплаты. Внезапно, WebMoney не принимается. Из доступных способов - только крипта. Спросил совета тут: Вопрос - как совершить оплату криптой? Кароче, как оказалось - ничего сложного в крипте нет, сервак в порядке, VPN будет работать ещё год, так что далее рассказываю как всё это делается.

Регистрация на хостинге и оплата VPS

Сначала регаемся на хостинге.

Кто хочет сказать "спасибо" за этот пост - вот моя реферал очка: https://my.racknerd.com/aff.php?aff=4692

Для идеологических противников рефералок - сюда: racknerd.com

Но не спешите покупать сервак - обычный тариф стоит $23 за год. Чтобы получить скидку, нужно тыкать на розовый баннер вверху "NEW YEAR 2023 DEALS", либо сразу переходить по ссылке https://www.racknerd.com/NewYear/

VPN на своём сервере с IP адресом из США за 1$ в месяц VPN, Обход блокировок, Обход ограничений, Гайд, Wireguard, VPS, Linux, Длиннопост, Комментарии на Пикабу, Скриншот

В принципе, если на нашей VPS будет только VPN, то подойдет любой тариф. Главное, что тут нас должно воловать - это ограничение трафика. Год назад я не знал, сколько моя семья потребляет трафика на инсту и прочие заблокированные сайты, и поэтому для подстраховки выбрал второй тариф. Теперь уже есть статистика и выяснилось, что мы редко выходим за пределы 100гб в месяц. Кароче, если вы не собираетесь качать торренты, то можно смело брать самый дешевый тариф и не париться. Таким образом, VPN на VPS в США обойдется нам дешевле чем в 1$ в месяц. По сравнению с тем что предлагают в других постах по 500р в месяц, это - вообще ни о чем.

Внимание: если хотите накатить ubuntu 22.04, рекомендуется взять тариф с 1гб ОЗУ. Если вас устраивает ubuntu 20.04, можно брать тариф с 512мб ОЗУ. Для наших целей никакой разницы, всё равно 20.04 будет поддерживаться аж до 2025г, а до него ещё дожить надо.

Выбираем в поле Operating System ubuntu 20.04. Локации без разницы, они близко друг к другу расположены и мало отличаются по пингу до РФ. Жмем Contunue.

VPN на своём сервере с IP адресом из США за 1$ в месяц VPN, Обход блокировок, Обход ограничений, Гайд, Wireguard, VPS, Linux, Длиннопост, Комментарии на Пикабу, Скриншот

На следующей странице жмем Checkout, заполняем данные о себе. Нужно ввести адрес проживания, и в этом месте я на всякий случай ввел фейковый адрес из США чтоб мой аккаунт не снесли за то что я из России. Возможно, так делать не следовало, но пока что проблем не было. Для генерации фейкового адреса можно воспользоваться онлайн-генераторами, например https://www.fakepersongenerator.com/Random/generate_address

В Payment Details выбираем Crypto (BTC, LTC, USDT) и переходим к оплате.

Обращаем внимание, что оплатить можно не всякой криптой, а только опделенными валютами в определенных сетях:

For crypto payments, we currently support Bitcoin network, Bitcoin Cash network, Litecoin network, Dogecoin network and ETH network (ERC20), Binance network is NOT supported.

Жмём Pay Now и нам предлагается одна из криптовалют на выбор. Я выбрал Litecoin (LTC) т.к. там наименьшие комиссии. Нам дают адрес крипто-кошелька, на котором ожидается перевод оплаты за хостинг. Нужно успеть совершить оплату за 2 часа.

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

Существует множество разных обменников с разной репутацией и возможностями. Чтобы ориентироваться среди них, идём на агрегатор обменников (на пикабу этот домен запрещен, гуглите бэстчендж).

В левой колонке таблица, прокручиваем её до раздела "Интернет-банкинг", слева жмём кнопку Сбербанк RUB или выбираем свой банк. Справа выбираем Litecoin LTC.

VPN на своём сервере с IP адресом из США за 1$ в месяц VPN, Обход блокировок, Обход ограничений, Гайд, Wireguard, VPS, Linux, Длиннопост, Комментарии на Пикабу, Скриншот

Теперь в таблице справа отображаются подходящие нам обменники. Жмем вкладку "Калькулятор", переключаем в режим "Получаете", вставляем сюда ту сумму которую нам показала платёжка (на странице с адресом кошелька) и жмем "Рассчитать".

VPN на своём сервере с IP адресом из США за 1$ в месяц VPN, Обход блокировок, Обход ограничений, Гайд, Wireguard, VPS, Linux, Длиннопост, Комментарии на Пикабу, Скриншот

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

VPN на своём сервере с IP адресом из США за 1$ в месяц VPN, Обход блокировок, Обход ограничений, Гайд, Wireguard, VPS, Linux, Длиннопост, Комментарии на Пикабу, Скриншот

Я обменивался через multichange, проблем не возникло. Для верификации попросили фото карты на фоне их сайта (с одной стороны, конечно). Вставляете сюда адрес LTC и точную сумму с сайта платёжки, они показывают реквизиты, скидываешь на них сумму в рублях, на указанный адрес приходит крипта.

Готово, VPS оплачен на год:

VPN на своём сервере с IP адресом из США за 1$ в месяц VPN, Обход блокировок, Обход ограничений, Гайд, Wireguard, VPS, Linux, Длиннопост, Комментарии на Пикабу, Скриншот

Настройка VPS

Далее жирным текстом указаны команды для выполнения в локальной консоли или на сервере.

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

Сначала генерим у себя локально пару ssh ключей

ssh-keygen

Через консоль (на линуксе) или ssh-клиент putty (на винде) заходим по тому паролю, что нам предоставил хостер, где 123.123.123.123 - ip адрес VPS.

ssh root@123.123.123.123

Копируем публичный ключ на сервер (UPD: для пользователей Windows - смотрите пункт 2 в комментарии #comment_271568783)

ssh-copy-id root@123.123.123.123

Меняем настройки ssh

sudo nano /etc/ssh/sshd_config

Откроется текстовый редактор, в нём находим следующие строки и прописываем

Port 4567

PasswordAuthentication no

Вместо 4567 - любой нестандартный номер порта по вашему усмотрению.

Сохраняем, выходим из текстового редактора.

Перезагружаем ssh сервис чтобы изменения вступили в силу

sudo service ssh restart

После этого для входа по ssh придется указывать порт ключом -p

ssh root@123.123.123.123 -p 4567

Обновляем сервер

apt update && apt upgrade -y

Далее, необходимо закрыть все порты, кроме тех что нам нужны. Для этого воспользуемся утилитой ufw. Будьте внимательны при использовании ufw, т.к. при первом запуске без настроек он блокирует вообще всё, и после выхода с сервера обратно мы залогиниться не сможем. Если таки это произошло - не беда, идём в панель управления сервера и делаем сброс, но лучше чтобы всё получилось с первого раза.

Устанавливаем ufw

apt install ufw

Открываем конфиг ufw в текстовом редакторе

nano /etc/ufw/before.rules

Прокручиваем до раздела "ok icmp codes for INPUT"

Закомментируем строку "-A ufw-before-input -p icmp —icmp-type echo-request -j ACCEPT"

И добавляем туда новую строку

-A ufw-before-input -p icmp —icmp-type echo-request -j DROP

Это нужно для успешного прохождения теста Определение туннеля (двусторонний пинг) https://2ip.io/ru/privacy/
(не помню, на кой ляд оно нужно, но я зачем-то сохранил это у себя в заметках)

Открываем порты:

ufw allow 80
ufw allow 443

ufw allow 4567
ufw allow 54321

4567 - ранее мы его указывали как порт для ssh

54321 - любой нестандартный порт для wireguard (понадобится позднее)

Перезапускаем ufw для применения изменений

ufw disable && ufw enable

Включаем автоматические обновления безопасности.

apt-get install unattended-upgrades

nano /etc/apt/apt.conf.d/20auto-upgrades

В конфиге прописываем следующие опции

APT::Periodic::Update-Package-Lists "1";

APT::Periodic::Unattended-Upgrade "1";

APT::Periodic::Download-Upgradeable-Packages "1";

APT::Periodic::AutocleanInterval "7";

Выбор софта для VPN

Существует множество различных технологий для реализации VPN сетей. Наиболее популярными являются OpenVPN и Wireguard. Вместе с OpenVPN можно сделать Shadowsocks для маскировки трафика под https, если требуется обход блокировок VPN. Есть также готовый софт, который всё сделает для вас, и автоматически выбирает наиболее подходящие технологии - SoftEther, Amnezia и тд. Но т.к. у нас пока никакие технологии не запрещены, я взял самую простую и быструю - Wireguard. Когда её заблокируют, тогда можно будет накатить что-нибудь посложнее. Вы можете выбрать любую другую технологию, наиболее простая в установке и использовании это, наверное, Amnezia VPN, но сам я не пробовал.

Установка Wireguard на сервере

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

https://github.com/angristan/wireguard-install

Конечно же, готовые скрипты - это всегда источник уязвимости, надо проверять что в них написано, и тд.

Устанавливаем качалку

apt install -y curl

Качаем скрипт

curl -O https://raw.githubusercontent.com/angristan/wireguard-instal...

Делаем его исполняемым

chmod +x wireguard-install.sh

Запускаем автоматическую установку. В процессе нас спросят, через какой порт будет работать wireguard - пишем тот что ранее открыли в ufw (в примере он указан как 54321). Также нам предложат прописать адреса днс, если хотите adguard - оставьте дефолтные, в ином случае пропишите адреса cloudflare 1.1.1.1 и гугла 8.8.8.8.

./wireguard-install.sh

Далее нужно добавить новых юзеров, отдельно для каждого устройства на котором собираетесь использовать VPN. Повторно запускаем ту же команду. Для смартфона будет показан qr-код, который надо отсканировать с приложения, для ПК будет сгенерирован конфиг, который необходимо будет скачать к себе.

Настройка Wireguard на клиенте

Эту тему уже миллиард раз везде разбирали, не буду повторяться и сошлюсь на этот пост, тут в конце есть настройка на винде и смартфонах, со скриншотами: VPN на собственном сервере без настройки

Для тех кто сам разберется - ссылка на официальный сайт: https://www.wireguard.com/install/

А вот чего я нигде не видел - как сделать автоматическое переключение на wireguard только для заблокированных сайтов, а на обычные сайты ходить напрямую, чтобы не дергать постоянно переключатель подключений.

Описываю как сделать это на линуксе.

Итак, вот мы создали на серваке юзера и получили его конфиг, допустим WireGuard.conf

Добавляем его в систему

sudo nmcli connection import type wireguard file WireGuard.conf

Отключаем автозапуск

sudo nmcli connection modify WireGuard connection.autoconnect no

Далее воспользуемся утилитой Wireproxy.

https://github.com/pufferffish/wireproxy

Она поднимает локальный socks5-proxy и весь трафик оттуда перенаправляет на VPN. Таким образом в системе VPN выключен, но локально в этом прокси он включен.

Остаётся лишь подключиться к этому socks5-proxy и направить в него трафик.

Устанавливаем wireproxy в дистр любым удобным способом.

Создаём конфиг wireproxy.conf со следующим содержимым.

В первой строке

WGConfig = WireGuard.conf

Это мы ссылаемся на конфиг wireguard нашего юзера.

[TCPClientTunnel]

BindAddress = 127.0.0.1:25565

Target = localhost:25565

[TCPServerTunnel]

ListenPort = 3422

Target = localhost:25545

[Socks5]

BindAddress = 127.0.0.1:25344

Единственное, что нас тут интересует - адрес и порт в последней строке.

Запускаем wireproxy через консоль. Можно добавить его в автозапуск и он будет работать в фоне.

Ставим в браузере расширение SwitchyOmega

https://github.com/FelisCatus/SwitchyOmega

Для хрома: https://chrome.google.com/webstore/detail/proxy-switchyomega...

Для лисы: https://addons.mozilla.org/en-US/firefox/addon/switchyomega/

Создаём там New Profile - Proxy profile - прописываем имя - Create.

В настройках Protocol - SOCKS5, сервер 127.0.0.1, порт 25344 (всё как в конфиге).

Применяем изменения кнопкой Apply Changes.

VPN на своём сервере с IP адресом из США за 1$ в месяц VPN, Обход блокировок, Обход ограничений, Гайд, Wireguard, VPS, Linux, Длиннопост, Комментарии на Пикабу, Скриншот

Теперь, при заходе на любой сайт у расширения появится счетчик ошибок загрузки. Жмем на кнопку расширения, а там - N failed resources.

VPN на своём сервере с IP адресом из США за 1$ в месяц VPN, Обход блокировок, Обход ограничений, Гайд, Wireguard, VPS, Linux, Длиннопост, Комментарии на Пикабу, Скриншот

Затем выбираем, какие сайты должны всегда ходить по VPN:

VPN на своём сервере с IP адресом из США за 1$ в месяц VPN, Обход блокировок, Обход ограничений, Гайд, Wireguard, VPS, Linux, Длиннопост, Комментарии на Пикабу, Скриншот

Перезагружаем страницу (иногда необходимо несколько раз перезагрузить) и сайт прогрузится через VPN.

Работает идеально, за исключением инсты и фейсбука. Там лучше не добавлять условия в это расширение, а переключать VPN на уровне системы.

Заключение

Гайд получился объемным, я мог что-то упустить, так что задавайте вопросы, делитесь своим опытом, что можно улучшить, дополнить, оптимизировать и тд.

Душно? Да, душно, сложно, много жопочасов уходит на настройку всего этого. Зато оно своё, работает как часы, за год использования вообще не потребовало внимания и не падало, скорость максимальная. Кароче, лично я доволен.

Лига Сисадминов

1.5K поста17.6K подписчика

Добавить пост

Правила сообщества

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