У своїй роботі я часто користуюся різними VPN-серверами. Готові сервіси — це цілком ок, але згодом я прийшов до того, що розроблений самостійно VPN має суттєві переваги.
Подробиці
Щоб зрозуміти переваги власного VPN-серверу у порівнянні з готовим, варто згадати, для чого взагалі використовують VPN:
- щоб запобігти перехопленню трафіку іншими людьми;
- обійти обмеження доступу до певного ресурсу у вашій чи іноземній країні;
- приховати від провайдера інтернету, власника WI-FI точки доступу особисту інформацію;
- залишити невідомим актуальне місцеперебування (не забуваємо про часові пояси — це той показник, за яким можна легко відстежити твою локацію).
Тут усе доволі зрозуміло, тож перейдемо до найцікавішого: які переваги використання власного сервісу та як його створити. Я розписав чекліст з покроковою інструкцією по створенню та налаштуванню VPN-сервера, який використовую у своїй роботі.
Важливо: ця інструкція розрахована на те, що ви:
✔️ знаєте як використовувати SSH-клієнт;
✔️ вмієте на базовому рівні користуватися терміналом: Terminal, Console Powershell тощо.
Переваги використання власного VPN-серверу
- Обхід блокування. Деякі країни намагаються боротися з VPN-серверами, тому часто блокують їх. Але якщо ви користуєтесь власним VPN, його не буде видно в загальному списку сервісів й він майже точно омине блокування.
- Відсутні капчі. Усі загальновідомі сервіси вимагатимуть від вас обрати на зображенні коней, знайти частинки світлофорів чи прочитати слово. Чому так? Коли ми користуємося готовим VPN-сервером, паралельно це роблять ще багато людей. Звісно, сайт вважатиме такий трафік підозрілим і завалюватиме вас капчами. При користуванні ж власним VPN-сервером такої проблеми не виникає – у вас буде унікальна IP-адреса, яка для сайту виглядатиме як надійний користувач.
- Висока швидкість. Пропускна здатність готових VPN-серверів може бути низькою через те, що вони часто не встигають масштабувати свої сервери та мережі для великої кількості користувачів. На власному ж ресурсі уся пропускна здатність лише для ваших потреб.
- Можливість весь трафік комп’ютера пускати через VPN, а не тільки трафік браузера.
- Відсутність необхідності встановлювати сторонній софт.
Як бачимо, більшість проблем від користування VPN зникає, якщо використовувати власний сервер.
Міфи про створення VPN-серверу
Поширена думка, що власний сервер – це дорого, довго, складно. Простіше купити готовий сервіс та не паритися. Але знаючи суттєві переваги власного VPN-cерверу, хочу розвіяти основні міфи щодо його створення.
- Міф 1. Власний VPN — це дорого
VPN можна підняти на будь-якому хостингу, який надає віртуальні машини: AWS, Azure, Linode, Digitalocean, Hetzner та інші. Можна вкластися у суму $4 на місяць, і такого сервера цілком вистачить для потреб однієї людини.
- Міф 2. Власні VPN-сервіси негнучкі
Так, готовий сервіс дійсно пропонує користувачам декілька варіантів локацій, між якими досить легко перемикатися. Але у власному теж можливо створити сервер у будь-якому з доступних у сервісі регіонів на ваш вибір. Питання лише у бюджеті. Та давайте будемо чесними: зазвичай нам не потрібно часто змінювати локацію. Для постійного використання цілком вистачає однієї-двох.
- Міф 3. Створити свій сервер — важко.
Насправді створення власного сервера — справа декількох кліків. За наступною інструкцією можна це зробити протягом 10 хвилин (перевірено особисто).
Чекліст по створенню власного VPN-серверу
Розберемо на прикладі DigitalOcean та його серверу Droplet.
- Реєстрація
Якщо у вас раптом вже є акаунт на DigitalOcean – можете переходити до наступного пункту. Якщо ні – спершу пройдіть реєстрацію (там інтуїтивно зрозумілі всі кроки).
- Створіть новий Droplet, який буде виконувати роль VPN-сервера
Оберіть дата-центр, з якого плануєте виходити в інтернет. Я вирішив працювати з Frankfurt, тому що він територіально знаходиться найближче до України, а це позитивно впливає на швидкість роботи.
Для графи Image оберіть Markerplace, Docker on Ubuntu. Потім у графі Size оберіть план підписки, який вам підходить по бюджету.
Для Choose Authentication Method встановіть пароль або SSH-ключ.
У Hostname впишіть ім‘я, наприклад, vpn-server
. Це ні на що не впливає й потрібно лише для зручності. Потім натисніть кнопку Create Droplet.
Зачекай, поки створиться сервер. Зазвичай це займає до однієї хвилини. Після цього ти отримаєш ІP-адресу свого сервера.
Відкриваємо Terminal у MacOS/Linux (або PowerShell/putty у Windows) і підключаємося по SSH до нашого сервера, використовуючи ім’я користувача root та IP-адресу нашого сервера.
Це можна зробити за допомогою:
ssh root@{your-ip-address}
> введи свій пароль
Після цього ви маєте під’єднатися.
- Створіть файл docker-compose.yml
Я зберіг свій код, тому просто скопіюйте та створіть свій файл з усім вмістом з цього ресурсу. Цей файл — конфігурація вашого сервера.
Ви можете створити файл або прямо через SSH, використовуючи консольні редактори тексту (nano/vim), або за допомогою SFTP-клієнта. Я використовував консольний редактор через SSH.
У тому ж вікні SSH робимо наступне:
> nano docker-compose.yml
Вставляємо вміст. В доданому тексті змінюємо наступні параметри під себе:
my-shared-secret
– на власне секретне слово;my-username
– на особистий логін;my-password
– на свій пароль.
Зверніть увагу, наскільки це просто – у файлі лише 14 рядків, які нам потрібні. За це я й люблю Doker 🙂
Виходимо, затиснувши Ctrl+X, потім Y, й далі натискаємо Enter.
- Запустіть контейнер зі створеним сервером
Використовуємо те ж вікно SSH, в якому ми щойно створили файл.
> docker compose up -d
Вітаю! Ваш VPN-сервер запущений і працює. Як тепер під’єднатися до нього?
- Підключення до створеного VPN-сервера
Я використовую IPsec, тому що клієнти для цього VPN вже вбудовані у MacOS/Windows і не доведеться нічого встановлювати локально. Потрібно лише створити нове VPN-підключення за такими параметрами:
- Type: IPSec;
- Server address: зазначте IP-адресу сервера;
- Account name: напишіть
my-username
(або те, на яке ви його змінили); - Password: додайте
my-password
(або той варіант, на який ви його змінювали); - Shared Secret: напишіть
my-shared-secret
(або змінений раніше варіант).
Для MacOS нічого встановлювати не потрібно, достатньо лише налаштувати ось так:
Для Windows ці налаштування виглядатимуть трохи інакше:
На жаль, у Windows не все так просто і доведеться посерфити в реєстрі й дозволити NAT-T.
Для користувачів Linux також додаю скрін з налаштуваннями (використовував в Ubuntu 22.04):
Перед налаштуванням потрібно встановити пакет network-manager-l2tp-gnome
. Робиться це через консоль:
> sudo apt-get install network-manager-l2tp-gnome
Також можна під’єднатися з телефону, нічого додатково встановлювати не треба. Налаштування на iPhone виглядає ось так:
Готово! Підключайтеся й перевірте IP-адресу, наприклад, на Whoer за лінком. Тепер для всього інтернету ви фізично знаходитесь у регіоні, де створили свій VPN-сервер, а IP — це IP-сервера. Все не так страшно, не довго і не дорого, як могло вам здаватися 🙂
Рекомендації щодо безпеки
Якщо враховувати питання безпеки вашого власного сервера, то наостанок я рекомендую:
- використовувати SSH-ключ замість пароля;
- змінити SSH-port з 22 на будь-який інший;
- використовувати складний пароль і Shared-secret (бажано Random generated string).
Цей матеріал – не редакційний, це – особиста думка його автора. Редакція може не поділяти цю думку.
Сообщить об опечатке
Текст, который будет отправлен нашим редакторам: