Настройте индивидуальный сервер WireGuard VPN на CentOS 8, RHEL 8 или Rocky Linux 8

Данный учебник поможет вам установить и настроить собственный сервер WireGuard VPN на системах CentOS/RHEL. WireGuard создан исключительно для ядра Linux, функционируя непосредственно в нем и обеспечивая создание современных, быстрых и безопасных VPN-туннелей.

Характеристики WireGuard VPN

  • Быстрый и легкий, превосходит OpenVPN по скорости работы.
  • Кроссплатформенный. WireGuard поддерживает работу на таких системах, как Linux, BSD, macOS, Windows, Android, iOS и OpenWRT.
  • Аутентификация пользователей выполняется через обмен открытыми ключами, подобно тому, как это делается с SSH-ключами.
  • Он устанавливает статические IP-адреса для туннеля VPN-клиентов. Это может не всем понравиться, однако в некоторых ситуациях это может оказаться весьма полезным.
  • Мобильные устройства способны плавно переходить от Wi-Fi к мобильной сети, не прерывая соединение.
  • Он предназначен для замены OpenVPN и IPSec в большинстве сценариев применения.

Требования

Для работы с этим руководством вам понадобится VPS (виртуальный частный сервер), обеспечивающий свободный доступ к заблокированным сайтам (вне вашей страны или под системой интернет-фильтрации). Рекомендую обратить внимание на Kamatera VPS, который предлагает:

  • Бесплатный доступ на протяжении 30 дней.
  • Стоимость начинается от 4 долларов в месяц за 1 ГБ оперативной памяти.
  • VPS с высокой производительностью, основанный на технологии KVM.
  • Девять дата-центров расположены по всему миру, среди которых США, Канада, Великобритания, Германия, Нидерланды, Гонконг и Израиль.

Используйте руководство по ссылке ниже, чтобы настроить свой сервер Linux VPS на платформе Kamatera.

  • Как настроить VPS-сервер на базе Linux на платформе Kamatera.

Как только вы получите VPS на основе CentOS, Alma Linux или Rocky Linux, следуйте приведенным ниже указаниям.

Данный учебник основан на предположении, что и сервер, и клиент VPN функционируют в среде операционной системы CentOS/RHEL.

Установите WireGuard на сервер и на настольный компьютер с операционной системой CentOS/RHEL.

Зайдите на свой сервер CentOS/RHEL и выполните указанные ниже команды для установки WireGuard.

Рокки Линукс 9/Алма Линукс 9

sudo dnf install - y epel-release sudo dnf install - y wireguard-tools

CentOS 8, Rocky Linux 8 и Alma Linux 8.

sudo dnf install elrepo-release epel-release - y sudo dnf install kmod-wireguard wireguard-tools - y

RHEL 8

sudo dnf install https://www. elrepo. org/elrepo-release-8.el8.elrepo. noarch. rpm sudo dnf install https://dl. fedoraproject. org/pub/epel/epel-release-latest-8.noarch. rpm sudo dnf install kmod-wireguard wireguard-tools - y

CentOS/RHEL версии 7

sudo yum install epel-release https://www. elrepo. org/elrepo-release-7.el7.elrepo. noarch. rpm sudo yum install yum-plugin-elrepo sudo yum install kmod-wireguard wireguard-tools - y

После этого примените аналогичные команды для установки WireGuard на локальном компьютере с CentOS/RHEL (в роли VPN-клиента).

Создайте пару ключей — открытый и закрытый.

Сервер

Сформируйте каталог для WireGuard.

sudo mkdir - p /etc/wireguard/

Выполните следующую команду на сервере CentOS/RHEL для генерации пары открытого и закрытого ключей, которые будут размещены в директории /etc/wireguard/.

wg genkey | sudo tee /etc/wireguard/server_private. key | wg pubkey | sudo tee /etc/wireguard/server_public. key

Клиент

Сформируйте каталог для WireGuard.

sudo mkdir - p /etc/wireguard/

Выполните следующую команду для генерации пары открытого и закрытого ключей на локальном компьютере с CentOS/RHEL (VPN-клиенте).

wg genkey | sudo tee /etc/wireguard/client_private. key | wg pubkey | sudo tee /etc/wireguard/client_public. key

Подготовьте файл конфигурации для WireGuard.

Сервер

Для создания файла конфигурации WireGuard на сервере CentOS/RHEL воспользуйтесь текстовым редактором командной строки, например, Nano. Название сетевого интерфейса будет wg0.

sudo dnf install nano sudo nano /etc/wireguard/wg0.conf

Сохраните следующий текст в файл конфигурации. Не забудьте заменить его на свой собственный закрытый ключ сервера и открытый ключ клиента.

[Interface] Address = 10.10.10.1/24 ListenPort = 51820 PrivateKey = cD+ZjXiVIX+0iSX1PNijl4a+88lCbDgw7kO78oXXLEc=[Партнёр] ОткрытыйКлюч =AYQJf6HbkQ0X0Xyt+cTMTuJe3RFwbuCMF46LKgTwzz4= AllowedIPs = 10.10.10.2/32

centos-wireguard-VPN-server-configuration-file-wg0

  • Адрес: Укажите частный IP-адрес сервера VPN. В данном случае я использую диапазон сети 10.10.10.0/24, чтобы избежать конфликтов с вашим домашним сетевым диапазоном. (Обычно домашние маршрутизаторы используют диапазоны 192.168.0.0/24 или 192.168.1.0/24). Частный IP-адрес для VPN-сервера — 10.10.10.1.
  • Приватный ключ: Это ключ VPN-сервера, который располагается в файле /etc/wireguard/server_private. key на сервере.
  • Сервер WireGuard VPN будет принимать подключения на UDP-порту 51820, который установлен как значение по умолчанию.
  • Публичный ключ: Это публичный ключ VPN-клиента, который можно обнаружить в файле /etc/wireguard/client_public. key на клиентском компьютере.
  • Разрешенные IP: IP-адреса, которые клиенту VPN доступны для использования. В данном случае клиент имеет право применять лишь IP-адрес 10.10.10.2 в рамках VPN-туннеля.
Читайте также:  Подавить весь вывод программы в Linux

Сохраните изменения и закройте документ. (Чтобы сохранить файл в редакторе Nano, нажмите Ctrl+O, а затем Enter для подтверждения. Для выхода используйте Ctrl+X.)

Измените настройки доступа к файлу таким образом, чтобы лишь пользователь root имел возможность их просматривать.

sudo chmod 600 /etc/wireguard/ - R

Клиент

Примените текстовый редактор командной строки, например, Nano, для создания конфигурационного файла WireGuard на вашем локальном компьютере с CentOS или RHEL. Назовите сетевой интерфейс wg-client0.

sudo nano /etc/wireguard/wg-client0.conf

Перенесите указанный текст в файл настроек. Не забудьте использовать свой личный приватный ключ клиента и публичный ключ сервера.

[Interface] Address = 10.10.10.2/24 DNS = 10.10.10.1 PrivateKey = cOFA+x5UvHF+a3xJ6enLatG+DoE3I5PhMgKrMKkUyXI=[Партнёр] ОткрытыйКлюч =vxyo4l4I3jWK+KZquNIDJF/hzQq29DOIxSUOrfNZZCs=Разрешенные IP-адреса = 0.0.0.0/0 Конечная точка =12.34.56.78:51820 PersistentKeepalive = 25

  • Укажите индивидуальный IP-адрес клиента VPN.
  • DNS: установите 10.10.10.1 (VPN-сервер) в качестве DNS-сервера. Конфигурация будет выполнена с помощью команды resolvconf.Вы также можете добавить дополнительные DNS-серверы для создания резервной копии, например: DNS = 10.10.10.1 8.8.8.8.
  • Приватный ключ клиента можно обнаружить в файле /etc/wireguard/client_private. key на устройстве клиента.
  • Публичный ключ сервера можно найти в файле /etc/wireguard/server_public. key на сервере.
  • Разрешённый IP-адрес 0.0.0.0/0 охватывает весь Интернет, что подразумевает, что весь входящий и исходящий трафик должен проходить через VPN.
  • Конечная точка: публичный IP-адрес и порт VPN-сервера. Подмените 12.34.56.78 на фактический публичный IP-адрес вашего сервера.
  • Поддержание соединения: Каждые 25 секунд отправляйте пустой аутентифицированный пакет на пир, чтобы сохранить активность соединения. Если функция поддержания соединения отключена, VPN-сервер может не смочь выполнить пинг VPN-клиента.

Сохраните изменения и закройте документ.

Настройте права доступа к файлу так, чтобы только пользователь root имел возможность его просматривать.

sudo chmod 600 /etc/wireguard/ - R

Активируйте IP-проброс на сервере.

Для того чтобы VPN-сервер мог направлять пакеты между клиентами и Интернетом, необходимо активировать IP-проброс. Для этого нужно внести изменения в файл sysctl.conf.

sudo nano /etc/sysctl.conf

Вставьте следующую строку в финал данного файла.

net. ipv4.ip_forward = 1

Сохраните файл и закройте его. После этого выполните следующую команду для применения изменений. Параметр — p загрузит конфигурацию sysctl из файла /etc/sysctl.conf.Это обеспечит сохранение внесенных изменений после перезагрузки системы.

sudo sysctl - p

Конфигурация IP-маскарада на сервере.

Введите следующую команду, чтобы активировать маскарадирование IP для подсети 10.10.10.0/24 в брандмауэре вашего сервера.

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.10.10.0/24" masquerade' sudo systemctl reload firewalld

Это обеспечит защиту вашей VPN-сети от внешних наблюдателей. В результате интернет будет видеть только IP-адрес вашего VPN-сервера, в то время как IP-адрес вашего клиента останется скрытым, подобно тому, как ваш домашний маршрутизатор маскирует вашу личную сеть.

Если на вашем CentOS/RHEL не удается обнаружить команду firewall-cmd, необходимо установить firewalld и активировать соответствующую службу.

sudo dnf install firewalld sudo firewall-cmd --permanent --add-port=22/tcp sudo systemctl start firewalld

Настройка DNS-резолвера на сервере

Так как мы назначаем VPN-сервер в роли DNS-сервера для клиента, необходимо запустить DNS-резолвер на этом сервере. В качестве решения можно установить DNS-сервер bind9.

sudo dnf install bind

Запустите BIND 9 командой:

sudo systemctl start named

Активируйте автозапуск при старте системы.

sudo systemctl enable named

Вы можете узнать его текущее состояние с помощью:

systemctl status named

named.service - Berkeley Internet Name Domain (DNS) Загружен: активен (/usr/lib/systemd/system/named.service; включен; настройка поставщика: отключено) Статус: активен:работоспособен с Вс 2020-05-17 11:07:34 EDT; 9 секунд назад Процесс: 7203 ExecStop=/bin/sh - c /usr/sbin/rndc stop > /dev/null 2>&1 || /bin/kill - TE> Процесс: 7218 ExecStart=/usr/sbin/named - u named - c $ $OPTIONS (код=выход) Процесс: 7215 ExecStartPre=/bin/bash - c if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; главный PID: 7220 (named) Задачи: 4 (лимит: 5045) Память: 55.5M CGroup: /system. slice/named.service └─7220 /usr/sbin/named - u named - c /etc/named.conf -4

Совет: Если команда не завершила свою работу сразу, нажмите клавишу Q.

Измените основной файл конфигурации BIND, расположенный по адресу /etc/named.conf.

sudo nano /etc/named.conf

В разделе options представлены следующие две строки.

listen-on port 53 < 127.0.0.1; >слушать на-v6 порт 53< ::1; >;

Это ограничивает named на прослушивание только локального хоста. Чтобы разрешить клиентам в одной сети запрашивать доменные имена, необходимо закомментировать эти две строки, добавив двойные слэши в начале каждой из них.

// listen-on port 53 < 127.0.0.1; >// прослушивание на IPv6 порт 53< ::1; >;

Определите следующую последовательность.

allow-query < localhost; >;

Включите сетевой диапазон 10.10.10.0/24, чтобы пользователи VPN имели возможность отправлять запросы DNS. Имейте в виду, что каждый сетевой диапазон следует завершать точкой с запятой.

allow-query < localhost; 10.10.10.0/24; >;

Сохраните файл и закройте его. Затем перезапустите BIND9, чтобы изменения были применены.

sudo systemctl restart named

Далее необходимо ввести команду, которая позволит клиентам VPN осуществлять подключение к порту 53.

sudo firewall-cmd --zone=public --permanent --add-rich-rule='rule family="ipv4" source address="10.10.10.0/24" accept'

Разрешение доступа к порту WireGuard в брандмауэре.

Используйте следующие команды для открытия UDP-порта 51820 на сервере.

Читайте также:  Почему Ред ОС не сканирует в Директум - решение проблемы

sudo firewall-cmd --permanent --add-port=51820/udp sudo systemctl reload firewalld

Активирование WireGuard

сервер

Введите следующую команду на сервере для запуска WireGuard.

Если запуск не прошел успешно, необходимо просмотреть журнал, чтобы определить, в чем заключается проблема.

Для активации автозапуска при старте системы используйте следующую команду.

Проверьте статус с помощью следующей команды. Он должен быть в активном (выключенном) состоянии.

Теперь сервер WireGuard настроен для приема клиентских подключений.

Клиент

Если запуск не прошел успешно, необходимо просмотреть журнал, чтобы определить, в чем заключается проблема.

Если в журнале появляется указанная ошибка, попробуйте перезагрузить операционную систему.

RTNETLINK answers: Operation not supported

Активируйте автоматический запуск при старте системы.

Проверьте его статус.

Теперь посетите этот сайт: http://icanhazip.com/, чтобы узнать свой публичный IP-адрес. Если все сделано правильно, вы увидите публичный IP-адрес вашего VPN-сервера, а не адрес вашего клиентского устройства.

Вы можете использовать следующую команду, чтобы узнать свой текущий публичный IP-адрес.

curl https://icanhazip.com

Рекомендации по диагностике и решению проблем

Вы можете запустить команду ping с VPN-сервера на клиент (ping 10.10.10.2), чтобы убедиться в функционировании туннеля. Если появляется следующее сообщение об ошибке при выполнении ping,

ping: sendmsg: Required key not available

Вероятно, параметр AllowedIPs введен с ошибкой, например, может быть допущена опечатка.

Если VPN-туннель настроен правильно, но публичный IP-адрес клиента остается прежним, это может указывать на неисправность маскировки в брандмауэре. В одном случае у меня возникла ошибка в правилах брандмауэра, из-за чего мой компьютер потерял доступ к интернету.

Учтите, что я не советую устанавливать SaveConfig=true в разделе [Interface] конфигурационного файла WireGuard. Эта опция заставляет WireGuard сохранять конфигурацию при завершении работы. Если вы добавите новый [Peer] в конфигурацию и затем перезапустите WireGuard, ваши новые настройки будут потеряны.

Если ваш VPN продолжает не функционировать, попробуйте перезагрузить сервер VPN.

После этого завершите работу VPN-клиента.

Обновите программные пакеты на VPN-клиенте.

sudo dnf update

Затем перезапустите VPN-клиент.

Установка новых VPN-клиентов.

WireGuard разработан для связывания одного IP-адреса с конкретным VPN-клиентом. Для подключения дополнительных VPN-клиентов необходимо сгенерировать уникальную пару приватного и публичного ключей для каждого из них, а затем включить публичный ключ каждого клиента в конфигурационный файл сервера (/etc/wireguard/wg0.conf) следующим образом:

[Interface] Address = 10.10.10.1/24 PrivateKey = UIFH+XXjJ0g0uAZJ6vPqsbb/o68SYVQdmYJpy/FlGFA= ListenPort = 51820 [Peer] PublicKey = 75VNV7HqFh+3QIT5OHZkcjWfbjx8tc6Ck62gZJT/KRA= AllowedIPs = 10.10.10.2/32 [Peer] PublicKey = YYh4/1Z/3rtl0i7cJorcinB7T4UOIzScifPNEIESFD8= AllowedIPs = 10.10.10.3/32 [Peer] PublicKey = EVstHZc6QamzPgefDGPLFEjGyedJk6SZbCJttpzcvC8= AllowedIPs = 10.10.10.4/32

Каждый клиент VPN получит фиксированный приватный IP-адрес (например, 10.10.10.2, 10.10.10.3, 10.10.10.4 и так далее). Для применения изменений необходимо перезапустить сервер WireGuard.

После этого настройте конфигурацию WireGuard на каждом из VPN-клиентов, как принято.

Конфигурация VPN-клиента на устройствах iOS и Android.

Поскольку у меня есть iPhone, я расскажу, как настроить клиент WireGuard на iOS. Сначала скачайте приложение WireGuard из App Store. После этого запустите его и нажмите на кнопку «Добавить туннель».

Существует три способа для настройки нового туннеля WireGuard.

  • создать из документа или архива
  • сформировать на основе QR-кода
  • Собрать всё с базовых основ.

Выберите способ с использованием QR-кода, так как это более удобно. Выполните следующую команду на сервере для создания публичного и приватного ключей WireGuard для клиента iOS.

wg genkey | sudo tee /etc/wireguard/ios_private. key | wg pubkey | sudo tee /etc/wireguard/ios_public. key

Затем необходимо подготовить файл конфигурации WireGuard для клиента на iOS.

sudo nano /etc/wireguard/ios.conf

Включите указанные строки.

[Interface] Address = 10.10.10.3/24 DNS = 10.10.10.1 Приватный ключ =mNiZvB+sASN/+ZiJkMyan1ZZOzCXkrjYPlbg7rZJ7Fc=[Партнёр] ОткрытыйКлюч =OMaXX7XD+wEYWfYyFcZZBN4vFSC16A1e8t80ONiJKWY=Разрешенные IP-адреса = 0.0.0.0/0 Конечная точка =12.34.56.78:51820 PersistentKeepalive = 25

  • Адрес: Укажите частный IP-адрес для устройства iOS.
  • DNS: установите 10.10.10.1 (VPN-сервер) в качестве DNS-сервера. Также возможно указать дополнительные DNS-серверы для резервирования, например: DNS = 10.10.10.1, 8.8.8.8. Учтите, что приложение iOS не поддерживает формат DNS = 10.10.10.1 8.8.8.8.
  • Приватный ключ пользователя iOS можно обнаружить в файле /etc/wireguard/ios_private. key.
  • Публичный ключ сервера можно найти в файле /etc/wireguard/server_public. key на сервере.
  • AllowedIPs: 0.0.0.0/0 охватывает весь интернет, что подразумевает, что весь трафик в сети должен маршрутизироваться через VPN.
  • Конечная точка: Публичный IP-адрес и порт VPN-сервера. Убедитесь, что вы заменили 12.34.56.78 на действующий публичный IP-адрес вашего сервера.
  • PersistentKeepalive: отправляйте пустой аутентифицированный пакет на пир каждые 25 секунд для поддержания соединения. В случае отключения PersistentKeepalive VPN-сервер может не иметь возможности отправлять пинг VPN-клиенту.

Сохраните изменения и закройте файл. После этого выполните следующую команду на сервере WireGuard VPN, чтобы создать QR-код на основе конфигурационного файла для iOS.

sudo cat /etc/wireguard/ios.conf | qrencode - t ansiutf8

После этого отсканируйте QR-код в приложении WireGuard для iOS, чтобы загрузить настройки из файла /etc/wireguard/ios.conf в клиент WireGuard на iOS.

Читайте также:  Установить пользоватею и группе права на чтение и исполнение в Linux

После того как мы добавим туннель на iOS-устройстве, необходимо будет внести [peer] в конфигурационный файл сервера WireGuard.

sudo nano /etc/wireguard/wg0.conf

[Interface] Address = 10.10.10.1/24 PrivateKey = UIFH+XXjJ0g0uAZJ6vPqsbb/o68SYVQdmYJpy/FlGFA= ListenPort = 51820 [Peer] PublicKey = 75VNV7HqFh+3QIT5OHZkcjWfbjx8tc6Ck62gZJT/KRA= AllowedIPs = 10.10.10.2/32 [Peer] # клиент iOS PublicKey = YYh4/1Z/3rtl0i7cJorcinB7T4UOIzScifPNEIESFD8= AllowedIPs = 10.10.10.3/32

Сохраните изменения и закройте файл. После этого перезапустите сервер WireGuard VPN.

Теперь вы можете подключаться к WireGuard VPN через приложение для iOS.

Конфигурация клиента Windows

После завершения установки откройте приложение WireGuard. Щелкните правой кнопкой мыши на левой боковой панели, чтобы добавить новый пустой туннель. Программа автоматически сгенерирует публичный и приватный ключ для клиента Windows.

Добавить новый туннель WireGuard в Windows.

Теперь необходимо включить дополнительную информацию.

[Interface] PrivateKey = mNiZvB+sASN/+ZiJkMyan1ZZOzCXkrjYPlbg7rZJ7Fc=Адрес =10.10.10.4/24 DNS = 10.10.10.1 [Партнёр] # VPN-сервер PublicKey =OMaXX7XD+wEYWfYyFcZZBN4vFSC16A1e8t80ONiJKWY=Разрешенные IP-адреса = 0.0.0.0/0 Конечная точка =12.34.56.78:51820 PersistentKeepalive = 25

  • Укажите индивидуальный IP-адрес для системы Windows клиента.
  • DNS: установите 10.10.10.1 (VPN-сервер) в качестве DNS-сервера. Вы можете добавить несколько DNS-серверов для создания резерва, например: DNS = 10.10.10.1, 8.8.8.8. Имейте в виду, что приложение для Windows не поддерживает формат DNS = 10.10.10.1 8.8.8.8.
  • Приватный ключ клиента Windows создаётся автоматически.
  • Публичный ключ сервера можно найти в файле /etc/wireguard/server_public. key на сервере.
  • AllowedIPs: 0.0.0.0/0 охватывает весь интернет, что указывает на то, что весь трафик должен проходить через VPN.
  • Конечная точка: публичный IP-адрес и порт VPN-сервера. Подставьте 12.34.56.78 своим реальным публичным IP-адресом сервера.
  • PersistentKeepalive: Отправляйте пустой аутентифицированный пакет на узел каждые 25 секунд для поддержания соединения. В случае, если PersistentKeepalive отключен, VPN-сервер может не суметь отправить пинг VPN-клиенту.

Конфигурация WireGuard для Windows.

Сохраните настройки.

После установки туннеля на клиенте Windows необходимо также внести изменения в файл конфигурации сервера WireGuard, добавив секцию [peer].

sudo nano /etc/wireguard/wg0.conf

[Interface] Address = 10.10.10.1/24 PrivateKey = UIFH+XXjJ0g0uAZJ6vPqsbb/o68SYVQdmYJpy/FlGFA= ListenPort = 51820 [Peer] PublicKey = 75VNV7HqFh+3QIT5OHZkcjWfbjx8tc6Ck62gZJT/KRA= AllowedIPs = 10.10.10.2/32 [Peer] # iOS клиент PublicKey = YYh4/1Z/3rtl0i7cJorcinB7T4UOIzScifPNEIESFD8= AllowedIPs = 10.10.10.3/32 [Peer] # Клиент Windows PublicKey = wJpwC/gCWXZTGa5lQReKowRvymaaEUav0N1qeK74HlQ= AllowedIPs = 10.10.10.4/32

Сохраните изменения и закройте файл. После этого перезапустите сервер WireGuard VPN.

Теперь вы можете настроить WireGuard VPN на операционной системе Windows.

Политическая маршрутизация, изолированное туннелирование и функция отключения VPN.

Теперь я расскажу, как применять политическую маршрутизацию, раздельный туннелинг и функцию отключения VPN с WireGuard VPN. Имейте в виду, что их совместное использование не рекомендуется. Если вы решили воспользоваться политической маршрутизацией, отключите раздельный туннелинг и функцию отключения VPN, и наоборот.

Политическая навигация

По умолчанию весь трафик с клиента VPN проходит через сервер. Однако иногда может возникнуть необходимость направлять только определенные виды трафика, исходя из транспортного протокола и целевого порта. Этот процесс называется политической маршрутизацией.

Настройка политической маршрутизации осуществляется на клиентском устройстве, и в первую очередь необходимо отключить VPN-соединение.

После этого внесите изменения в файл конфигурации клиента.

sudo nano /etc/wireguard/wg-client0.conf

Если вы вставите следующие три строки в раздел [interface], WireGuard сформирует таблицу маршрутизации под названием «1234» и добавит правило IP в эту таблицу. В данном случае трафик будет проходить через VPN-сервер только в тех случаях, когда используется TCP в качестве транспортного протокола и назначенный порт 25, что соответствует отправке электронных писем с клиентского компьютера.

Table = 1234 PostUp = ip rule add ipproto tcp dport 25 table 1234 PreDown = ip rule delete ipproto tcp dport 25 table 1234

wireguard-policy-routing-centos

Сохраните изменения в файле и закройте его. После этого перезапустите клиент WireGuard.

Сегментация туннелирования

По умолчанию весь интернет-трафик на VPN-клиенте проходит через VPN-сервер. Чтобы настроить разделение туннелирования и сделать так, чтобы лишь трафик к диапазону IP 10.10.10.0/24 использовал VPN WireGuard, выполните следующие шаги. Это особенно актуально, если вы хотите создать частную сеть для нескольких облачных серверов, так как VPN-клиенты будут находиться на облачных серверах. При использовании полного VPN-туннеля можно потерять связь с облачными серверами.

Измените настройки в файле конфигурации клиента.

sudo nano /etc/wireguard/wg-client0.conf

AllowedIPs = 0.0.0.0/0

AllowedIPs = 10.10.10.0/24

Таким образом, соединение будет проходить через VPN исключительно в том случае, если целевой адрес принадлежит диапазону IP 10.10.10.0/24. После этого сохраните изменения и закройте файл, затем перезапустите клиент WireGuard.

Виртуальная частная сеть для убийства.

Ваш компьютер по умолчанию может подключаться к Интернету через стандартный шлюз в случае разрыва VPN-соединения. Рекомендуется активировать функцию «убийца», чтобы заблокировать передачу незашифрованных пакетов через интерфейсы, не использующие WireGuard.

Прекратите работу клиента WireGuard.

Измените настройки в файле конфигурации клиента.

sudo nano /etc/wireguard/wg-client0.conf

Включите следующие две строки в раздел [interface].

PostUp = iptables - I OUTPUT ! - o %i - m mark ! --mark $(wg show %i fwmark) - m addrtype ! --dst-type LOCAL - j REJECT PreDown = iptables - D OUTPUT ! - o %i - m mark ! --mark $(wg show %i fwmark) - m addrtype ! --dst-type LOCAL - j REJECT

[Interface] Address = 10.10.10.2/24 DNS = 10.10.10.1 PrivateKey = cOFA+x5UvHF+a3xJ6enLatG+DoE3I5PhMgKrMKkUyXI=PostUp = iptables - I OUTPUT ! - o %i - m mark ! --mark $(wg show %i fwmark) - m addrtype ! --dst-type LOCAL - j REJECT
PreDown = iptables - D OUTPUT ! - o %i - m mark ! --mark $(wg show %i fwmark) - m addrtype ! --dst-type LOCAL - j REJECT
[Peer]
PublicKey =RaoAdsIEIwgV9DHNSubxWVG+nZ1GP/c3OU6A/efBJ0I=Разрешенные IP-адреса = 0.0.0.0/0 Конечная точка =12.34.56.78:51820 PersistentKeepalive = 25

Сохраните файл и закройте его. После этого откройте клиент WireGuard.

Итоги

Итак, на этом всё! Надеюсь, данный учебник оказался полезным для вас при установке и настройке WireGuard на CentOS/RHEL. Если вы нашли эту статью информативной, не забудьте подписаться на нашу бесплатную рассылку, чтобы получать ещё больше советов и рекомендаций.