WireGuard - это приложение, которое может обеспечить безопасную виртуальную частную сеть (VPN), оно достаточно простое в использовании и настройке. Оно использует надежные криптографические протоколы и алгоритмы для шифрования данных. Разработанное исключительно для ядра Linux, оно может быть развернуто и на Windows, macOS, FreeBSD, iOS, а так же Android.
Как установить WireGuard на CentOS 8.3:
- Как установить сервер WireGuard на CentOS
- Как сгенерировать открытый и закрытый ключ
- Как настроить FireWall
- Как настроить серверную конфигурацию
- Как запустить WireGuard и включить его при загрузке
В нашем случае мы будем использовать CentOS 8.3 для установки WireGuard.
Установка сервера WireGuard на CentOS
Скачаем последние обновления с помощью данных команд:
Для того, чтобы установить WireGuard сервер войдите на ваш Linux-сервер, после входа добавьте репозитории EPEL и Elrepo для установки модулей ядра и инструментов WireGuard.
Убедимся, что у нас включены репозиторий PowerTools, так как пакеты EPEL могут зависеть от пакетов из него:
Прежде чем мы сможем установить модуль ядра WireGuard, включим его официальный репозиторий:
Теперь установим WireGuard:
Генерация закрытого и открытого ключей
WireGuard работает путем шифрования соединения с помощью пары криптографических ключей. Пара ключей используется путем передачи открытого ключа другой стороне, которая затем может зашифровать свое сообщение таким образом, что оно может быть расшифровано только с помощью соответствующего закрытого ключа. Для обеспечения безопасности двусторонней связи каждая сторона должна иметь собственные закрытый и открытый ключи, так как каждая пара обеспечивает только односторонний обмен сообщениями.
Перед генерацией пары ключей перейдите в каталог
Установите разрешение на эту директорию:
Чтобы сгенерировать пару ключей, введите следующую команду:
Чтобы просмотреть сгенерированные ключи, воспользуйтесь командами:
Обязательно запишите этот ключ, он понадобиться нам далее.
Также, обязательно запишите этот ключ, он понадобиться нам далее.
Настройка FireWall
По умолчанию firewall прекращает все коммуникации между внутренней (wg0) и общедоступной сетью (eth0).
Изменим это с помощью данных команд:
Настройка серверной конфигурации
Чтобы начать настройку сервера WireGuard, перейдите в папку /etc/wireguard и создайте файл wg0.conf
Добавьте в файл конфигурации следующие директивы и заполните данные созданными до этого ключами:
PrivateKey = <contents-of-server-privatekey>
Address = 10.0.0.1/24
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
ListenPort = 51820
[Peer]
PublicKey = <contents-of-client-publickey>
AllowedIPs = 10.0.0.2/32
Скопируйте закрытый ключ, который мы сгенерировали ранее, и вставьте его в PrivateKey.
Аналогично нужно сгенерировать пару ключей для клиента, скопируйте открытый ключ клиента и вставьте его в PublicKey.
Чтобы скопировать значение ключа, выполните следующую команду:
Запуск WireGuard и включение его при загрузке
Теперь мы готовы к запуску сервера, для запуска WireGuard мы используем wg-quick и указываем имя нового интерфейса:
Если конфигурация выполнена идеально, вы увидите следующий экран
чтобы проверить статус работы сервера WireGuard введите:
Поздравляю, мы успешно подняли сервер WireGuard!