Инструменты пользователя

Инструменты сайта


flip:wireguard:installing_wireguard_on_debian_12

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
flip:wireguard:installing_wireguard_on_debian_12 [2024/12/24 17:29] flipflip:wireguard:installing_wireguard_on_debian_12 [2024/12/26 16:37] (текущий) flip
Строка 14: Строка 14:
 >**wg pubkey** - для публичного ключа >**wg pubkey** - для публичного ключа
  
-Пример генерации приватного ключа в файл **privatekey**+Пример генерации приватного ключа в файл **privatekey** \\ 
 +(Можно использовать любое другое имя для удобства)
  
 <code> <code>
Строка 20: Строка 21:
 </code> </code>
  
-Пример генерации публичного ключа в файл **publickey**+Пример генерации публичного ключа в файл **publickey** \\ 
 +(Можно использовать любое другое имя для удобства)
  
 <code> <code>
Строка 32: Строка 34:
 </code> </code>
  
 +Просмотреть ключи можно командами \\
 +(Приватный ключ должен быть засекречен!)
  
 +<code>
 +cat privatekey
 +cat publickey
 +</code>
  
  
 +===== Конфигурация для сервера =====
  
 +Необходимо сгенерировать ключи для сервера и клиента \\
 +При последующем добавлении новых клиентов, нужна перезагрузка WireGuard
 +
 +Файл конфигурации для сервера
 +
 +<code>
 +nano /etc/wireguard/wg0.conf
 +</code>
 +
 +Минимальная настройка **wg0.conf** \\
 +(Можно использовать любое другое имя для удобства)
 +
 +<code>
 +[Interface]
 +PrivateKey = <server_private_key>
 +Address = 192.168.0.1/24
 +ListenPort = 51820
 +
 +[Peer]
 +PublicKey = <client_public_key>
 +AllowedIPs = 192.168.0.2/32
 +</code>
 +
 +>**[Interface]** - настройка интерфейса
 +>**PrivateKey** - приватный ключ сервера
 +>**Address** - IP сервера и подсеть **24**
 +>**ListenPort** - порт для подключения, по умолчанию **51820**
 +>**PostUp** - команды выполняются при запуске интерфейса
 +>**PostDown** - команды выполняются при остановке интерфейса
 +
 +>**[Peer]** - настройка для клиента
 +>**PublicKey** - публичный ключ клиента
 +>**AllowedIPs** - IP клиента и подсеть **32**
 +
 +Запустить интерфейс (должен совпадать с именем конфига)
 +
 +<code>
 +systemctl status wg-quick@wg0.service
 +</code>
 +
 +Автозапуск интерфейса
 +
 +<code>
 +systemctl enable wg-quick@wg0.service
 +</code>
 +
 +Применение новых настроек без потери текущих соединений
 +
 +<code>
 +systemctl reload wg-quick@wg0.service
 +</code>
 +
 +
 +===== Разрешить трафик через шлюз на сервере (форвардинг) =====
 +
 +Раскомментировать или добавить параметр в **/etc/sysctl.conf**
 +
 +<code>
 +net.ipv4.ip_forward=1
 +</code>
 +
 +Применить параметр
 +
 +<code>
 +sysctl -p
 +</code>
 +
 +
 +===== Конфигурация для клиента =====
 +
 +Минимальная настройка для клиента
 +
 +<code>
 +[Interface]
 +Address = 192.168.0.2/32
 +PrivateKey = <client_private_key>
 +DNS = 1.1.1.1
 +
 +[Peer]
 +PublicKey = <server_public_key>
 +Endpoint = <server_ip>:51820
 +AllowedIPs = 0.0.0.0/0, ::/0
 +</code>
 +
 +>**[Interface]** - настройка интерфейса
 +>**Address** - IP клиента и подсеть **32**
 +>**PrivateKey** - приватный ключ клиента
 +>**DNS** - DNS сервер
 +
 +>**[Peer]** - настройка сервера
 +>**PublicKey** - публичный ключ сервера
 +>**Endpoint** - IP сервера и порт для подключения
 +>**AllowedIPs** - IP адреса и подсети для перенаправления трафика на сервер (IPv4, IPv6)
 +>**PersistentKeepalive** - интервал отправки пакетов для поддержания соединения в  секундах, по умолчанию 0, достаточно поставить 25
 +
 +0.0.0.0/0 - весь трафик для IPv4 \\
 +::/0 - весь трафик для IPv6
 +
 +
 +===== QR-код конфигурации =====
 +
 +Установить пакет
 +
 +<code>
 +apt-get install qrencode
 +</code>
 +
 +Сгенерировать qr-код из пользовательского конфига
 +
 +<code>
 +qrencode -t ansiutf8 < user.conf
 +</code>
 +
 +
 +===== Примеры =====
 +
 +
 +==== Кейс. Виртуальная сеть сервер-клиент ====
 +
 +Настроим WireGuard между двумя устройствами
 +
 +**Генерируем ключи для сервера**
 +
 +<code>
 +wg genkey | tee server_privatekey | wg pubkey > server_publickey
 +cat server_privatekey && cat server_publickey
 +</code>
 +
 +>**server_privatekey:** eAFJBo4Iv6EhCFrJ2UnaKUL6m5l+eBQXFiyvrgKbeGM=
 +>**server_publickey:** g2TdH54TB3yVFqMkRsYr7IsgHQIiFQQ4C5pwIIe+wkE=
 +
 +**Генерируем ключи для клиента**
 +
 +<code>
 +wg genkey | tee user_privatekey | wg pubkey > user_publickey
 +cat user_privatekey && cat user_publickey
 +</code>
 +
 +>**user_privatekey:** sJTjndiIZ0uGrwFSlnRJ8QIy5Ty2fqTjYf1u/g0p/FU=
 +>**user_publickey:** MNX7jtoxAAgyp38DjxSX2xX6C9z2Ozmp5VFJC0uXWEA=
 +
 +**Конфиг для сервера**
 +
 +<code>
 +nano /etc/wireguard/wg0.conf
 +</code>
 +
 +<code>
 +[Interface]
 +PrivateKey = eAFJBo4Iv6EhCFrJ2UnaKUL6m5l+eBQXFiyvrgKbeGM=
 +Address = 192.168.100.1/24
 +ListenPort = 51820
 +
 +[Peer]
 +PublicKey = MNX7jtoxAAgyp38DjxSX2xX6C9z2Ozmp5VFJC0uXWEA=
 +AllowedIPs = 192.168.100.2/32
 +</code>
 +
 +>Address = 192.168.100.1/24 - виртуальный IP сервера
 +>AllowedIPs = 192.168.100.2/32 - IP клиента
 +
 +Запускаем интерфейс
 +
 +<code>
 +systemctl status wg-quick@wg0.service
 +</code>
 +
 +Автозапуск интерфейса
 +
 +<code>
 +systemctl enable wg-quick@wg0.service
 +</code>
 +
 +**Конфиг для клиента**
 +
 +>**user.conf**
 +
 +<code>
 +[Interface]
 +Address = 192.168.100.2/32
 +PrivateKey = sJTjndiIZ0uGrwFSlnRJ8QIy5Ty2fqTjYf1u/g0p/FU=
 +
 +[Peer]
 +PublicKey = g2TdH54TB3yVFqMkRsYr7IsgHQIiFQQ4C5pwIIe+wkE=
 +AllowedIPs = 192.168.100.0/24
 +Endpoint = 192.168.0.6:51820
 +</code>
 +
 +>Address = 192.168.100.2/32 - виртуальный IP клиента
 +>AllowedIPs = 192.168.100.0/24 - разрешенная подсеть
 +>Endpoint = 192.168.0.6:51820 - IP сервера для подключения
 +
 +Добавить конфиг в клиент и подключиться
 +
 +Если пинг проходит в обе стороны, значит настройка прошла успешно
 +
 +
 +**Добавляем еще одного клиента**
 +
 +Генерируем ключи
 +
 +<code>
 +wg genkey | tee user2_privatekey | wg pubkey > user2_publickey
 +cat user2_privatekey && cat user2_publickey
 +</code>
 +
 +>**user2_privatekey:** oNXwVJklzsMIwOcIB9xjvEqtGMzimXa9dr7qQ8kUfXE=
 +>**user2_publickey:** HyVRp907OMf7D2piTy6dpabHSMSSQ9Eel/N8PPi91xQ=
 +
 +Отредактируем конфиг сервера
 +
 +<code>
 +[Interface]
 +PrivateKey = eAFJBo4Iv6EhCFrJ2UnaKUL6m5l+eBQXFiyvrgKbeGM=
 +Address = 192.168.100.1/24
 +ListenPort = 51820
 +
 +[Peer]
 +PublicKey = MNX7jtoxAAgyp38DjxSX2xX6C9z2Ozmp5VFJC0uXWEA=
 +AllowedIPs = 192.168.100.2/32
 +
 +[Peer]
 +PublicKey = HyVRp907OMf7D2piTy6dpabHSMSSQ9Eel/N8PPi91xQ=
 +AllowedIPs = 192.168.100.3/32
 +</code>
 +
 +Новый конфиг для клиента
 +
 +<code>
 +[Interface]
 +Address = 192.168.100.3/32
 +PrivateKey = oNXwVJklzsMIwOcIB9xjvEqtGMzimXa9dr7qQ8kUfXE=
 +
 +[Peer]
 +PublicKey = g2TdH54TB3yVFqMkRsYr7IsgHQIiFQQ4C5pwIIe+wkE=
 +AllowedIPs = 192.168.100.0/24
 +Endpoint = 192.168.0.6:51820
 +</code>
 +
 +Применяем новый конфиг
 +
 +<code>
 +systemctl reload wg-quick@wg0.service
 +</code>
  
 +Клиенты не смогут друг друга увидеть. \\
 +Чтоб видели, нужно включить форвардинг
flip/wireguard/installing_wireguard_on_debian_12.1735061360.txt.gz · Последнее изменение: 2024/12/24 17:29 — flip

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki