Как настроить VPN-сервер WireGuard на CentOS
WireGuard — это приложение, предназначенное для создания защищенной виртуальной частной сети (VPN) с удобным интерфейсом и простой настройкой. Используя надежные криптографические протоколы и алгоритмы, программа обеспечивает шифрование данных. Изначально разработанная для ядра Linux, программа WireGuard была расширена до совместимости с Windows, macOS, FreeBSD, iOS и Android.
Шаг 1. Установка сервера WireGuard на CentOS
Для начала получите последние обновления, выполнив следующие команды:
sudo yum update
sudo dnf update
Для установки необходимых модулей ядра и инструментов WireGuard включите репозитории EPEL и Elrepo:
sudo dnf install epel-release elrepo-release -y
Убедитесь, что репозиторий PowerTools активен, поскольку пакеты EPEL могут полагаться на его компоненты:
sudo yum install ‘dnf-command(config-manager)’
sudo yum config-manager —set-enabled PowerTools
Перед установкой модуля ядра WireGuard активируйте его официальный репозиторий:
sudo yum copr enable jdoss/wireguard
Наконец, перейдите к установке WireGuard:
sudo yum install wireguard-dkms wireguard-tools
Шаг 2. Генерация закрытого и открытого ключей
WireGuard работает по принципу шифрования соединений с помощью пары криптографических ключей. При этом открытый ключ передается другой стороне, что позволяет ей шифровать сообщения таким образом, что расшифровать их может только соответствующий закрытый ключ. Для обеспечения безопасности двусторонней связи каждой стороне необходим свой набор закрытых и открытых ключей. Каждая пара ключей обеспечивает только односторонний обмен сообщениями.
Перед созданием пары ключей перейдите в каталог.
Перейдите в каталог WireGuard с помощью команды:
cd /etc/wireguard
Настройте разрешения для этого каталога:
umask 077
Для генерации пары ключей выполните следующую команду:
wg genkey | tee private.key | wg pubkey > public.key
Проверьте сгенерированные ключи с помощью команд:
ls -l privatekey publickey
sudo cat privatekey
sudo cat publickey
Запишите оба ключа, так как они потребуются в дальнейшем.
Шаг 3. Настройка серверной конфигурации
Для начала настройки сервера WireGuard перейдите в папку /etc/wireguard и создайте файл wg0.conf с помощью команды:
sudo nano /etc/wireguard/wg0.conf
Добавьте в конфигурационный файл последующие директивы, заполнив данные ключами, сгенерированными ранее:
[Interface]
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.0.2/32
Извлеките сгенерированный ранее закрытый ключ и вставьте его в поле PrivateKey.
Затем сгенерируйте пару ключей для клиента, скопируйте открытый ключ клиента и вставьте его в поле PublicKey. Для копирования значения ключа воспользуйтесь следующими командами:
sudo cat /etc/wireguard/public.key
sudo cat /etc/wireguard/private.key
Шаг 4. Настройка FireWall
По умолчанию брандмауэр ограничивает все соединения между внутренней сетью (wg0) и публичной сетью (eth0). Давайте изменим эту конфигурацию с помощью следующих команд:
sudo firewall-cmd —add-interface=wg0 —zone=internal
sudo firewall-cmd —permanent —zone=internal
Шаг 5. Запуск WireGuard и включение его при загрузке
Теперь сервер готов к запуску. Для запуска WireGuard воспользуйтесь командой wg-quick и укажите имя нового интерфейса:
wg-quick up wg0
Если конфигурация верна, то на экране появится следующее окно:
[WireGuard for CentOS — Screenshot].
Чтобы проверить состояние сервера WireGuard, введите:
wg show