ru:https://highload.today/blogs/kak-sozdat-sobstvennyj-vpn-server-za-10-minut-chek-list-i-fragmenty-koda-dlya-nastrojki/ ua:https://highload.today/uk/blogs/yak-stvoriti-vlasnij-vpn-server-za-10-hvilin-cheklist-ta-fragmenti-kodu-dlya-nalashtuvannya/
logo
Інструменти      19/01/2023

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

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

Engineering Lead Brighterly у SocialTech

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

Подробиці

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

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

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

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

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

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

Курс UI/UX дизайну від Mate academy.
На курсі ви навчитесь створювати інтуїтивно зрозумілі та привабливі інтерфейси вебсайтів і застосунків. Ви також освоїте ключові принципи дизайну та дізнаєтесь як виділятися на ринку. А ми вас не лише навчимо, а й працевлаштуємо. Сертифікат теж буде!
Дізнатися більше про курс

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

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

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

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

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

  • Міф 1. Власний VPN — це дорого
  • Онлайн-курс "QA Automation" від robot_dreams.
    Це 70% практики, 30% теорії та проєкт у портфоліо.Навчіться запускати перевірку сотень опцій одночасно, натиснувши лише одну кнопку.
    Детальніше про курс

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

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

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

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

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

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

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

  • Реєстрація

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

  • Створіть новий Droplet, який буде виконувати роль VPN-сервера
  • Основи Python для школярів від Ithillel.
    Відкрийте для вашої дитини захопливий світ програмування з нашим онлайн-курсом "Програмування Python для школярів". Ми вивчимо основи програмування на прикладі мови Python, надаючи зрозумілі пояснення та цікаві практичні завдання.
    Зареєструватися

Оберіть дата-центр, з якого плануєте виходити в інтернет. Я вирішив працювати з 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-адресу нашого сервера.

Курс Job Interview Crash Course від Enlgish4IT.
Отримайте 6 шаблонів відповідей на співбесіді, які ви зможете використовувати для структурування своїх відповідей. Отримайте знижку 10% за промокодом ITCENG.
Приєднатися

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

ssh root@{your-ip-address}

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

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

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

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

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

Курс English For Tech: Speaking&Listening від Enlgish4IT.
Після курсу ви зможете найкраще презентувати свої досягнення, обговорювати проекти та вирішувати повсякденні завдання англійською мовою. Отримайте знижку 10% за промокодом TCENG.
Дізнатись про курс

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

> nano docker-compose.yml

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

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

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


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

  • Запустіть контейнер зі створеним сервером
  • Онлайн-курс "Директор з продажу" від Laba.
    Як стратегічно впливати на дохід компанії, мотивувати сейлзів перевиконувати KPI та впроваджувати аналітику — навчить комерційний директор Laba з 12-річним досвідом у продажах.
    Приєднатись до курсу

Використовуємо те ж вікно 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. Онлайн-курс "Корпоративна культура" від Laba.
    Як з нуля побудувати стабільну корпоративну культуру, систему внутрішньої комунікації та бренд роботодавця, з якими ви підвищите продуктивність команди, — пояснить HR-директор Work.ua.
    Детальніше про курс
  5. Password: додайте my-password (або той варіант, на який ви його змінювали);
  6. Shared Secret: напишіть my-shared-secret (або змінений раніше варіант).

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

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

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

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

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

Онлайн-курс "Створення особистого бренду" від Skvot.
Прокачайте особистий бренд для підсилення власного бізнесу, підвищення продажів та впізнаваність на ринку.
Дізнатись більше про програму курсу і досвід лектора

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

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

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

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

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

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

 

Курс Power Skills For Tech від Enlgish4IT.
Зменшіть кількість непорозумінь на робочому місці та станьте більш ефективним у спілкуванні в мультикультурній команді. Отримайте знижку 10% за промокодом ITCENG.
Реєстрація на курс

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

Онлайн-курс "Фінансовий аналіз" від Laba.
Навчіться читати фінзвітність так, щоб ухвалювати ефективні бізнес-рішення.Досвідом поділиться експерт, що 20 років займається фінансами і їхньою автоматизацією.
Детальніше про курс

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

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

PHP Developer в ScrumLaunch
Всего просмотровВсього переглядів
2434
#1
Всего просмотровВсього переглядів
2434
Founder at Shallwe, Python Software Engineer (Django/React)
Всего просмотровВсього переглядів
113
#2
Всего просмотровВсього переглядів
113
Career Consultant в GoIT
Всего просмотровВсього переглядів
95
#3
Всего просмотровВсього переглядів
95
CEO & Founder в Trustee
Всего просмотровВсього переглядів
94
#4
Всего просмотровВсього переглядів
94
Рейтинг блогерів

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

Топ текстів

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

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

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