Налаштування WireGuard: відмінності між версіями

Первинна версія документу
 
Прибрав шаблон
 
(Не показано одну проміжну версію цього користувача)
Рядок 1: Рядок 1:
{{Картка документації
| назва = Налаштування WireGuard
| тип = Інструкція
| платформи = Linux, Windows
| призначення = VPN-доступ до мереж датацентру
}}
'''WireGuard''' — сучасне VPN-рішення для безпечного підключення користувачів і сервісів до внутрішніх мереж. У цій інструкції описано встановлення, налаштування, запуск, перевірку та перезапуск WireGuard на Linux і Windows.
'''WireGuard''' — сучасне VPN-рішення для безпечного підключення користувачів і сервісів до внутрішніх мереж. У цій інструкції описано встановлення, налаштування, запуск, перевірку та перезапуск WireGuard на Linux і Windows.


Рядок 16: Рядок 9:
Для встановлення WireGuard у Linux використовується пакетний менеджер відповідного дистрибутива.
Для встановлення WireGuard у Linux використовується пакетний менеджер відповідного дистрибутива.


<syntaxhighlight lang="bash">
<pre>
sudo apt install wireguard  # або пакет для свого дистро
sudo apt install wireguard  # або пакет для свого дистро
</syntaxhighlight>
</pre>


=== Генерація ключів ===
=== Генерація ключів ===
Рядок 24: Рядок 17:
Після встановлення потрібно згенерувати приватний і публічний ключі клієнта.
Після встановлення потрібно згенерувати приватний і публічний ключі клієнта.


<syntaxhighlight lang="bash">
<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
</syntaxhighlight>
</pre>


Публічний ключ потрібно надіслати адміністратору для додавання користувача до VPN-сервера.
Публічний ключ потрібно надіслати адміністратору для додавання користувача до VPN-сервера.
Рядок 35: Рядок 28:
Файл конфігурації створюється за шляхом:
Файл конфігурації створюється за шляхом:


<syntaxhighlight lang="text">
<pre>
/etc/wireguard/wg0.conf
/etc/wireguard/wg0.conf
</syntaxhighlight>
</pre>


Приклад конфігурації split-tunnel до мереж датацентру:
Приклад конфігурації split-tunnel до мереж датацентру:


<syntaxhighlight lang="ini">
<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
</syntaxhighlight>
</pre>


У режимі '''full-tunnel''' у параметрі <code>AllowedIPs</code> потрібно вказати:
У режимі '''full-tunnel''' у параметрі <code>AllowedIPs</code> потрібно вказати:


<syntaxhighlight lang="ini">
<pre>
AllowedIPs = 0.0.0.0/0
AllowedIPs = 0.0.0.0/0
</syntaxhighlight>
</pre>


За потреби можна додати <code>DNS=</code> до внутрішнього DNS-сервера.
За потреби можна додати <code>DNS=</code> до внутрішнього DNS-сервера.
Рядок 68: Рядок 61:
=== Запуск WireGuard ===
=== Запуск WireGuard ===


<syntaxhighlight lang="bash">
<pre>
sudo wg-quick up wg0
sudo wg-quick up wg0
</syntaxhighlight>
</pre>


Щоб увімкнути автозапуск при старті системи:
Щоб увімкнути автозапуск при старті системи:


<syntaxhighlight lang="bash">
<pre>
sudo systemctl enable --now wg-quick@wg0
sudo systemctl enable --now wg-quick@wg0
</syntaxhighlight>
</pre>


=== Перевірка стану ===
=== Перевірка стану ===


<syntaxhighlight lang="bash">
<pre>
wg show
wg show
ip addr show wg0
ip addr show wg0
</syntaxhighlight>
</pre>


=== Перезапуск ===
=== Перезапуск ===
Рядок 89: Рядок 82:
М’який перезапуск через <code>wg-quick</code>:
М’який перезапуск через <code>wg-quick</code>:


<syntaxhighlight lang="bash">
<pre>
sudo wg-quick down wg0 && sudo wg-quick up wg0
sudo wg-quick down wg0 && sudo wg-quick up wg0
</syntaxhighlight>
</pre>


Перезапуск через systemd, якщо сервіс увімкнений:
Перезапуск через systemd, якщо сервіс увімкнений:


<syntaxhighlight lang="bash">
<pre>
sudo systemctl restart wg-quick@wg0
sudo systemctl restart wg-quick@wg0
</syntaxhighlight>
</pre>


=== Зупинка ===
=== Зупинка ===


<syntaxhighlight lang="bash">
<pre>
sudo wg-quick down wg0
sudo wg-quick down wg0
</syntaxhighlight>
</pre>


Щоб вимкнути автозапуск і зупинити тунель:
Щоб вимкнути автозапуск і зупинити тунель:


<syntaxhighlight lang="bash">
<pre>
sudo systemctl disable --now wg-quick@wg0
sudo systemctl disable --now wg-quick@wg0
</syntaxhighlight>
</pre>


=== Шпаргалка команд Linux ===
=== Шпаргалка команд Linux ===
Рядок 152: Рядок 145:
Для редагування тунелю потрібно натиснути кнопку '''Edit''' і заповнити конфігурацію.
Для редагування тунелю потрібно натиснути кнопку '''Edit''' і заповнити конфігурацію.


<syntaxhighlight lang="ini">
<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
</syntaxhighlight>
</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:
Якщо тунель встановлено як сервіс, його можна перезапустити командою:
Якщо тунель встановлено як сервіс, його можна перезапустити командою:


<syntaxhighlight lang="powershell">
<pre>
"C:\Program Files\WireGuard\wireguard.exe" /restarttunnelservice "<ім'я_тунелю>"
"C:\Program Files\WireGuard\wireguard.exe" /restarttunnelservice "<ім'я_тунелю>"
</syntaxhighlight>
</pre>


== Перевірка роботи ==
== Перевірка роботи ==
Рядок 187: Рядок 187:
Приклад:
Приклад:


<syntaxhighlight lang="bash">
<pre>
ping 192.168.20.225
ping 192.168.20.225
</syntaxhighlight>
</pre>


Якщо VPN працює коректно, має бути відповідь з обміном пакетами.
Якщо VPN працює коректно, має бути відповідь з обміном пакетами.