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