====== Wireguard: настройка сервера ====== Почему Wireguard: * Очень просто настраивается * Очень быстрый, по тестам намного производительнее других решений * Работает на большом количестве платформ * Включен в ядро Linux Что нужно: * Сервер на базе Linux с белым (публичным) IP ===== Настройка сервера ===== Установка: $ sudo apt install wireguard Создаем ключи для сервера: $ wg genkey | tee server-private.key | wg pubkey > server-public.key Создаем ключи для клиентов: $ wg genkey | tee client1-private.key | wg pubkey > client1-public.key $ wg genkey | tee client2-private.key | wg pubkey > client2-public.key Создаем файл настроек /etc/wireguard/wg0.conf, содержимое server-private.key и server-public.key нужно будет поместить внутрь: [Interface] Address = 10.10.10.1/24 ListenPort = 51820 PrivateKey = <содержимое server-private.key> DNS = 1.1.1.1, 1.0.0.1 # SaveConfig = true PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE [Peer] # client1 PublicKey = <содержимое client1-public> AllowedIPs = 10.10.10.101/32 [Peer] # client1 PublicKey = <содержимое client2-public> AllowedIPs = 10.10.10.102/32 Разрешаем пересылку пакетов между интерфейсами, добавляем в /etc/sysctl.conf: net.ipv4.ip_forward=1 net.ipv4.conf.all.forwarding=1 net.ipv6.conf.all.forwarding=1 Для принятия изменений выполните: $ sysctl -p /etc/sysctl.conf Включаем запуск службы при загрузке сервера: $ systemctl enable wg-quick@wg0.service Запускаем сервер: $ systemctl start wg-quick@wg0.service или $ sudo wg-quick up wg0 Проверяем статус: $ wg show ===== Настройка клиента ===== Создаем для каждого пользовательского устройства файл конфигурации client1.conf: [Interface] Address = 10.10.10.101/24 PrivateKey = <Содержимое client1-private.key> [Peer] Endpoint = <Адрес сервера XXX.XXX.XXX.XXX>:51820 PublicKey = <Содержимое server-public.key> AllowedIPs = 0.0.0.0/0 PersistentKeepalive = 30 Этот файл можно скопировать на клиента, а можно сделать QR-код (что ну очень удобно для мобильных устройств): $ sudo apt install qrencode $ qrencode -t ANSI < client1.conf ===== Калькулятор для настройки AllowedIPs ===== https://www.procustodibus.com/blog/2021/03/wireguard-allowedips-calculator/ {{tag>wireguard vpn впн блокировки}}