Як встановити та налаштувати WireGuard VPN на Debian 12

Як встановити та налаштувати WireGuard VPN на Debian 12

 

Wireguard — це VPN-протокол з відкритим вихідним кодом, альтернативний IPSec, IKEv2 та OpenVPN. Wiruguard розроблений для операційних систем Linux та Unix, він працює на просторі ядра Linux, що робить Wireguard швидшим та надійнішим. Wireguard використовується для створення безпечних тунельних з’єднань між двома комп’ютерами або більше.

Wireguard має на меті замінити протоколи VPN, такі як IPSec, IKEv2 та OpenVPN. Wireguard легший, швидший, простий у налаштуванні та ефективніший. У той же час, Wiregurad не пожертвував аспектом безпеки протоколу VPN. Wireguard підтримує сучасну криптографію, як-от фреймворк протоколу Noise, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF, а також безпечні довірені конструкції.

Цей посібник покаже вам, як встановити Wireguard VPN на сервер Debian 12 та налаштувати клієнт Wireguard на машині з Linux.

Передумови

Перш ніж занурюватися, переконайтеся, що у вас є такі вимоги:

  • Сервер Linux під управлінням Debian 12.
  • Користувач, який не є користувачем root, з привілеями sudo.
  • Клієнтська машина – в даному випадку з використанням дистрибутива на основі Debian.

Підготовка системи

Перед встановленням Wireguard ви повинні підготувати свій сервер Debian, внісши наступні зміни:

  • Увімкніть переадресацію портів через /etc/sysctl.conf
  • Встановлення та налаштування UFW

Тепер почнемо.

Увімкнути переадресацію портів

Щоб увімкнути переадресацію портів, необхідно увімкнути модуль ядра net.ipv4. ip_forward для IPv4 або net. ipv6.conf. всі. переадресація для IPv6. Ці модулі ядра можна увімкнути за допомогою файлу /etc/sysctl.conf.

Відкрийте файл /etc/sysctl.conf за допомогою наступної команди наноредактора.

sudo nano /etc/sysctl.conf

Вставте наведену нижче конфігурацію, щоб увімкнути переадресацію портів для IPv4 та IPv6 (якщо потрібно).

# Port Forwarding for IPv4
net.ipv4.ip_forward=1

# Port forwarding for IPv6
net.ipv6.conf.all.forwarding=1

Збережіть файл і вийдіть з редактора, коли закінчите.

Тепер застосуйте зміни за допомогою команди sysctl, наведеної нижче.

sudo sysctl -p

Встановлення UFW

Брандмауер за замовчуванням в Debian – iptables, і тепер ви встановите UFW. Ви будете використовувати як UFW, так і iptables для сервера Wirguard.

Виконайте команду apt нижче, щоб оновити свій репозиторій та встановити UFW на вашу систему Debian.

sudo apt update && sudo apt install ufw -y

Далі виконайте команду ufw нижче, щоб додати профіль програми OpenSSH і включити UFW. Введіть y і натисніть ENTER для підтвердження, і ви повинні отримати повідомлення  “Firewall is active and enabled on system startup“.

sudo ufw allow OpenSSH
sudo ufw enable

Нарешті, перевірте статус UFW за допомогою команди нижче.

sudo ufw status

Якщо запущено, то має вийти “Status: active.” You will also see that профіль програми OpenSSH додано до UFW.

Як встановити та налаштувати WireGuard VPN на Debian 12

Встановлення сервера Wireguard

Після налаштування сервера Debian ви готові створити VPN-сервер Wireguard на своєму комп’ютері Debian. Для його досягнення виконайте наступне завдання:

  • Встановлення Wireguard
  • Генерація ключа сервера Wireguard
  • Генерація клієнтського ключа Wireguard
  • Налаштування інтерфейсу Wireguard
  • Налаштування NAT для інтерфейсу Wireguard

Давайте це зробимо.

Встановлення Wireguard

Спочатку, встановіть пакунок wireguard на свій сервер Debian, виконавши наступну команду.

sudo apt install wireguard

Введіть y, щоб продовжити встановлення.

Як встановити та налаштувати WireGuard VPN на Debian 12

Генерація ключа сервера Wireguard

Після того, як пакет wireguard встановлений, наступним завданням є генерація сертифікатів сервера, що можна зробити за допомогою інструменту командного рядка wg.

Виконайте наступну команду, щоб згенерувати приватний ключ сервера wireguard до /etc/wireguard/server.key. Потім змініть дозвіл приватного ключа сервера на 0400, що означає, що ви відключите доступ на запис до файлу.

wg genkey | sudo tee /etc/wireguard/server.key
sudo chmod 0400 /etc/wireguard/server.key

Далі виконайте наступну команду, щоб згенерувати відкритий ключ сервера wireguard до /etc/wireguard/server.pub.

sudo cat /etc/wireguard/server.key | wg pubkey | sudo tee /etc/wireguard/server.pub

Як встановити та налаштувати WireGuard VPN на Debian 12

Тепер, коли ви згенерували private key до /etc/wireguard/server.key та public key до /etc/wireguard/server.pub для вашого сервера wireguard. Ви можете виконати команду cat нижче, щоб показати вміст як приватного, так і публічного ключів.

cat /etc/wireguard/server.key
cat /etc/wireguard/server.pub

У вас може бути інший вихід, але згенеровані ключі виглядають наступним чином:

Як встановити та налаштувати WireGuard VPN на Debian 12

Генерація клієнтського ключа Wireguard

Після створення ключа сервера wireguard наступним завданням є генерація ключів для клієнтів. Ви можете генерувати клієнтські ключі для кожного користувача, але ви також можете використовувати один ключ для кількох користувачів.

У цьому прикладі ви згенеруєте клієнтський ключ для конкретного користувача alice.

Для початку виконайте наступну команду, щоб створити новий каталог для зберігання клієнтських ключів. У цьому випадку публічний та приватний ключі для користувача alice будуть згенеровані в директорію /etc/wireguard/clients/alice .

mkdir -p /etc/wireguard/clients/alice

Тепер виконайте наступну команду, щоб згенерувати приватний ключ /etc/wireguard/clients/alice/alice.key та відкритий ключ /etc/wireguard/clients/alice/alice.pub для користувача alice.

wg genkey | tee /etc/wireguard/clients/alice/alice.key
cat /etc/wireguard/clients/alice/alice.key | wg pubkey | tee /etc/wireguard/clients/alice/alice.pub

Нарешті, виконайте наведену нижче команду, щоб показати вміст приватного та публічного ключів для користувача alice.

cat /etc/wireguard/clients/alice/alice.key
cat /etc/wireguard/clients/alice/alice.pub

Буде показано аналогічний результат, як показано нижче:

Як встановити та налаштувати WireGuard VPN на Debian 12

Налаштування інтерфейсу Wireguard

Тепер, коли ви згенерували приватні та публічні ключі як для сервера, так і для клієнта, наступним завданням є налаштування інтерфейсу та однорангового вузла Wireguard. Ви налаштуєте інтерфейс для мережі Wireguard, VPN і піра, який буде встановлюватися між клієнтом і сервером.

Створіть нову конфігурацію Wireguard /etc/wireguard/wg0.conf за допомогою наступної команди наноредактора.

sudo nano /etc/wireguard/wg0.conf

Вставте у файл наступну конфігурацію.

[Interface]
# Wireguard Server private key - server.key
PrivateKey = cNBb6MGaKhmgllFxSq/h9BdYfZOdyKvo8mjzb2STbW8=

# Wireguard interface will be run at 10.10.0.1
Address = 10.10.0.1/24

# Clients will connect to UDP port 51820
ListenPort = 51820

# Ensure any changes will be saved to the Wireguard config file
SaveConfig = true

Нижче наведено детальні параметри, які будуть використовуватися в розділі [Interface]:

  • PrivateKey: введіть приватний ключ сервера wireguard server.key.
  • Адреса: IP-адреса, яка буде призначена інтерфейсу Wireguard. У цьому випадку інтерфейс wireguard матиме IP-адресу 10.10.0.1.
  • ListenPort: це порт, який буде використовуватися клієнтом для підключення до сервера wireguard. У цьому випадку буде використовуватися порт 51820.
  • SaveConfig: значення true означає, що будь-які зміни будуть збережені від поточного стану інтерфейсу до завершення роботи.

Тепер додайте наступний розділ [Peer] для клієнтів wireguard.

[Peer]
# Wireguard client public key - alice.pub
PublicKey = 3ZoaoVgHOioZnKzCrF/XALAv70V4vyJXpl/UO7AKYzA=

# clients' VPN IP addresses you allow to connect
# possible to specify subnet ⇒ [10.10.0.0/24]
AllowedIPs = 10.10.0.2/24

Нижче наведено параметри, які використовуються в розділі [Peer]:

PublicKey: введіть відкритий ключ клієнта wireguard для цього параметра. В даному випадку вміст відкритого ключа alice.pub.
Дозволені IP-адреси: визначте IP-адресу для клієнта та спрямуйте трафік до інтерфейсу wireguard.

Збережіть і закрийте файл, коли закінчите.

Нарешті, виконайте наступну команду, щоб відкрити порт 51820/udp для підключення клієнта.

sudo ufw allow 51820/udp

Налаштування NAT для інтерфейсу Wireguard

Спочатку виконайте наступну команду, щоб відобразити інтерфейс шлюзу за замовчуванням, який використовується для підключення до Інтернету.

sudo ip route list default

У цьому випадку мережевим інтернет-шлюзом за замовчуванням є інтерфейс eth0.

 

Тепер відкрийте конфігурацію wireguard /etc/wireguard/wg0.conf, використовуючи наступну команду наноредактора.

sudo nano /etc/wireguard/wg0.conf

Додайте наступну конфігурацію в розділі [Interface] і обов’язково змініть інтерфейс  eth0 з інтерфейсом інтернет-шлюзу за замовчуванням.

[Interface]
...

PostUp = ufw route allow in on wg0 out on eth0
PostUp = iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
PostUp = ip6tables -t nat -I POSTROUTING -o eth0 -j MASQUERADE

PreDown = ufw route delete allow in on wg0 out on eth0
PreDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
PreDown = ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

Збережіть і закрийте файл після завершення.

На цьому етапі ви налаштували свій сервер Wireguard.

Керування сервісом Wireguard

Тепер, коли встановлення та налаштування сервера Wireguard завершено, ви готові запустити сервіс Wireguard на вашій системі Debian. Зробити це можна за допомогою команди systemctl або за допомогою утиліти wg-quick.

Щоб запустити та активувати сервер wireguard, виконайте наступну команду systemctl. Використовуючи ім’я wg-quick@wg0, ви запустите Wireguard в інтерфейсі wg0 , який базується на конфігурації  /etc/wireguard/wg0.conf.

sudo systemctl start wg-quick@wg0.service
sudo systemctl enable wg-quick@wg0.service

Now verify the wirguard@wg0 service using the following command.

sudo systemctl status wg-quick@wg0.service

Якщо службу запущено, буде відображено такий вихід.

 

Далі виконайте команду ip нижче, щоб показати деталі інтерфейсу wireguard wg0. І ви повинні побачити інтерфейс wireguard, wg0 має IP-адресу 10.10.0.1.

sudo ip a show wg0

Як встановити та налаштувати WireGuard VPN на Debian 12

Ви також можете запустити або зупинити wireguard вручну за допомогою команди wg-quick, наведеної нижче.

sudo wg-quick up /etc/wireguard/wg0.conf
sudo wg-quick down /etc/wireguard/wg0.conf

Таким чином, ви налаштували сервер wireguard і запустили його у фоновому режимі за допомогою команди systemctl. Тепер ваш клієнт готовий до підключення до сервера wireguard.

Налаштування клієнта Wireguard у дистрибутиві на основі Debian

У наступному розділі ви налаштуєте клієнт wireguard для дистрибутива на основі Debian. Ви встановите інструменти wireguard, створите конфігурацію клієнта wireguard, підключитеся до сервера wireguard, перевірите з’єднання через утиліту wg та отримаєте доступ до Інтернету.

Встановіть пакет wireguard-tools на клієнтську машину через APT. Клієнтська машина є дистрибутивом на основі Debian, тому буде використовуватися менеджер пакетів APT.

sudo apt install wireguard-tools resolvconf

Як встановити та налаштувати WireGuard VPN на Debian 12

 

Після встановлення wireguard-tools створіть нову конфігурацію клієнта /etc/wireguard/wg-alice.conf за допомогою наступного наноредактора.

sudo nano /etc/wireguard/wg-alice.conf

Вставте у файл наступну конфігурацію.

[Interface]
# Define the IP address for the client - must be matched with wg0 on the Wireguard Server
Address = 10.10.0.2/24

# specific DNS Server
DNS = 1.1.1.1

# Private key for the client - alice.key
PrivateKey = cPDg6SQHz/3l2R83lMWPzmR6/mMKnKp9PNImbtB6nGI=

[Peer]
# Public key of the Wireguard server - server.pub
PublicKey = APyBQvTkYVm0oakzcQUQViarwx1aIYz5wb/g2v2xdUE=

# Allow all traffic to be routed via Wireguard VPN
AllowedIPs = 0.0.0.0/0

# Public IP address of the Wireguard Server
Endpoint = 192.168.128.15:51820

# Sending Keepalive every 25 sec
PersistentKeepalive = 25

Збережіть і закрийте файл, коли закінчите.

Нижче наведено деякі параметри в розділі [Interface] для клієнтів wireguard:

  • Адреса: вкажіть внутрішню IP-адресу інтерфейсу wireguard на клієнтському комп’ютері.
  • DNS: налаштуйте DNS-сервер за замовчуванням для клієнта.
  • PrivateKey: приватний ключ клієнта wireguard, у цьому випадку, alice.key.

І в розділі [Peer] у конфігурації клієнта wireguard:

  • PublicKey: це відкритий ключ сервера wireguard, яким є server.pub.
  • Дозволені IP-адреси: дозволяють маршрутизацію будь-якого доступу через інтерфейс wireguard.
  • Кінцева точка: IP-адреса та порт сервера wireguard.
  • PersistentKeepalive: надсилайте keepalive кожні x секунд, щоб підтримувати з’єднання.

Далі виконайте команду wg-quick нижче, щоб запустити wireguard на інтерфейсі wg-alice.

sudo wg-quick up wg-alice

Якщо все пройде успішно, аналогічний результат буде показаний нижче.

Як встановити та налаштувати WireGuard VPN на Debian 12

Після цього виконайте команду ip нижче, щоб перевірити деталі інтерфейсу wg-alice. І ви повинні побачити інтерфейс wg-alice з локальною IP-адресою 10.10.0.2.

sudo ip a show wg-alice

Як встановити та налаштувати WireGuard VPN на Debian 128

Далі перевірте підключення до Інтернету клієнтської машини, виконавши наступну команду.

ping -c3 10.10.0.1
ping -c3 1.1.1.1
ping -c3 duckduckgo.com

Якщо встановлення сервера wireguard пройшло успішно, ви отримаєте відповідь від кожного цільового сервера наступним чином:

Як встановити та налаштувати WireGuard VPN на Debian 128

Крім того, ви також можете деталізувати з’єднання між сервером wireguard і клієнтом, виконавши наступну команду на сервері wireguard або клієнтській машині.

wg show

Аналогічний результат буде показаний нижче.

Як встановити та налаштувати WireGuard VPN на Debian 1211

Нарешті, щоб зупинити з’єднання wireguard на клієнтській машині, запустіть команду wg-quick нижче.

sudo wg-quick down wg-alice

Як встановити та налаштувати WireGuard VPN на Debian 1210

Висновок

Підводячи підсумок, можна сказати, що ви вже крок за кроком завершили встановлення Wireguard VPN на сервер Debian 12. Ви також налаштували клієнтську машину на основі Debian за допомогою Wireguard і підключилися до сервера Wireguard. Маючи це на увазі, тепер ви можете додавати більше клієнтів, додаючи більше ключів Wireguard і конфігурацію однорангового вузла.

Прокрутка до верху