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.7K подписчиков

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

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

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

Вы смотрите срез комментариев. Показать все
Автор поста оценил этот комментарий

Запилите еще пост, что можно засунуть на сервер еще, что бы использование вышло максимально выгодным)
Придумал только passbolt - менеджер паролей

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Гуглите selfhosted. Тема огромная, было бы желание.

Почта на своём домене, облако с файлами, репозитории исходного кода, телеграм-боты, и тд.

https://github.com/awesome-selfhosted/awesome-selfhosted


Менеджер паролей, кстати, можно без сервака синхронизировать, с помощью syncthing.

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