Как настроить сервер WireGuard VPN в pfSense

WireGuard VPN-сервер в pfSense

WireGuard VPN это новый надежный и очень быстрый протокол для создания виртуальных частных сетей, в этой статье мы увидели, как он способен удвоить и даже утроить скорость OpenVPN или IPsec. Этот новый протокол VPN идеально подходит для конфигураций удаленного доступа с мобильными клиентами, будь то смартфоны, планшеты или ноутбуки, поскольку он потребляет очень мало ресурсов и соединение очень быстрое. Операционная система pfSense версии 2.5.0 официально включила этот новый VPN вместе с IPsec, L2TP, а также OpenVPN. Сегодня мы собираемся показать вам, как настроить WireGuard VPN с нуля в pfSense 2.5.0 для удаленного подключения.

Возможности WireGuard VPN

WireGuardVPN это очень легкое программное обеспечение, которое позволит нам быстро и легко настроить VPN-туннель, по умолчанию оно использует самую современную криптографию, без необходимости выбирать различные алгоритмы асимметричного, асимметричного или хэш-шифрования, по умолчанию у нас есть безопасный Suite по умолчанию, в отличие от других протоколов VPN. Цель WireGuard — стать лучший VPN как для домашних, так и для бизнес-пользователей, и он успешен, потому что он уже интегрирован в Linux Ядро, чтобы обеспечить нам максимальную производительность.

Что касается используемой криптографии, у нас есть ChaCha20 для симметричного шифрования, аутентифицируется с Poly1305 , так что у нас есть AEAD. Он также использует Curve25519 для ECDH, БЛЕЙК2 для хеширования, СипХэш24 для ключей хеш-таблицы и HKDF для получения ключа. Как вы уже видели, у нас по умолчанию используются самые современные криптографические алгоритмы, и мы не можем изменить их для других в настоящий момент, они должны быть такими: да или да.

С этой новой VPN нам не нужно будет управлять соединениями или делать сложные конфигурации, он работает только в режиме туннелирования, потому что это L3 VPN, и использует протокол UDP в качестве транспортного уровня и не позволяет выбирать TCP, что мы можем сделать это изменить порт прослушивания для всех, кого мы хотим. Конечно, сервер WireGuard может без проблем находиться за NAT, потребуется только перенаправление портов. Другими интересными особенностями являются то, что он позволяет быстро и легко перемещаться между сетями, всегда быть подключенным из любого Wi-Fi или сети 4G / LTE, не прерывая соединение. Кроме того, мы также можем включить Kill-Switch, чтобы предотвратить утечку данных, если VPN выйдет из строя.

Наконец, этот новый VPN совместим с несколькими операционными системами, такими как Windows, Linux, MacOS, FreeBSD, Android, а также iOS . Теперь команда разработчиков pfSense 2.5.0 по умолчанию включила WireGuard в свою систему, хотя раньше мы также могли установить его, но у нас не было официальной поддержки.

Конфигурация сервера WireGuard VPN

До выпуска pfSense 2.5.0, если бы мы хотели иметь WireGuard на этом комплекте брандмауэр, нам пришлось вручную установить его в системе, загрузив несколько пакетов, совместимых с FreeBSD. Благодаря команде разработчиков pfSense, начиная с версии 2.5.0, он по умолчанию уже интегрирован в графический интерфейс пользователя.

Первое, что мы должны сделать, это перейти к " VPN/WireGuard », Чтобы войти в конфигурацию этого нового протокола VPN. Как только мы входим в меню, нажимаем «Добавить туннель».

В конфигурации туннеля мы должны включить туннель, дать ему описание и поставить следующее:

  • Адрес: IPv4 или IPv6-адрес VPN-сервера для туннельного интерфейса.
  • Порт: по умолчанию это 51820 UDP, но мы можем изменить его на любой порт UDP.

pfSense включает в себя генератор открытых / закрытых ключей для VPN-сервера с WireGuard, мы рекомендуем вам сгенерировать некоторые ключи для VPN-клиента и снова щелкнуть «Создать», чтобы вторые сгенерированные ключи принадлежали VPN. сервер. Например, следующие ключи мы будем использовать позже в клиенте VPN. Вы можете помочь себе с помощью блокнота или Notepad ++ для записи конфигурации.

Чтобы упростить настройку WireGuard с открытыми и закрытыми ключами, вы также можете использовать инструмент wireguardconfig это позволит нам автоматически генерировать и сервер, и клиентов, чтобы позже адаптировать его к pfSense.

И вторые сгенерированные - это серверы самого VPN с WireGuard.

Когда у нас есть ключи, мы должны нажать «Сохранить», и мы создадим VPN-сервер с предыдущей конфигурацией:

Когда он у нас есть, теперь мы должны зарегистрировать «пиров», то есть клиентов VPN. Мы возвращаемся к конфигурации сервера WireGuard и нажимаем «Добавить одноранговый узел», который горит зеленым. Здесь нам нужно будет ввести некоторые настройки, но не обязательно заполнять их все.

Теперь мы собираемся объяснить, для чего предназначен каждый из вариантов:

  • Описание: мы помещаем описание этому клиенту, например, наше имя.
  • Конечная точка: мы помещаем публичный IP-адрес VPN-клиента.
  • Порт конечной точки: ставим порт VPN-клиента.

Если вы собираетесь настроить VPN-клиент, при котором публичный IP-адрес и порт клиента меняются, тогда мы должны оставить параметры «Конечная точка» и «Порт конечной точки» пустыми. . Эти параметры должны быть заполнены, если мы собираемся настроить Site-to-Site VPN, но при удаленном доступе (Roadwarrior) их заполнять не нужно.

  • Keep alive: значение в секундах, время от времени оно проверяет, что туннель все еще активен, по умолчанию он отключен.

Теперь перейдем к наиболее важным настройкам:

  • Открытый ключ: мы должны поместить открытый ключ клиента VPN, ранее вы видели, как он генерируется для клиента, потому что здесь мы поместим открытый ключ.
  • Разрешенные IP-адреса: если мы хотим, чтобы было перенаправление в Интернет и доступ ко всем сетям, мы ставим 0.0.0.0/0. Самым нормальным является то, что клиенты VPN удаленного доступа выходят в Интернет через саму VPN, но здесь мы можем настроить конкретный доступ к разным сетям.
  • Peer WireGuard Address: IP-адрес зарегистрированного однорангового узла.
  • Предварительный общий ключ: необязательно, вы можете добавить предварительный общий ключ для дальнейшего повышения безопасности.

В нашем случае мы не поместили предварительный общий ключ, но если вы поместите его, как в pfSense, так и в VPN-клиенте, он должен быть точно таким же, и мы должны сгенерировать этот ключ с помощью синей кнопки, которая появляется в pfSense. Например, мы не можем поставить общий ключ «12345678», мы должны использовать генератор pfSense.

После того, как мы правильно настроили сервер WireGuard VPN в pfSense 2.5.0, мы собираемся настроить часть брандмауэра, потому что по умолчанию он всегда находится в режиме блокировки всего.

Конфигурация межсетевого экрана в WAN и WireGuard

Перед подключением первого VPN-клиента мы должны перейти в «Брандмауэр / Правила» и добавить новое правило в интерфейс WAN Интернета. Мы добавляем новое правило со следующей информацией:

  • Действие: пройти
  • Интерфейс: WAN
  • Семейство адресов: IPv4, IPv6 или оба
  • Протокол: UDP
  • Источник: любой (если вы собираетесь настроить Site-to-Site с WireGuard, вы можете разместить здесь исходный общедоступный IP-адрес для повышения безопасности).
  • Назначение: WAN-адрес на порту 51820

После настройки мы нажимаем «Сохранить», чтобы сохранить это правило, и применяем изменения, как всегда, когда мы добавляем новое правило в брандмауэр.

Как только это будет сделано, мы должны перейти к Интерфейс «WireGuard» который был создан автоматически в « Брандмауэр / Правила «, Здесь нам нужно будет разрешить все коммуникации после его подключения или только то, что мы хотим, точно так же, как OpenVPN или IPsec.

В следующей конфигурации вы можете видеть, что у нас есть правило со следующей конфигурацией:

  • Действие: пройти
  • Интерфейс: WireGuard
  • Семейство адресов: IPv4, IPv6 или оба
  • Протокол: Любой
  • Источник: любой
  • Назначение: любое

Нажимаем «Сохранить» и, как обычно, применяем изменения. На этом этапе мы готовы настроить VPN-клиентов с помощью WireGuard.

Настройте клиентов WireGuard VPN и подключитесь к pfSense

Конфигурация клиентов VPN с WireGuard одинакова на всех платформах, нам потребуется точно такая же информация. В нашем случае мы использовали смартфон Android, вы можете скачать официальное приложение WireGuard для Android и iOS ниже:

Но у нас также есть это для других операционных систем, таких как Windows, прямо с официального сайта этого протокола VPN. Как только мы его установим, мы сможем легко настроить клиента.

Как мы уже говорили ранее, мы рекомендуем при генерации ключей в pfSense копировать эти ключи в блокнот, как открытый ключ, так и закрытый ключ. Кроме того, вам также необходимо скопировать открытый ключ сервера. Как только это будет сделано, мы открываем WireGuard и приступаем к добавлению нового VPN-туннеля, у нас есть три варианта:

  • Импортируйте всю конфигурацию из файла, если вы собираетесь настроить несколько клиентов, таких как Windows, Linux и т. Д., Обычно есть шаблон с различными конфигурациями.
  • Сканирование с помощью QR-кода: если мы воспользуемся инструментом WireGuardConfig, мы сможем это легко сделать.
  • Создавать с нуля: это вариант, который мы выбрали.

При добавлении нового VPN мы должны заполнить всю или почти всю информацию, которую он запрашивает, это клиент VPN:

  • Имя: мы добавим описание к VPN-туннелю, описательное имя, если у нас их несколько.
  • Закрытый ключ: ставим закрытый ключ, который ранее скопировали из блокнота.
  • Открытый ключ: при вводе закрытого ключа он генерируется автоматически
  • Адреса: IPv4 или IPv6 клиента, в данном случае мы предварительно настроили 10.9.0.2/32, ставим это.
  • Порт: оставляем пустым
  • DNS-серверы: мы можем указать конкретный DNS-сервер или напрямую разрешающий туннель.
  • MTU: оставляем пустым.

Теперь мы нажимаем на добавление пары, и будут отображены другие конфигурации, эти конфигурации принадлежат серверу VPN.

  • Peers - открытый ключ VPN-сервера.
  • Предварительный общий ключ: если мы не настроили, мы оставляем его пустым, если мы настроили, мы копируем его точно так же.
  • Постоянное обслуживание: оставьте в живых, рекомендуется оставить поле пустым.
  • Заключительный момент: мы должны указать синтаксис «IP: порт», поэтому мы можем указать: «vpn.redeszone.net:51820».
  • Разрешенные IP-адреса: если мы хотим разместить их все, мы ставим 0.0.0.0/0. У нас также есть кнопка для исключения частных IP-адресов.

Как только мы это сделаем, мы нажимаем «Сохранить», и мы сможем увидеть все сделанные настройки.

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

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

Мы надеемся, что с помощью этого руководства вы смогли настроить сервер WireGuard VPN в своем великолепном pfSense 2.5.0.