Хакер - VPN для друзей. Разворачиваем свой VPN-сервер с оплатой через Telegram

Хакер - VPN для друзей. Разворачиваем свой VPN-сервер с оплатой через Telegram

hacker_frei

https://t.me/hacker_frei

driver0black

Содержание статьи

  • Почему именно WireGuard?
  • Админ-панель и бот в Telegram
  • Настройка бота
  • Деплой
  • Выводы

В этой статье я покажу не толь­ко как сде­лать свой собс­твен­ный VPN-сер­вис на осно­ве WireGuard, но и как его нас­тро­ить, что­бы им смог­ли поль­зовать­ся все твои друзья и зна­комые. И даже, если пожела­ешь, закиды­вать тебе свою долю за хос­тинг, поль­зуясь прос­тым ботом в Telegram.

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

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

Я дол­гое вре­мя генерил и раз­давал готовые кон­фиги, но потом это ста­ло надо­едать. Тог­да я задумал соз­дать собс­твен­ное решение с воз­можностью быс­тро­го деп­лоя, адми­нис­три­рова­нием через Telegram и вре­мен­ными кво­тами для поль­зовате­лей. В этой статье я рас­ска­жу тебе о нем под­робнее и поделюсь все­ми нуж­ными для деп­лоя исходни­ками.

WARNING

Пре­дос­тавляя сто­рон­ним лицам прок­си‑сер­вис через зарегис­три­рован­ный на тебя хос­тинг, ты берешь на себя ответс­твен­ность за все их дей­ствия в сети. Не забудь заранее обго­ворить, что мож­но делать с тво­его IP-адре­са, а что нель­зя. А если пла­ниру­ешь пре­дос­тавлять ком­мерчес­кий сер­вис, подумай о сос­тавле­нии поль­зователь­ско­го сог­лашения, которое сни­мет с тебя ответс­твен­ность.

ПОЧЕМУ ИМЕННО WIREGUARD?

Я выб­рал WireGuard из‑за его ско­рос­ти в срав­нении с OpenVPN и IPSec. Ты толь­ко пос­мотри на эти гра­фики.

Про­пус­кная спо­соб­ность (мегабит в секун­ду), тест iPerf3
Вре­мя откли­ка ping

По­хожую ста­тис­тику показы­вают тес­ты Protectli и Entrostat. В Linux WireGuard работа­ет на уров­не ядра, что дает допол­нитель­ный при­рост в ско­рос­ти.

В WireGuard не такой боль­шой выбор асим­метрич­ных шиф­ров, как в OpenVPN и дру­гих про­токо­лах. Но это одновре­мен­но и плюс: мень­ше повер­хность ата­ки на про­токол.

АДМИН-ПАНЕЛЬ И БОТ В TELEGRAM

Итак, как для поль­зовате­ля выг­лядит обще­ние с моим ботом? Нач­нем зна­комс­тво с глав­ного меню.

Глав­ное меню

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

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

Вы­бор вари­анта под­писки

Оп­лата выпол­няет­ся онлайн, через сам Telegram. Соот­ветс­твен­но, мы можем выб­рать любую пла­теж­ную сис­тему, с ко­торой сот­рудни­чает Telegram.

INFO

Я пла­ниро­вал исполь­зовать для опла­ты Qiwi, так как там есть откры­тый API для соз­дания сче­тов и не тре­бует­ся ста­новить­ся самоза­нятым или ИП. К сожале­нию, недав­но в Qiwi при­оста­нови­ли выпуск необ­ходимых токенов и не сооб­щают о сро­ках возоб­новле­ния. Одна­ко в исходни­ках ты най­дешь вари­ант админ­ской панели для Qiwi.

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

Под­писка на месяц опла­чена

В раз­деле «Как под­клю­чить» поль­зователь может получить свой кон­фиг для под­клю­чения к VPN-сер­веру и под­робную инс­трук­цию, как нас­тро­ить WireGuard на сво­ем телефо­не и как им поль­зовать­ся.

Раз­дел «Как под­клю­чить»

И наконец, самый глав­ный раз­дел — «Админ‑панель», к которо­му име­ет дос­туп толь­ко админ бота.

Глав­ная админ‑панели

Раз­дел «Вывес­ти поль­зовате­лей» поз­воля­ет получить спи­сок всех поль­зовате­лей сис­темы или толь­ко поль­зовате­лей с опла­чен­ной под­пиской.

Раз­дел «Вывес­ти поль­зовате­лей»

В раз­деле «Редак­тировать поль­зовате­ля по id», вве­дя Telegram ID поль­зовате­ля, мы можем добавить вре­мя или обну­лить его (то есть заб­рать под­писку).

Раз­дел «Редак­тировать поль­зовате­ля»

Раз­дел «Ста­тич­ные поль­зовате­ли» может понадо­бить­ся для пре­дос­тавле­ния дос­тупа к VPN поль­зовате­лям, которые не зарегис­три­рова­ны в Telegram. В этом раз­деле мы можем соз­давать ста­тич­ных поль­зовате­лей, уда­лять их и получать кон­фиги для под­клю­чения.

Раз­дел «Ста­тич­ные поль­зовате­ли»

Вот и всё меню. Но в боте еще есть уве­дом­ления поль­зовате­лей об окон­чании под­писки. Все тек­сты уве­дом­лений мож­но пра­вить в фай­ле JSON.

Уве­дом­ления

 НАСТРОЙКА БОТА

С тем, как выг­лядит бот, я тебя поз­накомил, теперь покажу нас­трой­ки и скрипт, который раз­ворачи­вает и нас­тра­ивает WireGuard в пару кли­ков.

Нач­нем с кон­фигов бота. Пер­вый кон­фиг называ­ется config.json, в нем содер­жатся основные нас­трой­ки бота.

{

"admin_tg_id": 440887487,

"one_month_cost": 120,

"trial_period": 2700,

"UTC_time": 3,

"tg_token": "********:**************_**********",

"tg_shop_token": "56456767:TEST:343455"

}

  • admin_tg_id — Telegram ID адми­на. Узнать свой ID мож­но у бота userinfobot.
  • one_month_cost — цена в руб­лях за месяц под­писки. Минималь­ная сум­ма в руб­лях дол­жна быть экви­вален­та одно­му дол­лару, но, как показа­ла прак­тика, сто­ит выс­тавлять нем­ного боль­ше, чем акту­аль­ный курс дол­лара. Курс, который исполь­зует Telegram, мож­но узнать на офи­циаль­ном сай­те.
  • trial_period — пери­од проб­ной под­писки. По умол­чанию уста­нов­лено 45 минут, то есть 2700 секунд.
  • UTC_time — часовой пояс в фор­мате UTC. Бот будет учи­тывать его при выводе вре­мени. По умол­чанию уста­нов­лено UTC+3, то есть мос­ков­ское вре­мя.
  • tg_token — токен бота, получен­ный от @BotFather.
  • tg_shop_token — токен магази­на в Telegram. Нужен, если мы хотим при­нимать опла­ту. Если оста­вить это зна­чение пус­тым, то бот прос­то не будет отправ­лять фор­му для опла­ты и, соот­ветс­твен­но, опла­та онлайн будет недос­тупна.

Как получить tg_shop_token? Перехо­ди в Telegram к боту @BotFather и пиши /mybots. Затем выбирай нуж­ного бота и перехо­ди в раз­дел Payments. Тут ты можешь озна­комить­ся со все­ми дос­тупны­ми пла­теж­ными сис­темами и узнать, как их под­клю­чить. Пос­ле под­клю­чения пла­теж­ной сис­темы воз­вра­щай­ся в BotFather. В раз­деле Payments дол­жен появить­ся наш завет­ный ключ.

Как выг­лядит токен для онлайн‑опла­ты

И пос­ледний кон­фигура­цион­ный файл хра­нит в себе текст сооб­щений, которые бот при­сыла­ет поль­зовате­лям. Сооб­щения могут быть офор­мле­ны с при­мене­нием HTML-сти­лей Telegram, а как ими поль­зовать­ся, можешь пос­мотреть в до­кумен­тации.

{

"hello_message": "<b>Почему стоит выбрать Obi VPN?</b>...",

"trial_message": "Чтобы вы смогли оценить наш VPN...",

"how_to_connect_info": "Ваш конфиг для подключения к VPN...",

"success_pay_message": "Оплата прошла успешно...",

"ended_sub_message": "Ваша подписка закончилась...",

"alert_to_renew_sub": "До конца действия..."

}

Ду­маю, впол­не понят­но, какое сооб­щение за что отве­чает, поэто­му не будем оста­нав­ливать­ся на этом и перей­дем к деп­лою.

ДЕПЛОЙ

Ска­жу сра­зу, что скрипт я раз­рабаты­вал на Ubuntu и тес­тировал толь­ко на Ubuntu 20.04 и 22.04, поэто­му не могу дать гаран­тии, что он зарабо­тает на какой‑то дру­гой раз­новид­ности Linux.

Ус­танов­ка выпол­няет­ся одной коман­дой:

sudo wget https://raw.githubusercontent.com/Obi0Wan0Kenobi/ObiVpn/master/Wireguard-installer-with-Adminpanel.sh \

&& chmod 774 Wireguard-installer-with-Adminpanel.sh \

&& ./Wireguard-installer-with-Adminpanel.sh

Эта коман­да ска­чива­ет уста­новоч­ный скрипт, дает ему пра­ва на запуск, а затем запус­кает.

Ког­да уви­дишь при­ветс­твен­ное сооб­щение, при­готовь­ся запол­нять обя­затель­ные поля, они нуж­ны для нор­маль­ного фун­кци­они­рова­ния нашего VPN. Зна­чения некото­рых парамет­ров скрипт авто­мати­чес­ки получа­ет из сис­темы и пред­ложит лишь под­твер­дить их кор­рек­тность или изме­нить.

Dobro pozhalovat' v ustanovshchik WireGuard!

1.Vvedite publichnyj IPv4 adress: 185.200.190.143

2.Vvedite setevoj interfejs: ens3

3.Vyberite port kotoryj budet ispol'zovat' WireGuard [1-65535]: 49584

4.Vyberite pervyj DNS server kotoryj budut ispol'zovat' klienty: 1.1.1.1

5.Vyberite vtoroj DNS server kotoryj budut ispol'zovat' klienty (opcional'no): 1.0.0.1

6.Hotite li ustanovit' srazu Telegram bota(1 - Da, 0 - Net): 1

7.Vvedite API-klyuch ot vashego Telegram bota: *************

8.Vvedite klyuch ot vashej platezhnoj sistemy: *************

9.Vvedite Telegram-id administratora: *****

  1. Вво­дим пуб­личный адрес IPv4 (получить его мож­но, выпол­нив коман­ду ip -a в тер­минале или пос­мотрев в панели адми­нис­три­рова­ния хос­тинг‑про­вай­дера).
  2. Здесь тре­бует­ся ввес­ти сетевой интерфейс (его тоже мож­но узнать из вывода коман­ды ip -a, чаще все­го это eth0ens5 или что‑то в таком духе).
  3. Порт, который будет исполь­зовать WireGuard (по умол­чанию скрипт выс­тавля­ет слу­чай­ный порт с 49152 до 65535, но ты можешь ука­зать любой).
  4. Ос­новной DNS-сер­вер, который будет исполь­зовать­ся при генера­ции кон­фигов для под­клю­чения (по умол­чанию уста­нав­лива­ется DNS Cloudflare).
  5. Вто­рой DNS-сер­вер (по умол­чанию Cloudflare).
  6. Вы­бира­ем, хотим ли уста­нав­ливать панель адми­нис­три­рова­ния или нет.
  7. Вво­дим API Token нашего бота, получен­ный от BotFather.
  8. Ес­ли не вво­дить API Token пла­теж­ной сис­темы, опла­та в боте работать не будет.
  9. И пос­леднее поле, которое нам надо запол­нить, — это наш Telegram ID, который мож­но узнать у @userinfobot. Поль­зователь с ука­зан­ным на этом шаге ID ста­нет адми­нис­тра­тором бота и все­го ресур­са.

Пос­ле запол­нения всех полей оста­ется толь­ко нажать любую кла­вишу, и уста­нов­ка нач­нется. В кон­це скрипт напишет WireGuard Installed.

Те­перь заходим в нашего бота и пишем коман­ду /start.

Про­веря­ем бота

Бот нам отве­тил, а зна­чит, уста­нов­ка прош­ла успешно. Теперь мы можем зап­росить у бота соз­дание кон­фига, который затем импорти­руем в кли­ент WireGuard на сво­ем устрой­стве и поп­робу­ем зай­ти на сайт 2ip.ru для про­вер­ки работос­пособ­ности VPN. Как видишь, наш исходный IP, мес­тополо­жение и про­чие парамет­ры изме­нились, а это зна­чит, что VPN работа­ет отлично.

Про­вер­ка работос­пособ­ности VPN

ВЫВОДЫ

Мы разоб­рались, как бук­валь­но за пару минут раз­вернуть собс­твен­ный VPN-сер­вис с удоб­ной панелью адми­нис­три­рова­ния. Ты можешь исполь­зовать его, что­бы поделить­ся цен­ным сер­висом с друзь­ями или даже поп­робовать нем­ного зарабо­тать.

На­пос­ледок — пара советов по выбору хос­тинга. Хоть WireGuard и работа­ет быс­трее дру­гих про­токо­лов, не сто­ит забывать о вли­янии рас­положе­ния дата‑цен­тра. Советую не опла­чивать VPS сра­зу надол­го, а сна­чала срав­нить раз­ные реги­оны, дата‑цен­тры, про­вай­деров и выб­рать опти­маль­ный вари­ант.

Читайте ещё больше платных статей бесплатно: https://t.me/hacker_frei



Report Page