UA RU
logo
Інструменти      19/01/2023

Як створити власний VPN-сервер за 10 хвилин: чекліст та фрагменти коду для налаштування

Володимир Гуц BLOG

Engineering Lead Brighterly у SocialTech

У своїй роботі я часто користуюся різними VPN-серверами. Готові сервіси — це цілком ок, але згодом я прийшов до того, що розроблений самостійно VPN має суттєві переваги.

Подробиці

Щоб зрозуміти переваги власного VPN-серверу у порівнянні з готовим, варто згадати, для чого взагалі використовують VPN:

  • щоб запобігти перехопленню трафіку іншими людьми;
  • обійти обмеження доступу до певного ресурсу у вашій чи іноземній країні;
  • приховати від провайдера інтернету, власника WI-FI точки доступу особисту інформацію;
  • залишити невідомим актуальне місцеперебування (не забуваємо про часові пояси — це той показник, за яким можна легко відстежити твою локацію).

Тут усе доволі зрозуміло, тож перейдемо до найцікавішого: які переваги використання власного сервісу та як його створити. Я розписав чекліст з покроковою інструкцією по створенню та налаштуванню VPN-сервера, який використовую у своїй роботі.

Важливо: ця інструкція розрахована на те, що ви:

✔️ знаєте як використовувати SSH-клієнт;

✔️ вмієте на базовому рівні користуватися терміналом: Terminal, Console Powershell тощо.

Онлайн- курс Java developer від Mate academy.
Якщо ви не можете навчатись повний день, обирайте курс Java developer з гнучким графіком! Ви зможете опанувати нову професію та отримати нову роботу!
Отримати знижку на курс

Переваги використання власного VPN-серверу

  1. Обхід блокування. Деякі країни намагаються боротися з VPN-серверами, тому часто блокують їх. Але якщо ви користуєтесь власним VPN, його не буде видно в загальному списку сервісів й він майже точно омине блокування.
  2. Відсутні капчі. Усі загальновідомі сервіси вимагатимуть від вас обрати на зображенні коней, знайти частинки світлофорів чи прочитати слово. Чому так? Коли ми користуємося готовим VPN-сервером, паралельно це роблять ще багато людей. Звісно, сайт вважатиме такий трафік підозрілим і завалюватиме вас капчами. При користуванні ж власним VPN-сервером такої проблеми не виникає – у вас буде унікальна IP-адреса, яка для сайту виглядатиме як надійний користувач.
  3. Висока швидкість. Пропускна здатність готових VPN-серверів може бути низькою через те, що вони часто не встигають масштабувати свої сервери та мережі для великої кількості користувачів. На власному ж ресурсі уся пропускна здатність лише для ваших потреб.
  4. Можливість весь трафік комп’ютера пускати через VPN, а не тільки трафік браузера.
  5. Відсутність необхідності встановлювати сторонній софт.

Як бачимо, більшість проблем від користування VPN зникає, якщо використовувати власний сервер.

Міфи про створення VPN-серверу

Поширена думка, що власний сервер – це дорого, довго, складно. Простіше купити готовий сервіс та не паритися. Але знаючи суттєві переваги власного VPN-cерверу, хочу розвіяти основні міфи щодо його створення.

  • Міф 1. Власний VPN — це дорого
  • Курс Full-stack developer від Mate academy.
    Ідеальний курс для новачків - після закінчення гарантоване працевлаштування. Ви навчитесь працювати як з фронтендом, так і з бекендом сайта. .
    Отримати знижку на курс

VPN можна підняти на будь-якому хостингу, який надає віртуальні машини: AWS, Azure, Linode, Digitalocean, Hetzner та інші. Можна вкластися у суму $4 на місяць, і такого сервера цілком вистачить для потреб однієї людини.

  • Міф 2. Власні VPN-сервіси негнучкі

Так, готовий сервіс дійсно пропонує користувачам декілька варіантів локацій, між якими досить легко перемикатися. Але у власному теж можливо створити сервер у будь-якому з доступних у сервісі регіонів на ваш вибір. Питання лише у бюджеті. Та давайте будемо чесними: зазвичай нам не потрібно часто змінювати локацію. Для постійного використання цілком вистачає однієї-двох.

  • Міф 3. Створити свій сервер — важко.

Насправді створення власного сервера — справа декількох кліків. За наступною інструкцією можна це зробити протягом 10 хвилин (перевірено особисто).

Чекліст по створенню власного VPN-серверу

Розберемо на прикладі DigitalOcean та його серверу Droplet.

  • Реєстрація

Якщо у вас раптом вже є акаунт на DigitalOcean – можете переходити до наступного пункту. Якщо ні – спершу пройдіть реєстрацію (там інтуїтивно зрозумілі всі кроки).

  • Створіть новий Droplet, який буде виконувати роль VPN-сервера
  • Онлайн-курс Бізнес-аналіз. Basic Level від Hillel IT School.
    В ході курсу студенти навчаться техніці збору і аналізу вимог, документуванню та управлінню документацією, управлінню ризиками та змінами, а також навчаться моделювати процеси і прототипуванню.
    Приєднатися

Оберіть дата-центр, з якого плануєте виходити в інтернет. Я вирішив працювати з Frankfurt, тому що він територіально знаходиться найближче до України, а це позитивно впливає на швидкість роботи.

Для графи Image оберіть Markerplace, Docker on Ubuntu. Потім у графі Size оберіть план підписки, який вам підходить по бюджету.

Для Choose Authentication Method встановіть пароль або SSH-ключ.

У Hostname впишіть ім‘я, наприклад, vpn-server. Це ні на що не впливає й потрібно лише для зручності. Потім натисніть кнопку Create Droplet.

Зачекай, поки створиться сервер. Зазвичай це займає до однієї хвилини. Після цього ти отримаєш ІP-адресу свого сервера.

  • Під’єднайтеся до SSH-сервера

Відкриваємо Terminal у MacOS/Linux (або PowerShell/putty у Windows) і підключаємося по SSH до нашого сервера, використовуючи ім’я користувача root та IP-адресу нашого сервера.

Курс Full-stack developer від Mate academy.
Опануйте нову професію завдяки курсу Full-stack developer! Ви отримаєте необхідні навички та допомогу у працевлаштуванні! .
Отримати знижку на курс

Це можна зробити за допомогою:

ssh root@{your-ip-address}

> введи свій пароль

Після цього ви маєте під’єднатися.

  • Створіть файл docker-compose.yml

Я зберіг свій код, тому просто скопіюйте та створіть свій файл з усім вмістом з цього ресурсу. Цей файл — конфігурація вашого сервера.

Ви можете створити файл або прямо через SSH, використовуючи консольні редактори тексту (nano/vim), або за допомогою SFTP-клієнта. Я використовував консольний редактор через SSH.

Бізнес англійська від Englishdom.
Тут навчають за методикою Кембриджу, завдяки якій англійську вивчили понад 1 мільярд людей. Саме вона використовується в найкращих навчальних закладах світу, і саме за нею створені курси.
Інформація про курс

У тому ж вікні SSH робимо наступне:

> nano docker-compose.yml

Вставляємо вміст. В доданому тексті змінюємо наступні параметри під себе:

  1. my-shared-secret – на власне секретне слово;
  2. my-username – на особистий логін;
  3. my-password – на свій пароль.

Зверніть увагу, наскільки це просто – у файлі лише 14 рядків, які нам потрібні. За це я й люблю Doker 🙂


Виходимо, затиснувши Ctrl+X, потім Y, й далі натискаємо Enter.

  • Запустіть контейнер зі створеним сервером
  • Онлайн-курс Recruiter від Mate academy.
    Обирайте курс Recruiter з гнучким графіком та ставайте спеціалістом у новій сфері! Допоможемо опанувати усі необхідні навички та стати профі!
    Отримати знижку на курс

Використовуємо те ж вікно SSH, в якому ми щойно створили файл.

> docker compose up -d

Вітаю! Ваш VPN-сервер запущений і працює. Як тепер під’єднатися до нього?

  • Підключення до створеного VPN-сервера

Я використовую IPsec, тому що клієнти для цього VPN вже вбудовані у MacOS/Windows і не доведеться нічого встановлювати локально. Потрібно лише створити нове VPN-підключення за такими параметрами:

  1. Type: IPSec;
  2. Server address: зазначте IP-адресу сервера;
  3. Account name: напишіть my-username (або те, на яке ви його змінили);
  4. Курс Розмовної англійської від Englishdom.
    Після цього курсу ви зможете спілкуватись з іноземцями і цікаво розкажете про себе.
    Приєднатися
  5. Password: додайте my-password (або той варіант, на який ви його змінювали);
  6. Shared Secret: напишіть my-shared-secret (або змінений раніше варіант).

Для MacOS нічого встановлювати не потрібно, достатньо лише налаштувати ось так:

Для Windows ці налаштування виглядатимуть трохи інакше:

На жаль, у Windows не все так просто і доведеться посерфити в реєстрі й дозволити NAT-T.

Для користувачів Linux також додаю скрін з налаштуваннями (використовував в Ubuntu 22.04):

Перед налаштуванням потрібно встановити пакет network-manager-l2tp-gnome. Робиться це через консоль:

Основи Python для школярів від Hillel IT School.
Відкрийте для вашої дитини захопливий світ програмування з нашим онлайн-курсом "Програмування Python для школярів". Ми вивчимо основи програмування на прикладі мови Python, надаючи зрозумілі пояснення та цікаві практичні завдання.
Зареєструватися

> sudo apt-get install network-manager-l2tp-gnome

Також можна під’єднатися з телефону, нічого додатково встановлювати не треба. Налаштування на iPhone виглядає ось так:

Готово! Підключайтеся й перевірте IP-адресу, наприклад, на Whoer за лінком. Тепер для всього інтернету ви фізично знаходитесь у регіоні, де створили свій VPN-сервер, а IP — це IP-сервера. Все не так страшно, не довго і не дорого, як могло вам здаватися 🙂

Рекомендації щодо безпеки

Якщо враховувати питання безпеки вашого власного сервера, то наостанок я рекомендую:

  • використовувати SSH-ключ замість пароля;
  • змінити SSH-port з 22 на будь-який інший;
  • використовувати складний пароль і Shared-secret (бажано Random generated string).

 

Курс Project Manager від Powercode academy.
Онлайн-курс Project Manager. З нуля за 3,5 місяці до нової позиції Без знання коду, англійської та стресу.
Зарееструватися

Якщо ви знайшли помилку, будь ласка, виділіть фрагмент тексту та натисніть Ctrl+Enter.

Онлайн-курс Pyton від Powercode academy.
Опануйте PYTHON з нуля та майте проект у своєму портфоліо вже через 4 місяця.
Приєднатися

Цей матеріал – не редакційний, це – особиста думка його автора. Редакція може не поділяти цю думку.

Топ-5 найпопулярніших блогерів жовтня

CEO & Founder в Trustee
Всего просмотровВсього переглядів
15
#1
Всего просмотровВсього переглядів
15
Recruiter| Talent Acquisition Specialist
Всего просмотровВсього переглядів
10
#2
Всего просмотровВсього переглядів
10
Рейтинг блогерів

Найбільш обговорювані статті

Топ текстів

Ваша жалоба отправлена модератору

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: