Власний VPN на WireGuard
WireGuard — це протокол VPN, вбудований у ядро Linux, що дає змогу налаштувати власний сервер VPN кількома командами. Власний VPN виводить ваш трафік через IP-адресу, яку ви контролюєте. Але він не робить вас анонімним: сайти, які ви відвідуєте, бачать IP-адресу вашого сервера.
У цій статті — для чого корисний власний VPN і чого він не вирішує, кроки ручного налаштування та простіший шлях із вебінтерфейсом.
Для чого корисний власний VPN?
- Публічний Wi-Fi. У мережі кафе чи готелю ваш трафік іде зашифрованим аж до вашого сервера.
- Турецька IP-адреса із-за кордону. Оскільки сервер у Стамбулі, перебуваючи за кордоном, ви можете виходити в мережу з турецькою IP-адресою.
- Доступ до приватної мережі. Ви звертаєтеся до пристроїв, підключених до того самого VPN, і до служб на сервері так, ніби всі перебуваєте в одній локальній мережі.
- Постійна адреса виходу. Навіть якщо ваша домашня IP-адреса змінюється, вихід вашого VPN лишається тим самим.
Чого він не вирішує?
- Він не робить вас анонімним. Сайти бачать IP-адресу вашого сервера, а вона пов’язана з вашим акаунтом.
- Деякі служби блокують IP-адреси дата-центрів. Не думайте, що через ваш VPN відкриється кожна служба.
- Він не пропонує виходів у багатьох країнах. Ваш сервер розташований в одному місці, у Seturack це Стамбул.
- Він не призначений для надання інтернету іншим людям. Якщо ви надаєте іншим доступ до інтернету через свій сервер, обов’язки за Законом № 5651, згідно з угодою про послуги, лежать на вас. Використовуйте VPN переважно для власних пристроїв і прочитайте угоду про послуги, перш ніж давати доступ комусь іще.
Чому WireGuard подобається людям
- Він увійшов до ядра Linux з версії 5.6, тож у сучасних дистрибутивах окремий драйвер встановлювати не потрібно.
- Паролів немає. Кожен кінець розпізнається за власною парою закритого й відкритого ключів.
- Конфігурація коротка й міститься в одному файлі.
- Він використовує UDP. Порт, який найчастіше трапляється в прикладах та інструментах, — 51820.
Ручне налаштування (Ubuntu, від імені root)
- Установіть пакет:
apt install wireguard - Створіть пару ключів сервера:
umask 077 && wg genkey | tee privatekey | wg pubkey > publickey - Нехай кожен клієнтський пристрій створює власний ключ. Це робить застосунок WireGuard на телефонах і комп’ютерах, а вам потрібен лише його відкритий ключ.
- Запишіть
/etc/wireguard/wg0.confза таблицею нижче. - Увімкніть пересилання IP:
echo 'net.ipv4.ip_forward=1' | tee /etc/sysctl.d/70-wireguard.conf, а потімsysctl --system - Відкрийте порт у брандмауері:
ufw allow 51820/udp - Запустіть:
systemctl enable --now wg-quick@wg0
| Розділ | Рядок | Призначення |
|---|---|---|
| [Interface] | Address = 10.8.0.1/24 | Адреса сервера всередині мережі VPN |
| [Interface] | ListenPort = 51820 | Порт UDP, який він слухає |
| [Interface] | PrivateKey = вміст файлу privatekey | Закритий ключ сервера. Нікому його не передавайте |
| [Interface] | PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE | Виводить трафік клієнтів в інтернет. Замініть eth0 на назву інтерфейсу вашого сервера, яку показує ip route show default |
| [Interface] | PostDown = ті самі три правила, з -D замість -A | Прибирає правила, коли VPN зупиняється |
| [Peer] | PublicKey = відкритий ключ клієнта | Ідентифікує цього клієнта |
| [Peer] | AllowedIPs = 10.8.0.2/32 | Адреса VPN, яку ви надаєте клієнту |
Спершу запишіть у файл рядки [Interface], потім рядки [Peer]. Кожен клієнт отримує власний блок [Peer].
Підключення клієнта
На клієнті в розділі [Interface] укажіть власний закритий ключ, рядок Address = 10.8.0.2/24 і адресу DNS. У розділі [Peer] укажіть відкритий ключ сервера, рядок Endpoint = SERVER_IP:51820 і рядок AllowedIPs = 0.0.0.0/0. Останнє значення спрямовує весь трафік IPv4 через тунель. Якщо вам потрібен лише доступ до мережі VPN, напишіть замість нього 10.8.0.0/24. Для пристроїв за NAT або брандмауером офіційна документація радить PersistentKeepalive = 25.
Виконайте на сервері wg show. Якщо клієнт підключився, ви побачите рядок «latest handshake».
Увесь трафік чи лише частина?
Значення AllowedIPs на клієнті визначає, який трафік іде в тунель. 0.0.0.0/0 спрямовує через нього весь трафік IPv4, але не IPv6. Якщо на вашому пристрої є IPv6, цей трафік може оминати тунель. З 0.0.0.0/0, ::/0 IPv6 теж іде в тунель і там відкидається, бо сервер не пропускає IPv6, тож витоку не буде. Якщо вам потрібен доступ лише до певних мереж, наприклад 10.8.0.0/24, вкажіть тільки їх. Це називається роздільним тунелюванням, і решта трафіку йде звичайним маршрутом. Для віддаленого доступу до мережі роздільного тунелювання часто досить. Решта вашого трафіку не проходить через тунель, тож не сповільнюється.
Простіший спосіб: wg-easy
wg-easy — це інструмент, що поєднує сервер WireGuard і керування клієнтами у вебінтерфейсі. Він додає й видаляє клієнтів та показує QR-код для телефонів. Встановлюється через Docker Compose і використовує 51820/UDP. Якщо ви хочете безпечно відкрити екран адміністратора в інтернет, радимо зворотний проксі.
Готовий сервер WireGuard від Seturack використовує wg-easy і запускається приблизно за 4 хвилини. У панелі ви бачите адресу адмінки та пароль. Тунель передає лише IPv4. Створюйте окремого клієнта для кожного пристрою, а якщо пристрій загубиться, видаляйте лише його клієнта. Кроки підключення описано в статті довідки про WireGuard.
Налаштування пристроїв
У WireGuard є офіційні застосунки для Windows, macOS, Android та iOS. На Linux достатньо пакета. На телефоні конфігурацію додають за допомогою QR-коду, а на комп’ютері — імпортом файлу конфігурації. Тунель вмикають і вимикають із застосунку. Поки тунель піднято, ваш інтернет-трафік виходить через ваш сервер.
Чотири невеликі правила безпеки
- Нехай файл конфігурації читає лише root:
chmod 600 /etc/wireguard/wg0.conf - Ніколи нікому не надсилайте свій закритий ключ. Відкритий ключ — єдине, чим ви ділитеся.
- Видаліть блок
[Peer]пристрою, який ви загубили або якому більше не хочете дозволяти доступ. - Підтримуйте сервер в актуальному стані. Оновлення операційної системи та застосунків після налаштування — на вашому боці.
Оскільки трафік вашого VPN проходить через сервер, важливий і обсяг трафіку. Необмежений трафік входить у ціну Seturack.
Якщо не підключається
Деякі мережі блокують трафік UDP. Спробуйте іншу мережу, наприклад мобільний інтернет телефона. Також перевірте, що порт 51820/UDP відкрито в брандмауері.
Якщо хочете почати з готового встановлення, див. сторінку WireGuard VPN.
Коментарі0
Коментарів поки немає
Поділіться своєю думкою першим.
Будь ласка, увійдіть або зареєструйтеся, щоб залишити коментар.