WireGuard - это чрезвычайно простой, но быстрый и современный VPN, в котором используется самая современная криптография . Он нацелен на то, чтобы быть быстрее , проще , компактнее и полезнее, чем IPsec, избегая при этом огромной головной боли. Он намерен быть значительно более производительным, чем OpenVPN. WireGuard разработан как VPN общего назначения для работы как на встроенных интерфейсах, так и на суперкомпьютерах, пригодный для многих различных ситуаций. Изначально выпущенный для ядра Linux, теперь он является кроссплатформенным (Windows, macOS, BSD, iOS, Android) и может широко развертываться. В настоящее время он интенсивно развивается, но уже может считаться самым безопасным, простым в использовании и самым простым решением VPN в отрасли.
Сочетание чрезвычайно высокоскоростных криптографических примитивов и того факта, что WireGuard находится внутри ядра Linux, означает, что безопасная сеть может быть очень высокоскоростной. Он подходит как для небольших встроенных устройств, таких как смартфоны, так и для полностью загруженных магистральных маршрутизаторов.
Для настройки VPN необходим VPS — виртуальный частный сервер. Вам сможете подобрать любого хостинг-провайдера, основное, чтобы выполнялись соответствующее требование:
Оперативной памяти (RAM) обязано быть никак не менее 512 МБ. Скорость сетевого интерфейса — 100 МБ/сек также больше. Сетевой трафик — тут полностью зависит от ваших целей, по общему пользованию рекомендуется не меньше 2х ТБ для постоянного использования Операционная система - Ubuntu 20.04
Список наиболее распространенных VPS-провайдеров: Kamatera - очень гибкий конструктор тарифов. Дешевые цены. можно собрать нужную конфигурацию с минимальными затратами. трафика 5ТБ в месяц на любую конфигурацию. 12 локаций. скорость интернет соединения по замерам ~4 Гбит
Vultr - высокая скорость, качественные VPS, большой выбор конфигураций. на дешевых тарифах небольшое количество трафика. 20 локаций. скорость интернет соединения по замерам ~2 Гбит
VDSina - российский недорогой хостинг, 2 локации всего 2 локации
Fornex - недорогие впс, 6 локаций. скорость интернет соединения 100 Мбит
FastVPS - 3 локации включая Россию, скорость соединения до 1Гбит
Установите WireGuard на Ubuntu 20.04
WireGuard доступен из репозиториев Ubuntu по умолчанию. Чтобы установить его, выполните следующие команды:
sudo apt update
sudo apt install wireguard
Это установит модуль и инструменты WireGuard. WireGuard работает как модуль ядра.
Настройка WireGuard
wgИ wg-quickинструменты командной строки позволяют настроить и управлять интерфейсами WireGuard. Каждое устройство в сети WireGuard VPN должно иметь закрытый и открытый ключ. Выполните следующую команду, чтобы сгенерировать пару ключей:
wg genkey | sudo tee /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickey
Файлы будут созданы в /etc/wireguardкаталоге. Вы можете просмотреть содержимое файлов с помощью catили less. Закрытый ключ никогда не должен передаваться кому-либо и всегда должен храниться в безопасности. Wireguard также поддерживает предварительный общий ключ, который добавляет дополнительный уровень криптографии с симметричным ключом. Этот ключ не является обязательным и должен быть уникальным для каждой пары одноранговых узлов.
Следующим шагом является настройка туннельного устройства, которое будет маршрутизировать трафик VPN. Устройство можно настроить либо из командной строки , используя ipи wgкоманды, либо путем создания файла конфигурации с помощью текстового редактора. Создайте новый файл с именем wg0.confи добавьте следующее содержимое:
Копировать Интерфейс можно назвать как угодно, однако рекомендуется использовать что-то вроде include wg0или wgvpn0. Настройки в разделе интерфейса имеют следующее значение:
Адрес - разделенный запятыми список IP-адресов v4 или v6 для wg0интерфейса. Используйте IP-адреса из диапазона, зарезервированного для частных сетей (10.0.0.0/8, 172.16.0.0/12 или 192.168.0.0/16).
ListenPort - порт прослушивания.
PrivateKey - закрытый ключ, сгенерированный wg genkeyкомандой. (Чтобы увидеть содержимое типа файла sudo cat /etc/wireguard/privatekey)
SaveConfig - при значении true текущее состояние интерфейса сохраняется в файл конфигурации при завершении работы.
PostUp - Команда или сценарий, который выполняется перед запуском интерфейса. В этом примере мы используем iptables для включения маскарадинга. Это позволяет трафику покидать сервер, предоставляя VPN-клиентам доступ в Интернет. Обязательно замените ens3после, -A POSTROUTINGчтобы соответствовать имени вашего публичного сетевого интерфейса. Вы можете легко найти интерфейс с помощью:
ip -o -4 route show to default | awk '{print $5}'
PostDown - команда или скрипт, который выполняется перед выключением интерфейса. Правила iptables будут удалены после отключения интерфейса.
Эти wg0.confи privatekeyфайлы не должны быть доступны для чтения для обычных пользователей. Используйте, chmodчтобы установить разрешения 600:
После этого запустите wg0интерфейс, используя атрибуты, указанные в файле конфигурации:
sudo wg-quick up wg0
Команда выдаст следующий результат:
[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.0.0.1/24 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
Чтобы проверить состояние и конфигурацию интерфейса, введите:
Вы также можете запустить, ip a show wg0 чтобы проверить состояние интерфейса:
ip a show wg0
4: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000
link/none
inet 10.0.0.1/24 scope global wg0
valid_lft forever preferred_lft forever
WireGuard также можно управлять с помощью Systemd.
Чтобы запустить интерфейс WireGuard во время загрузки, выполните следующую команду:
sudo systemctl enable wg-quick@wg0
Сеть сервера и настройка брандмауэра
Для работы NAT необходимо включить переадресацию IP. Откройте /etc/sysctl.confфайл и добавьте или раскомментируйте следующую строку:
sudo nano /etc/sysctl.conf
/etc/sysctl.conf
net.ipv4.ip_forward=1
Копировать Сохраните файл и примените изменения:
sudo sysctl -p
net.ipv4.ip_forward = 1
Если вы используете UFW для управления своим брандмауэром, вам необходимо открыть UDP-трафик на порту 51820
sudo ufw allow 51820/udp
Вот и все. Одноранговый узел Ubuntu, который будет действовать как сервер, настроен.
Настройка клиентов Windows
Загрузите и установите пакет Windows msi с веб-сайта WireGuard . После установки откройте приложение WireGuard и нажмите «Добавить туннель» -> «Добавить пустой туннель…», как показано на изображении ниже: Пара публичных ключей создается автоматически и отображается на экране. Введите имя туннеля и отредактируйте конфигурацию следующим образом:
Копировать В разделе интерфейса добавьте новую строку для определения адреса туннеля клиента. В одноранговом разделе добавьте следующие поля:
PublicKey - открытый ключ сервера Ubuntu ( /etc/wireguard/publickeyфайл).
Конечная точка - IP-адрес сервера Ubuntu с двоеточием и порт WireGuard (51820).
Разрешенные IP-адреса - 0.0.0.0/0
После этого нажмите кнопку «Сохранить».
Добавить однорангового клиента к серверу
Последний шаг - добавить на сервер открытый ключ и IP-адрес клиента. Для этого запустите на сервере Ubuntu следующую команду:
sudo wg set wg0 peer CLIENT_PUBLIC_KEY allowed-ips 10.0.0.2
Обязательно измените CLIENT_PUBLIC_KEYоткрытый ключ, сгенерированный на клиентском компьютере ( sudo cat /etc/wireguard/publickey), и настройте IP-адрес клиента, если он отличается. Пользователи Windows могут скопировать открытый ключ из приложения WireGuard. После этого вернитесь на клиентский компьютер и откройте интерфейс туннелирования.
Настройка VPN клиентов IOS и Android
настройка клиентов на мобильных устройствах ничем не отличается, от настроек на windows. Скачать официальный клиент вы можете из App Store / Paly Market
Комментариев 0