У цій статті буде детально описано, як налаштувати Wireguard VPN на вашому сервері. Це може бути віртуальний або приватний сервер - не має такого великого значення.
Цей посібник із налаштування VPN Wireguard розроблений для користувачів, які не мають великого досвіду, тому всі кроки будуть досить детальними та супроводжуються знімками екрана.
Трафік, що проходить через наш тунель, буде зашифрований, а в Інтернеті відображатиметься IP-адреса нашого VPN-сервера, а не адреса провайдера, через якого ми отримуємо доступ до мережі.
Передбачається, що у вас вже є VPS. Якщо ні, ви можете порядок це від нас.
Ми встановимо операційну систему Ubuntu 22.04 на наш сервер. Якщо у вас є сервер з іншою ОС, ви можете легко перевстановити його, дотримуючись інструкцій інструкції.
Отже, сервер з ОС Ubuntu 22.04 готовий, тепер підключаємося до нього по SSH. Якщо раптом ви раніше не стикалися з цим протоколом, то вам допоможе стаття, в якій цей процес детально описаний. Абзац другий ст стаття для ОС Linux, третє для ОС Windows.
Налаштуйте сервер Wireguard
Після успішного підключення я напишу кілька команд і опис того, що вони виробляють, щоб зрозуміти процес:
Ми оновлюємо список пакетів у репозиторіях
apt update
Поновлення самих пакетів
apt upgrade -y
Встановіть пакет Wireguard
apt install -y wireguard
Наша конфігурація буде зберігатися в каталозі /etc/wireguard/, нам потрібно увійти в каталог:
cd /etc/wireguard/
Нам знадобляться відкритий і закритий ключ для нашого сервера. Ми згенеруємо їх після встановлення правильних прав під час створення файлів і каталогів за допомогою команд:
umask 077
wg genkey > privatekey
wg pubkey < privatekey > publickey
Тепер встановлюємо права для закритого ключа:
chmod 600 privatekey
Перш ніж створити файл конфігурації, нам потрібна назва нашого мережевого інтерфейсу. Щоб виявити його, використовуйте команду:
ip a
Нам потрібен інтерфейс з IP-адресою, яка використовується для поточного підключення. Ймовірно, у вашому випадку він називатиметься ens3, але може бути й інша назва.
Нам також знадобляться відкритий і закритий ключі. Щоб відобразити їх, я використовую хвіст
tail privatekey publickey
Це виглядає наступним чином:
Для редагування можна використовувати будь-який Текстовий редактор Linux. Я буду використовувати нано. Щоб встановити його, потрібно виконати команду:
apt install -y nano
Редагуємо конфігураційний файл:
nano /etc/wireguard/wg0.conf
Примітка:
щоб зберегти файл, ми використовуємо комбінацію кнопок ctrl+o
для виходу - ctrl+x
Це має виглядати так:
[Interface]
PrivateKey = [ your private key ]
Address = 10.30.0.1/24
ListenPort = 51928
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o [ interface name ] -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o [ interface name ] -j MASQUERADE
У моєму випадку це виглядає так
Включаємо ip forwarding
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p
Запуск служби Wireguard:
systemctl start [email protected]
Якщо ми хочемо, щоб служба запускалася після перезапуску сервера, ми робимо наступне:
systemctl enable [email protected]
Для перегляду статусу послуги:
systemctl status [email protected]
Статус має бути активним, як на скріншоті:
Якщо ви уважно слідували нашим інструкціям, то на цьому етапі у вас є все необхідне для роботи серверної частини VPN Wireguard.
Налаштування клієнта Wireguard
Залишилося лише налаштувати клієнтську частину. Для прикладу та простоти я буду генерувати ключі для клієнтської частини також на сервері. Але в цілях безпеки було б правильніше генерувати ключі на стороні клієнта. Я використовую команди для генерації:
wg genkey > mypc_privatekey
wg pubkey < mypc_privatekey > mypc_publickey
Я також згенерую ключі для використання VPN на телефоні:
wg genkey > myphone_private
keywg pubkey < myphone_privatekey > myphone_publickey
Слід зазначити, що все це потрібно робити, перебуваючи в каталозі
/etc/wireguard/
Ви також можете запустити в іншому каталозі. Але для простоти ми виконуємо інструкції в /etc/wireguard/
Ми використовуємо команду ls, щоб отримати список файлів у каталозі. Я отримав це так:
Виведемо відкритий ключ на екран. Вони нам знадобляться, щоб додати вузли в нашу мережу:
tail mypc_publickey myphone_publickey
Для мене це виглядає так:
Давайте відредагуємо наш конфігураційний файл:
nano wg0.conf
Додайте наступні рядки:
[Peer]
PublicKey = [ mypc_publickey ]
AllowedIPs = 10.30.0.2/32
[Peer]
PublicKey = [ myphone_publickey ]
AllowedIPs = 10.30.0.3/32
Тепер конфігураційний файл виглядає так:
Збережіть файл і перезапустіть наш сервіс:
systemctl restart wg-quick@wg0
Перевіримо, чи все пройшло успішно:
systemctl status wg-quick@wg0
Статус має бути активним
Кожного разу після редагування файлу конфігурації сервера (wg0.conf) потрібно перезавантажувати службу.
Далі ми створимо конфігурації для клієнтів (у моєму випадку, комп’ютера та телефону). Я зроблю те саме на сервері.
nano mypc.conf
[Interface]
PrivateKey = [mypc_privatekey private key]
Address = 10.30.0.2/32
DNS = 8.8.8.8
[Peer]
PublicKey = [publickey server publc key]
Endpoint =[ server ip address]:51928
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 20
У полі Endpoint ви можете побачити IP-адресу сервера - це IP-адреса, яку ми використовували для підключення через SSH. Щоб переглянути інтерфейси та адреси, ви можете скористатися командою ip a.
Налаштуйте Wireguard для мобільного
Створюємо аналогічну конфігурацію для нашого телефону. Просто потрібно змінити адресу. Для ПК це була 10.30.0.2/32, а в конфігурації для телефону зробимо 10.30.0.3/32. Крім того, якщо ми хочемо використовувати VPN на інших пристроях, ми повинні додати інші адреси в поле Address у файлах конфігурації та у файл конфігурації сервера wg0.conf, поле AllowedIPs під час створення конфігурацій
У моєму випадку файли виглядають так:
mypc.conf
myphone.conf
Для підключення встановлюємо клієнт wireguard https://www.wireguard.com/install/
У програмі Windows ми додаємо новий тунель і вводимо конфігурацію, створену у файлі mypc.conf
Ми запускаємо тунель і переходимо в браузер на сайт, де відображається наша адреса
Щоб було зручно додати VPN на свій телефон, встановіть на сервер програму для генерації qr-кодів:
apt install -y qrencode
Перебуваючи в каталозі конфігурації, виконайте наступний крок:
qrencode -t ansiutf8 -r myphone.conf
Потім входимо в програму Wireguard на телефоні, натискаємо +, щоб створити новий тунель, вибираємо сканувати QR-код, сканувати його, увімкнути VPN. Далі ми перевіримо, чи відображається адреса нашого сервера, використовуючи будь-який ресурс, який відображає вихідну IP-адресу.
Ти зробив це!