Налаштування WireGuard: відмінності між версіями
R (обговорення | внесок) Первинна версія документу |
R (обговорення | внесок) Прибрав шаблон |
||
| (Не показано одну проміжну версію цього користувача) | |||
| Рядок 1: | Рядок 1: | ||
'''WireGuard''' — сучасне VPN-рішення для безпечного підключення користувачів і сервісів до внутрішніх мереж. У цій інструкції описано встановлення, налаштування, запуск, перевірку та перезапуск WireGuard на Linux і Windows. | '''WireGuard''' — сучасне VPN-рішення для безпечного підключення користувачів і сервісів до внутрішніх мереж. У цій інструкції описано встановлення, налаштування, запуск, перевірку та перезапуск WireGuard на Linux і Windows. | ||
| Рядок 16: | Рядок 9: | ||
Для встановлення WireGuard у Linux використовується пакетний менеджер відповідного дистрибутива. | Для встановлення WireGuard у Linux використовується пакетний менеджер відповідного дистрибутива. | ||
< | <pre> | ||
sudo apt install wireguard # або пакет для свого дистро | sudo apt install wireguard # або пакет для свого дистро | ||
</ | </pre> | ||
=== Генерація ключів === | === Генерація ключів === | ||
| Рядок 24: | Рядок 17: | ||
Після встановлення потрібно згенерувати приватний і публічний ключі клієнта. | Після встановлення потрібно згенерувати приватний і публічний ключі клієнта. | ||
< | <pre> | ||
wg genkey | tee ~/wg_private | wg pubkey > ~/wg_public | wg genkey | tee ~/wg_private | wg pubkey > ~/wg_public | ||
cat ~/wg_public | cat ~/wg_public | ||
</ | </pre> | ||
Публічний ключ потрібно надіслати адміністратору для додавання користувача до VPN-сервера. | Публічний ключ потрібно надіслати адміністратору для додавання користувача до VPN-сервера. | ||
| Рядок 35: | Рядок 28: | ||
Файл конфігурації створюється за шляхом: | Файл конфігурації створюється за шляхом: | ||
< | <pre> | ||
/etc/wireguard/wg0.conf | /etc/wireguard/wg0.conf | ||
</ | </pre> | ||
Приклад конфігурації split-tunnel до мереж датацентру: | Приклад конфігурації split-tunnel до мереж датацентру: | ||
< | <pre> | ||
[Interface] | [Interface] | ||
Address = 10.7.0.ОтриматиВідАдміна/32 | Address = 10.7.0.ОтриматиВідАдміна/32 | ||
| Рядок 56: | Рядок 49: | ||
AllowedIPs = 192.168.20.0/24, 192.168.21.0/24 | AllowedIPs = 192.168.20.0/24, 192.168.21.0/24 | ||
PersistentKeepalive = 25 | PersistentKeepalive = 25 | ||
</ | </pre> | ||
У режимі '''full-tunnel''' у параметрі <code>AllowedIPs</code> потрібно вказати: | У режимі '''full-tunnel''' у параметрі <code>AllowedIPs</code> потрібно вказати: | ||
< | <pre> | ||
AllowedIPs = 0.0.0.0/0 | AllowedIPs = 0.0.0.0/0 | ||
</ | </pre> | ||
За потреби можна додати <code>DNS=</code> до внутрішнього DNS-сервера. | За потреби можна додати <code>DNS=</code> до внутрішнього DNS-сервера. | ||
| Рядок 68: | Рядок 61: | ||
=== Запуск WireGuard === | === Запуск WireGuard === | ||
< | <pre> | ||
sudo wg-quick up wg0 | sudo wg-quick up wg0 | ||
</ | </pre> | ||
Щоб увімкнути автозапуск при старті системи: | Щоб увімкнути автозапуск при старті системи: | ||
< | <pre> | ||
sudo systemctl enable --now wg-quick@wg0 | sudo systemctl enable --now wg-quick@wg0 | ||
</ | </pre> | ||
=== Перевірка стану === | === Перевірка стану === | ||
< | <pre> | ||
wg show | wg show | ||
ip addr show wg0 | ip addr show wg0 | ||
</ | </pre> | ||
=== Перезапуск === | === Перезапуск === | ||
| Рядок 89: | Рядок 82: | ||
М’який перезапуск через <code>wg-quick</code>: | М’який перезапуск через <code>wg-quick</code>: | ||
< | <pre> | ||
sudo wg-quick down wg0 && sudo wg-quick up wg0 | sudo wg-quick down wg0 && sudo wg-quick up wg0 | ||
</ | </pre> | ||
Перезапуск через systemd, якщо сервіс увімкнений: | Перезапуск через systemd, якщо сервіс увімкнений: | ||
< | <pre> | ||
sudo systemctl restart wg-quick@wg0 | sudo systemctl restart wg-quick@wg0 | ||
</ | </pre> | ||
=== Зупинка === | === Зупинка === | ||
< | <pre> | ||
sudo wg-quick down wg0 | sudo wg-quick down wg0 | ||
</ | </pre> | ||
Щоб вимкнути автозапуск і зупинити тунель: | Щоб вимкнути автозапуск і зупинити тунель: | ||
< | <pre> | ||
sudo systemctl disable --now wg-quick@wg0 | sudo systemctl disable --now wg-quick@wg0 | ||
</ | </pre> | ||
=== Шпаргалка команд Linux === | === Шпаргалка команд Linux === | ||
| Рядок 152: | Рядок 145: | ||
Для редагування тунелю потрібно натиснути кнопку '''Edit''' і заповнити конфігурацію. | Для редагування тунелю потрібно натиснути кнопку '''Edit''' і заповнити конфігурацію. | ||
< | <pre> | ||
[Interface] | [Interface] | ||
PrivateKey = ВставляєтьсяАвтоматичноПриГенераціїНеМіняти | PrivateKey = ВставляєтьсяАвтоматичноПриГенераціїНеМіняти | ||
| Рядок 164: | Рядок 157: | ||
# або 0.0.0.0/0 для full-tunnel | # або 0.0.0.0/0 для full-tunnel | ||
PersistentKeepalive = 25 | PersistentKeepalive = 25 | ||
</ | </pre> | ||
Після збереження конфігурації потрібно натиснути '''Activate'''. У вікні клієнта має з’явитися '''Latest Handshake''', а також повинні зростати показники '''Transfer RX/TX'''. | Після збереження конфігурації потрібно натиснути '''Activate'''. У вікні клієнта має з’явитися '''Latest Handshake''', а також повинні зростати показники '''Transfer RX/TX'''. | ||
=== Ілюстрації з документа === | |||
<gallery mode="packed" heights="180"> | |||
WireGuard_01.png|Ілюстрація WireGuard|посилання=Файл:WireGuard_01.png | |||
WireGuard_02.png|Ілюстрація WireGuard|посилання=Файл:WireGuard_02.png | |||
</gallery> | |||
=== Перезапуск у Windows === | === Перезапуск у Windows === | ||
| Рядок 177: | Рядок 177: | ||
Якщо тунель встановлено як сервіс, його можна перезапустити командою: | Якщо тунель встановлено як сервіс, його можна перезапустити командою: | ||
< | <pre> | ||
"C:\Program Files\WireGuard\wireguard.exe" /restarttunnelservice "<ім'я_тунелю>" | "C:\Program Files\WireGuard\wireguard.exe" /restarttunnelservice "<ім'я_тунелю>" | ||
</ | </pre> | ||
== Перевірка роботи == | == Перевірка роботи == | ||
| Рядок 187: | Рядок 187: | ||
Приклад: | Приклад: | ||
< | <pre> | ||
ping 192.168.20.225 | ping 192.168.20.225 | ||
</ | </pre> | ||
Якщо VPN працює коректно, має бути відповідь з обміном пакетами. | Якщо VPN працює коректно, має бути відповідь з обміном пакетами. | ||