Документация Hailbytes VPN с брандмауэром Firezone

Содержание

Свяжитесь с нами!

Пошаговые инструкции по развертыванию Hailbytes VPN с графическим интерфейсом Firezone приведены здесь. 

Администрирование: настройка экземпляра сервера напрямую связана с этой частью.

Руководства пользователя: полезные документы, которые научат вас, как использовать Firezone и решать типичные проблемы. После успешного развертывания сервера обратитесь к этому разделу.

Руководства по общим конфигурациям

Раздельное туннелирование: используйте VPN для отправки трафика только в определенные диапазоны IP-адресов.

Белый список: установите статический IP-адрес VPN-сервера, чтобы использовать белый список.

Обратные туннели: создание туннелей между несколькими одноранговыми узлами с использованием обратных туннелей.

Поддержка

Мы рады помочь вам, если вам нужна помощь в установке, настройке или использовании Hailbytes VPN.

Аутентификация

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

Хотя методом входа в систему Firezone по умолчанию является локальная электронная почта и пароль, его также можно интегрировать с любым стандартизированным поставщиком удостоверений OpenID Connect (OIDC). Теперь пользователи могут входить в Firezone, используя свои учетные данные Okta, Google, Azure AD или частного поставщика удостоверений.

 

Интеграция универсального поставщика OIDC

Параметры конфигурации, необходимые Firezone для разрешения единого входа с использованием поставщика OIDC, показаны в примере ниже. В /etc/firezone/firezone.rb вы можете найти файл конфигурации. Запустите перенастройку firezone-ctl и перезапустите firezone-ctl, чтобы обновить приложение и применить изменения.

 

# Это пример использования Google и Okta в качестве поставщика удостоверений SSO.

# В один и тот же экземпляр Firezone можно добавить несколько конфигураций OIDC.

 

# Firezone может отключить VPN пользователя, если при попытке

# чтобы обновить их access_token. Подтверждено, что это работает для Google, Okta и

# Azure SSO и используется для автоматического отключения VPN пользователя, если он был удален

# от поставщика OIDC. Оставьте это отключенным, если ваш поставщик OIDC

# имеет проблемы с обновлением токенов доступа, так как это может неожиданно прервать

# сеанс VPN пользователя.

default['firezone']['authentication']['disable_vpn_on_oidc_error'] = false

 

default['firezone']['аутентификация']['oidc'] = {

  Google: {

    discovery_document_uri: «https://accounts.google.com/.well-known/openid-configuration»,

    ID клиента: " ”,

    client_secret: “ ”,

    redirect_uri: «https://instance-id.yourfirezone.com/auth/oidc/google/callback/»,

    тип_ответа: «код»,

    scope: «профиль электронной почты openid»,

    ярлык: "Google"

  },

  окта: {

    discovery_document_uri: «https:// /.известная/openid-конфигурация»,

    ID клиента: " ”,

    client_secret: “ ”,

    redirect_uri: «https://instance-id.yourfirezone.com/auth/oidc/okta/callback/»,

    тип_ответа: «код»,

    scope: «профиль электронной почты openid offline_access»,

    этикетка: «Окта»

  }

}



Для интеграции необходимы следующие параметры конфигурации:

  1. discovery_document_uri: URI конфигурации провайдера OpenID Connect который возвращает документ JSON, используемый для создания последующих запросов к этому поставщику OIDC.
  2. client_id: идентификатор клиента приложения.
  3. client_secret: секрет клиента приложения.
  4. redirect_uri: указывает провайдеру OIDC, куда перенаправить после аутентификации. Это должна быть ваша пожарная зона EXTERNAL_URL + /auth/oidc/ /callback/ (например, https://instance-id.yourfirezone.com/auth/oidc/google/callback/).
  5. response_type: установить код.
  6. объем: Области OIDC получить от вашего поставщика OIDC. Это должно быть установлено на профиль электронной почты openid или профиль электронной почты openid offline_access в зависимости от провайдера.
  7. метка: текст метки кнопки, который отображается на экране входа в Firezone.

Красивые URL

Для каждого поставщика OIDC создается соответствующий красивый URL-адрес для перенаправления на настроенный URL-адрес входа поставщика. Для приведенного выше примера конфигурации OIDC используются следующие URL-адреса:

  • https://instance-id.yourfirezone.com/auth/oidc/google
  • https://instance-id.yourfirezone.com/auth/oidc/okta

Инструкции по настройке Firezone с популярными поставщиками удостоверений

Поставщики, для которых у нас есть документация:

  • Google
  • Okta
  • Azure Active Directory
  • Один вход
  • Локальная аутентификация

 

Если у вашего поставщика удостоверений есть универсальный соединитель OIDC, которого нет в списке выше, обратитесь к его документации за информацией о том, как получить необходимые параметры конфигурации.

Поддерживайте регулярную повторную аутентификацию

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

Продолжительность сеанса может быть настроена от одного часа до девяноста дней. Установив значение «Никогда», вы можете включить сеансы VPN в любое время. Это стандарт.

Повторная аутентификация

Пользователь должен завершить сеанс VPN и войти на портал Firezone, чтобы повторно аутентифицировать сеанс VPN с истекшим сроком действия (URL-адрес указывается во время развертывания).

Вы можете повторно аутентифицировать свой сеанс, следуя точным инструкциям клиента, которые можно найти здесь.

 

Статус VPN-подключения

В столбце таблицы VPN-подключения на странице «Пользователи» отображается статус подключения пользователя. Это статусы подключения:

ENABLED – соединение разрешено.

DISABLED — подключение отключено администратором или ошибкой обновления OIDC.

EXPIRED — соединение отключено из-за истечения срока действия аутентификации или из-за того, что пользователь не вошел в систему в первый раз.

Google

Через общий коннектор OIDC Firezone обеспечивает единый вход (SSO) с Google Workspace и Cloud Identity. Это руководство покажет вам, как получить перечисленные ниже параметры конфигурации, которые необходимы для интеграции:

  1. discovery_document_uri: URI конфигурации провайдера OpenID Connect который возвращает документ JSON, используемый для создания последующих запросов к этому поставщику OIDC.
  2. client_id: идентификатор клиента приложения.
  3. client_secret: секрет клиента приложения.
  4. redirect_uri: указывает провайдеру OIDC, куда перенаправить после аутентификации. Это должна быть ваша пожарная зона EXTERNAL_URL + /auth/oidc/ /callback/ (например, https://instance-id.yourfirezone.com/auth/oidc/google/callback/).
  5. response_type: установить код.
  6. объем: Области OIDC получить от вашего поставщика OIDC. Для этого следует установить профиль электронной почты openid, чтобы предоставить Firezone адрес электронной почты пользователя в возвращаемых заявках.
  7. метка: текст метки кнопки, который отображается на экране входа в Firezone.

Получить параметры конфигурации

1. Экран конфигурации OAuth

Если вы впервые создаете новый идентификатор клиента OAuth, вам будет предложено настроить экран согласия.

* Выберите Внутренний для типа пользователя. Это гарантирует, что только учетные записи, принадлежащие пользователям в вашей организации Google Workspace, могут создавать конфигурации устройств. НЕ ВЫБИРАЙТЕ Внешние, если вы не хотите, чтобы кто-либо с действительной учетной записью Google мог создавать конфигурации устройств.

 

На экране информации о приложении:

  1. Название приложения: FireZone
  2. Логотип приложения: Логотип пожарной зоны (сохранить ссылку как).
  3. Домашняя страница приложения: URL-адрес вашего экземпляра Firezone.
  4. Авторизованные домены: домен верхнего уровня вашего экземпляра Firezone.

 

 

2. Создайте идентификаторы клиентов OAuth

Этот раздел основан на собственной документации Google по настройка OAuth 2.0.

Посетите облачную консоль Google Страница учетных данных нажмите + Создать учетные данные и выберите идентификатор клиента OAuth.

На экране создания идентификатора клиента OAuth:

  1. Установите тип приложения на веб-приложение
  2. Добавьте свой Firezone EXTERNAL_URL + /auth/oidc/google/callback/ (например, https://instance-id.yourfirezone.com/auth/oidc/google/callback/) в качестве записи в URI авторизованного перенаправления.

 

После создания идентификатора клиента OAuth вам будет предоставлен идентификатор клиента и секрет клиента. Они будут использоваться вместе с URI перенаправления на следующем шаге.

Интеграция с пожарной зоной

Редактировать /etc/firezone/firezone.rb чтобы включить следующие параметры:

 

# Использование Google в качестве поставщика удостоверений SSO

default['firezone']['аутентификация']['oidc'] = {

  Google: {

    discovery_document_uri: «https://accounts.google.com/.well-known/openid-configuration»,

    ID клиента: " ”,

    client_secret: “ ”,

    redirect_uri: «https://instance-id.yourfirezone.com/auth/oidc/google/callback/»,

    тип_ответа: «код»,

    scope: «профиль электронной почты openid»,

    ярлык: "Google"

  }

}

 

Запустите перенастройку firezone-ctl и перезапустите firezone-ctl, чтобы обновить приложение. Теперь вы должны увидеть кнопку «Войти через Google» в корневом URL-адресе Firezone.

Okta

Firezone использует универсальный коннектор OIDC для упрощения единого входа (SSO) с Okta. В этом руководстве показано, как получить перечисленные ниже параметры конфигурации, необходимые для интеграции:

  1. discovery_document_uri: URI конфигурации провайдера OpenID Connect который возвращает документ JSON, используемый для создания последующих запросов к этому поставщику OIDC.
  2. client_id: идентификатор клиента приложения.
  3. client_secret: секрет клиента приложения.
  4. redirect_uri: указывает провайдеру OIDC, куда перенаправить после аутентификации. Это должна быть ваша пожарная зона EXTERNAL_URL + /auth/oidc/ /callback/ (например, https://instance-id.yourfirezone.com/auth/oidc/okta/callback/).
  5. response_type: установить код.
  6. объем: Области OIDC получить от вашего поставщика OIDC. Для этого следует установить профиль электронной почты openid offline_access, чтобы предоставить Firezone адрес электронной почты пользователя в возвращаемых заявках.
  7. метка: текст метки кнопки, который отображается на экране входа в Firezone.

 

Интегрировать приложение Okta

Этот раздел руководства основан на Документация Окты.

В консоли администратора выберите Приложения > Приложения и нажмите Создать интеграцию приложений. Установите метод входа в OICD — OpenID Connect и тип приложения — веб-приложение.

Настройте эти параметры:

  1. Имя приложения: Firezone
  2. Логотип приложения: Логотип пожарной зоны (сохранить ссылку как).
  3. Тип гранта: установите флажок «Обновить токен». Это гарантирует, что Firezone синхронизируется с поставщиком удостоверений, а доступ к VPN прекращается после удаления пользователя.
  4. URI перенаправления входа: добавьте свой Firezone EXTERNAL_URL + /auth/oidc/okta/callback/ (например, https://instance-id.yourfirezone.com/auth/oidc/okta/callback/) в качестве записи в авторизованных URI перенаправления. .
  5. Назначения: Ограничьтесь группами, которым вы хотите предоставить доступ к вашему экземпляру Firezone.

После сохранения настроек вам будет предоставлен идентификатор клиента, секрет клиента и домен Okta. Эти 3 значения будут использоваться на шаге 2 для настройки Firezone.

Интеграция Firezone

Редактировать /etc/firezone/firezone.rb чтобы включить параметры ниже. Твой Discovery_document_url будет /.известная/openid-конфигурация добавлен в конец вашего okta_domain.

 

# Использование Okta в качестве поставщика идентификации SSO

default['firezone']['аутентификация']['oidc'] = {

  окта: {

    discovery_document_uri: «https:// /.известная/openid-конфигурация»,

    ID клиента: " ”,

    client_secret: “ ”,

    redirect_uri: «https://instance-id.yourfirezone.com/auth/oidc/okta/callback/»,

    тип_ответа: «код»,

    scope: «профиль электронной почты openid offline_access»,

    этикетка: «Окта»

  }

}

 

Запустите перенастройку firezone-ctl и перезапустите firezone-ctl, чтобы обновить приложение. Теперь вы должны увидеть кнопку «Войти с помощью Okta» в корневом URL-адресе Firezone.

 

Ограничить доступ определенным пользователям

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

Azure Active Directory

С помощью универсального соединителя OIDC Firezone включает единый вход (SSO) с Azure Active Directory. Это руководство покажет вам, как получить перечисленные ниже параметры конфигурации, которые необходимы для интеграции:

  1. discovery_document_uri: URI конфигурации провайдера OpenID Connect который возвращает документ JSON, используемый для создания последующих запросов к этому поставщику OIDC.
  2. client_id: идентификатор клиента приложения.
  3. client_secret: секрет клиента приложения.
  4. redirect_uri: указывает провайдеру OIDC, куда перенаправить после аутентификации. Это должна быть ваша пожарная зона EXTERNAL_URL + /auth/oidc/ /callback/ (например, https://instance-id.yourfirezone.com/auth/oidc/azure/callback/).
  5. response_type: установить код.
  6. объем: Области OIDC получить от вашего поставщика OIDC. Для этого следует установить профиль электронной почты openid offline_access, чтобы предоставить Firezone адрес электронной почты пользователя в возвращаемых заявках.
  7. метка: текст метки кнопки, который отображается на экране входа в Firezone.

Получить параметры конфигурации

Это руководство взято из Документы Azure Active Directory.

 

Перейдите на страницу Azure Active Directory портала Azure. Выберите пункт меню «Управление», выберите «Новая регистрация», затем зарегистрируйтесь, предоставив информацию ниже:

  1. Название: Firezone
  2. Поддерживаемые типы учетных записей: (только каталог по умолчанию — один клиент)
  3. URI перенаправления: это должна быть ваша пожарная зона EXTERNAL_URL + /auth/oidc/azure/callback/ (например, https://instance-id.yourfirezone.com/auth/oidc/azure/callback/). Убедитесь, что вы включили косую черту в конце. Это будет значение redirect_uri.

 

После регистрации откройте подробный вид приложения и скопируйте ID приложения (клиента). Это будет значение client_id. Затем откройте меню конечных точек, чтобы получить Документ метаданных OpenID Connect. Это будет значение discovery_document_uri.

 

Создайте новый секрет клиента, щелкнув параметр «Сертификаты и секреты» в меню «Управление». Скопируйте секрет клиента; значение секрета клиента будет следующим.

 

Наконец, выберите ссылку разрешений API в меню «Управление», нажмите Добавить разрешениеИ выберите График Microsoft, добавлять e-mail, OpenID, offline_access и профиль к необходимым разрешениям.

Интеграция с пожарной зоной

Редактировать /etc/firezone/firezone.rb чтобы включить следующие параметры:

 

# Использование Azure Active Directory в качестве поставщика удостоверений единого входа

default['firezone']['аутентификация']['oidc'] = {

  лазурь: {

    discovery_document_uri: «https://login.microsoftonline.com/ /v2.0/.известная/openid-конфигурация»,

    ID клиента: " ”,

    client_secret: “ ”,

    redirect_uri: «https://instance-id.yourfirezone.com/auth/oidc/azure/callback/»,

    тип_ответа: «код»,

    scope: «профиль электронной почты openid offline_access»,

    этикетка: «Лазурь»

  }

}

 

Запустите перенастройку firezone-ctl и перезапустите firezone-ctl, чтобы обновить приложение. Теперь вы должны увидеть кнопку Войти с помощью Azure в корневом URL-адресе Firezone.

Как: ограничить доступ определенным участникам

Azure AD позволяет администраторам ограничивать доступ к приложениям для определенной группы пользователей внутри вашей компании. Дополнительную информацию о том, как это сделать, можно найти в документации Microsoft.

Администрирование

  • Настроить
  • Управление установкой
  • модернизация
  • Устранение неполадок
  • Соображения безопасности
  • Запуск SQL-запросов

Настроить

Chef Omnibus используется Firezone для управления задачами, включая упаковку выпусков, контроль процессов, управление журналами и многое другое.

Код Ruby составляет основной файл конфигурации, который находится в /etc/firezone/firezone.rb. Перезапуск sudo firezone-ctl reconfigure после внесения изменений в этот файл приводит к тому, что Chef распознает изменения и применяет их к текущей операционной системе.

Полный список переменных конфигурации и их описания см. в справочнике по файлу конфигурации.

Управление установкой

Вашим экземпляром Firezone можно управлять через Firezone-ctl команду, как показано ниже. Большинство подкоманд требуют префикса с Sudo.

 

root@demo:~# firezone-ctl

omnibus-ctl: команда (подкоманда)

Общие команды:

  очищать

    Удалите *все* данные пожарной зоны и начните с нуля.

  создать или сбросить администратора

    Сбрасывает пароль администратора с адресом электронной почты, указанным по умолчанию['firezone']['admin_email'] или создает нового администратора, если этот адрес электронной почты не существует.

  помощь

    Распечатайте это справочное сообщение.

  перенастроить

    Перенастройте приложение.

  сброс сети

    Сбрасывает nftables, интерфейс WireGuard и таблицу маршрутизации обратно к настройкам Firezone по умолчанию.

  шоу-конфигурация

    Покажите конфигурацию, которая будет создана при перенастройке.

  демонтажная сеть

    Удаляет интерфейс WireGuard и таблицу nftables firezone.

  принудительное обновление сертификата

    Принудительно обновить сертификат сейчас, даже если срок его действия еще не истек.

  остановка-сертификат-обновление

    Удаляет cronjob, который обновляет сертификаты.

  Удалить

    Убейте все процессы и удалите диспетчер процессов (данные будут сохранены).

  версия

    Показать текущую версию Firezone

Команды управления услугами:

  изящное убийство

    Попробуйте изящную остановку, затем SIGKILL всю группу процессов.

  понукать лошадь

    Отправьте услуги HUP.

  Int

    Отправьте службам INT.

  убивать

    Отправьте службам УБИЙСТВО.

  консолидировать

    Запустите службы, если они не работают. Не перезапускайте их, если они останавливаются.

  перезапуск

    Остановите службы, если они запущены, затем запустите их снова.

  перечень услуг

    Перечислите все службы (включенные службы отмечены *.)

  Начало

    Запустите службы, если они не работают, и перезапустите их, если они остановились.

  статус

    Показать состояние всех служб.

  остановить

    Остановите службы и не перезапускайте их.

  хвост

    Смотрите сервисные журналы всех включенных сервисов.

  срок

    Отправить услуги ТЕРМИН.

  usr1

    Отправьте службам USR1.

  usr2

    Отправьте службам USR2.

модернизация

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

 

Чтобы улучшить Firezone, выполните следующие действия:

  1. Обновите пакет firezone с помощью установки одной командой: sudo -E bash -c «$(curl -fsSL https://github.com/firezone/firezone/raw/master/scripts/install.sh)»
  2. Запустите firezone-ctl reconfigure, чтобы применить новые изменения.
  3. Запустите перезапуск firezone-ctl, чтобы перезапустить службы.

Если возникнут какие-либо проблемы, пожалуйста, сообщите нам об этом по подача заявки в службу поддержки.

Обновление с <0.5.0 до >=0.5.0

В 0.5.0 есть несколько критических изменений и модификаций конфигурации, которые необходимо устранить. Узнайте больше ниже.

Связанные запросы Nginx non_ssl_port (HTTP) удалены.

Начиная с версии 0.5.0, Nginx больше не поддерживает принудительные параметры порта SSL и не-SSL. Поскольку для работы Firezone требуется SSL, мы рекомендуем удалить службу пакета Nginx, установив default['firezone']['nginx']['enabled'] = false и вместо этого направив обратный прокси-сервер на приложение Phoenix через порт 13000 (по умолчанию ).

Поддержка протокола ACME

В версии 0.5.0 представлена ​​поддержка протокола ACME для автоматического обновления SSL-сертификатов с помощью встроенной службы Nginx. Включить,

  • Убедитесь, что default['firezone']['external_url'] содержит действительное полное доменное имя, которое разрешается в общедоступный IP-адрес вашего сервера.
  • Убедитесь, что порт 80/tcp доступен
  • Включите поддержку протокола ACME с помощью default['firezone']['ssl']['acme']['enabled'] = true в файле конфигурации.

Перекрывающиеся пункты назначения правила исходящего трафика

В Firezone 0.5.0 больше нет возможности добавлять правила с повторяющимися пунктами назначения. Наш сценарий миграции автоматически распознает такие ситуации во время обновления до версии 0.5.0 и сохраняет только те правила, назначение которых включает другое правило. Ничего не нужно делать, если все в порядке.

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

Предварительная настройка Okta и Google SSO

В Firezone 0.5.0 удалена поддержка старых конфигураций Okta и Google SSO в пользу новой, более гибкой конфигурации на основе OIDC. 

Если у вас есть какая-либо конфигурация с ключами по умолчанию ['firezone']['authentication']['okta'] или по умолчанию ['firezone']['authentication']['google'], вам необходимо перенести их в наш OIDC. на основе конфигурации с помощью приведенного ниже руководства.

Существующая конфигурация Google OAuth

Удалите эти строки, содержащие старые конфигурации Google OAuth, из файла конфигурации, расположенного в /etc/firezone/firezone.rb.

 

по умолчанию['firezone']['аутентификация']['google']['включено']

по умолчанию['firezone']['аутентификация']['google']['client_id']

по умолчанию['firezone']['аутентификация']['google']['client_secret']

default['firezone']['аутентификация']['google']['redirect_uri']

 

Затем настройте Google в качестве поставщика OIDC, следуя инструкциям здесь.

(Предоставьте инструкции по ссылке)<<<<<<<<<<<<<<<<<<

 

Настроить существующий Google OAuth 

Удалите эти строки, содержащие старые конфигурации Okta OAuth, из файла конфигурации, расположенного по адресу /etc/firezone/firezone.rb

 

default['firezone']['аутентификация']['okta']['enabled']

default['firezone']['аутентификация']['okta']['client_id']

default['firezone']['аутентификация']['okta']['client_secret']

По умолчанию['firezone']['аутентификация']['okta']['сайт']

 

Затем настройте Okta в качестве поставщика OIDC, следуя приведенным здесь процедурам.

Обновление с 0.3.x до >= 0.3.16

В зависимости от вашей текущей настройки и версии придерживайтесь следующих указаний:

Если у вас уже есть интеграция с OIDC:

Для некоторых поставщиков OIDC обновление до >= 0.3.16 требует получения маркера обновления для области автономного доступа. Таким образом гарантируется, что Firezone обновляется с помощью поставщика удостоверений, а VPN-соединение отключается после удаления пользователя. В более ранних версиях Firezone эта функция отсутствовала. В некоторых случаях пользователи, удаленные из вашего поставщика удостоверений, могут по-прежнему быть подключены к VPN.

Необходимо включить автономный доступ в параметр области вашей конфигурации OIDC для поставщиков OIDC, которые поддерживают область автономного доступа. Необходимо выполнить перенастройку Firezone-ctl, чтобы применить изменения к файлу конфигурации Firezone, который находится в /etc/firezone/firezone.rb.

Для пользователей, аутентифицированных вашим провайдером OIDC, вы увидите заголовок «Подключения OIDC» на странице сведений о пользователе веб-интерфейса, если Firezone сможет успешно получить токен обновления.

Если это не сработает, вам нужно будет удалить существующее приложение OAuth и повторить шаги настройки OIDC, чтобы создать новую интеграцию приложения .

У меня есть существующая интеграция OAuth

До версии 0.3.11 в Firezone использовались предварительно настроенные поставщики OAuth2. 

Следуй инструкциям здесь перейти на OIDC.

Я не интегрировал поставщика удостоверений

Не требуется никаких действий. 

Вы можете следовать инструкциям здесь для включения единого входа через поставщика OIDC.

Обновление с 0.3.1 до >= 0.3.2

Вместо него параметр default['firezone']['внешний URL'] заменил параметр конфигурации default['firezone']['fqdn']. 

Установите это на URL-адрес вашего онлайн-портала Firezone, который доступен для широкой публики. По умолчанию это будет https:// плюс полное доменное имя вашего сервера, если оно не определено.

Файл конфигурации находится в /etc/firezone/firezone.rb. Полный список переменных конфигурации и их описания см. в справочнике по файлу конфигурации.

Обновление с 0.2.x до 0.3.x

Начиная с версии 0.3.0, Firezone больше не хранит закрытые ключи устройств на сервере Firezone. 

Веб-интерфейс Firezone не позволит вам повторно загружать или просматривать эти конфигурации, но любые существующие устройства должны продолжать работать как есть.

Обновление с 0.1.x до 0.2.x

Если вы обновляетесь с Firezone 0.1.x, есть несколько изменений в файле конфигурации, которые необходимо исправить вручную. 

Чтобы внести необходимые изменения в файл /etc/firezone/firezone.rb, выполните приведенные ниже команды от имени пользователя root.

 

cp /etc/firezone/firezone.rb /etc/firezone/firezone.rb.bak

sed -i “s/\['enable'\]/\['enabled'\]/” /etc/firezone/firezone.rb

echo "по умолчанию ['firezone']['connectivity_checks']['enabled'] = true" >> /etc/firezone/firezone.rb

echo "по умолчанию ['firezone']['connectivity_checks']['interval'] = 3_600" >> /etc/firezone/firezone.rb

переконфигурировать firezone-ctl

перезапуск firezone-ctl

УСТРАНЕНИЕ НЕПОЛАДОК

Проверка журналов Firezone — мудрый первый шаг для любых проблем, которые могут возникнуть.

Запустите sudo firezone-ctl tail, чтобы просмотреть журналы Firezone.

Отладка проблем с подключением

Большинство проблем с подключением к Firezone вызвано несовместимостью правил iptables или nftables. Вы должны убедиться, что любые действующие правила не противоречат правилам пожарной зоны.

Подключение к Интернету падает, когда туннель активен

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

 

Этого можно добиться, если вы используете ufw, убедившись, что политика маршрутизации по умолчанию разрешена:

 

ubuntu@fz:~$ sudo ufw по умолчанию разрешить маршрутизацию

Политика маршрутизации по умолчанию изменена на «разрешить».

(не забудьте обновить свои правила соответствующим образом)

 

A UFW статус для типичного сервера Firezone может выглядеть так:

 

ubuntu@fz:~$ подробный статус sudo ufw

Статус: активен

Ведение журнала: включено (низкий уровень)

По умолчанию: запрещать (входящие), разрешать (исходящие), разрешать (маршрутизируемые)

Новые профили: пропустить

 

К действию от

— —— —-

22/tcp РАЗРЕШИТЬ ВХОД ВСЕГДА

80/tcp РАЗРЕШИТЬ ВХОД ВСЕГДА

443/tcp РАЗРЕШИТЬ ВХОД В любом месте

51820/udp РАЗРЕШИТЬ ВХОД В любом месте

22/tcp (v6) РАЗРЕШИТЬ ВХОД ВСЕГДА (v6)

80/tcp (v6) РАЗРЕШИТЬ ВХОД ВСЕГДА (v6)

443/tcp (v6) РАЗРЕШИТЬ ВХОД ВСЕГДА (v6)

51820/udp (v6) РАЗРЕШИТЬ ВХОД ВСЕГДА (v6)

Соображения безопасности

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

Услуги и порты

 

Сервис

Порт по умолчанию

Прослушать адрес

Описание

Nginx

80, 443

Найти

Общедоступный порт HTTP(S) для администрирования Firezone и облегчения аутентификации.

Wireguard

51820

Найти

Общедоступный порт WireGuard, используемый для сеансов VPN. (УДП)

Postgresql

15432

127.0.0.1

Локальный порт, используемый для связанного сервера Postgresql.

Феникс

13000

127.0.0.1

Локальный порт, используемый вышестоящим сервером приложений elixir.

Производственные развертывания

Мы советуем вам подумать об ограничении доступа к общедоступному веб-интерфейсу Firezone (по умолчанию порты 443/tcp и 80/tcp) и вместо этого использовать туннель WireGuard для управления Firezone для производственных и общедоступных развертываний, где будет отвечать один администратор. создания и распространения конфигураций устройств среди конечных пользователей.

 

Например, если администратор создал конфигурацию устройства и создал туннель с локальным адресом WireGuard 10.3.2.2, следующая конфигурация ufw позволит администратору получить доступ к веб-интерфейсу Firezone на интерфейсе wg-firezone сервера, используя адрес по умолчанию 10.3.2.1. адрес туннеля:

 

root@demo:~# подробный статус ufw

Статус: активен

Ведение журнала: включено (низкий уровень)

По умолчанию: запрещать (входящие), разрешать (исходящие), разрешать (маршрутизируемые)

Новые профили: пропустить

 

К действию от

— —— —-

22/tcp РАЗРЕШИТЬ ВХОД ВСЕГДА

51820/udp РАЗРЕШИТЬ ВХОД В любом месте

Везде РАЗРЕШИТЬ 10.3.2.2

22/tcp (v6) РАЗРЕШИТЬ ВХОД ВСЕГДА (v6)

51820/udp (v6) РАЗРЕШИТЬ ВХОД ВСЕГДА (v6)

Это оставило бы только 22/TCP выставлен для доступа по SSH для управления сервером (необязательно) и 51820 / UDP выставлены для установки туннелей WireGuard.

Запуск SQL-запросов

Firezone объединяет сервер Postgresql и соответствующие PSQL утилита, которую можно использовать из локальной оболочки следующим образом:

 

/opt/firezone/embedded/bin/psql \

  -U пожарная зона \

  -d пожарная зона \

  -h локальный хост \

  -п 15432 \

  -c «SQL_STATEMENT»

 

Это может быть полезно для целей отладки.

 

Общие задачи:

 

  • Список всех пользователей
  • Список всех устройств
  • Изменение роли пользователя
  • Резервное копирование базы данных



Список всех пользователей:

 

/opt/firezone/embedded/bin/psql \

  -U пожарная зона \

  -d пожарная зона \

  -h локальный хост \

  -п 15432 \

  -c «ВЫБРАТЬ * ОТ пользователей;»



Список всех устройств:

 

/opt/firezone/embedded/bin/psql \

  -U пожарная зона \

  -d пожарная зона \

  -h локальный хост \

  -п 15432 \

  -c «ВЫБРАТЬ * ИЗ устройств;»



Изменить роль пользователя:

 

Установите роль «администратор» или «непривилегированный»:

 

/opt/firezone/embedded/bin/psql \

  -U пожарная зона \

  -d пожарная зона \

  -h локальный хост \

  -п 15432 \

  -c «ОБНОВИТЬ пользователей SET role = 'admin' WHERE email = 'user@example.com';»



Резервное копирование базы данных:

 

Кроме того, включена программа pg dump, которую можно использовать для регулярного создания резервных копий базы данных. Выполните следующий код, чтобы создать дамп копии базы данных в стандартном формате запросов SQL (замените /path/to/backup.sql расположением, в котором должен быть создан файл SQL):

 

/opt/firezone/embedded/bin/pg_dump \

  -U пожарная зона \

  -d пожарная зона \

  -h локальный хост \

  -p 15432 > /путь/к/backup.sql

руководства пользователя

  • Добавить пользователей
  • Добавить устройства
  • Правила выхода
  • Инструкции для клиентов
  • Раздельный туннель VPN
  • Обратный тоннель 
  • NAT-шлюз

Добавить пользователей

После успешного развертывания Firezone вы должны добавить пользователей, чтобы предоставить им доступ к вашей сети. Для этого используется веб-интерфейс.

 

Веб-интерфейс


Выбрав кнопку «Добавить пользователя» в разделе /users, вы можете добавить пользователя. Вам будет необходимо предоставить пользователю адрес электронной почты и пароль. Чтобы разрешить доступ пользователям в вашей организации автоматически, Firezone также может взаимодействовать и синхронизироваться с поставщиком удостоверений. Более подробная информация доступна в Проверять подлинность. < Добавить ссылку для аутентификации

Добавить устройства

Мы советуем попросить пользователей создать свои собственные конфигурации устройств, чтобы закрытый ключ был виден только им. Пользователи могут создавать свои собственные конфигурации устройств, следуя инструкциям на Инструкции для клиентов страница.

 

Генерация конфигурации устройства администратора

Все конфигурации пользовательских устройств могут быть созданы администраторами Firezone. На странице профиля пользователя, расположенной в /users, выберите опцию «Добавить устройство», чтобы сделать это.

 

[Вставить скриншот]

 

Вы можете отправить пользователю файл конфигурации WireGuard по электронной почте после создания профиля устройства.

 

Пользователи и устройства связаны. Дополнительные сведения о том, как добавить пользователя, см. Добавить пользователей.

Правила выхода

Используя систему сетевого фильтра ядра, Firezone обеспечивает возможности фильтрации исходящего трафика для указания пакетов DROP или ACCEPT. Весь трафик обычно разрешен.

 

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

Инструкции для клиентов

Установка и настройка

Чтобы установить VPN-подключение с помощью собственного клиента WireGuard, обратитесь к этому руководству.

 

1. Установите родной клиент WireGuard

 

Расположенные здесь официальные клиенты WireGuard совместимы с Firezone:

 

MacOS

 

Windows

 

iOS

 

Android

 

Посетите официальный веб-сайт WireGuard по адресу https://www.wireguard.com/install/ для систем ОС, не упомянутых выше.

 

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

 

Либо ваш администратор Firezone, либо вы сами можете создать файл конфигурации устройства с помощью портала Firezone.

 

Посетите URL-адрес, предоставленный вашим администратором Firezone, чтобы самостоятельно создать файл конфигурации устройства. У вашей фирмы будет уникальный URL для этого; в данном случае это https://instance-id.yourfirezone.com.

 

Вход в Firezone Okta SSO

 

[Вставить снимок экрана]

 

3. Добавьте конфигурацию клиента

 

Импортируйте файл .conf в клиент WireGuard, открыв его. Переключив переключатель «Активировать», вы можете начать сеанс VPN.

 

[Вставить снимок экрана]

Повторная аутентификация сеанса

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



Вам потребуется:

 

URL-адрес портала Firezone: запросите подключение у администратора сети.

Ваш сетевой администратор должен иметь возможность предложить ваш логин и пароль. Сайт Firezone предложит вам войти в систему с помощью службы единого входа, которую использует ваш работодатель (например, Google или Okta).

 

1. Отключите VPN-соединение

 

[Вставить снимок экрана]

 

2. Повторно авторизоваться 

Перейдите по URL-адресу портала Firezone и войдите в систему, используя учетные данные, предоставленные вашим сетевым администратором. Если вы уже вошли в систему, нажмите кнопку «Повторная аутентификация» перед повторным входом.

 

[Вставить снимок экрана]

 

Шаг 3. Запустите сеанс VPN

[Вставить снимок экрана]

Сетевой менеджер для Linux

Чтобы импортировать профиль конфигурации WireGuard с помощью интерфейса командной строки Network Manager на устройствах Linux, следуйте этим инструкциям (nmcli).

ЗАМЕТКА

Если в профиле включена поддержка IPv6, попытка импортировать файл конфигурации с помощью графического интерфейса Network Manager может завершиться ошибкой со следующей ошибкой:

ipv6.method: метод «авто» не поддерживается для WireGuard

1. Установите инструменты WireGuard 

Необходимо установить утилиты пользовательского пространства WireGuard. Это будет пакет под названием wireguard или wireguard-tools для дистрибутивов Linux.

Для Ubuntu / Debian:

sudo apt установить wireguard

Чтобы использовать Федору:

sudo dnf установить инструменты wireguard

Arch Linux:

sudo pacman -S Wireguard-tools

Посетите официальный веб-сайт WireGuard по адресу https://www.wireguard.com/install/ для дистрибутивов, не упомянутых выше.

2. Скачать конфигурацию 

Либо ваш администратор Firezone, либо самостоятельная генерация могут создать файл конфигурации устройства с помощью портала Firezone.

Посетите URL-адрес, предоставленный вашим администратором Firezone, чтобы самостоятельно создать файл конфигурации устройства. У вашей фирмы будет уникальный URL для этого; в данном случае это https://instance-id.yourfirezone.com.

[Вставить снимок экрана]

3. Импорт настроек

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

sudo nmcli тип импорта соединения wireguard file /path/to/configuration.conf

ЗАМЕТКА

Имя файла конфигурации будет соответствовать соединению/интерфейсу WireGuard. После импорта соединение при необходимости можно переименовать:

Соединение nmcli изменить [старое имя] connection.id [новое имя]

4. Подключить или отключить

Через командную строку подключитесь к VPN следующим образом:

подключение nmcli вверх [имя vpn]

Чтобы отключить:

соединение nmcli отключено [имя vpn]

Соответствующий апплет Network Manager также можно использовать для управления соединением при использовании графического интерфейса.

Автоматическое подключение

Выбрав «да» для параметра автоподключения, VPN-подключение можно настроить на автоматическое подключение:

 

Соединение nmcli изменить соединение [имя vpn]. <<<<<<<<<<<<<<<<<<<<<<<<

 

автоподключение да

 

Чтобы отключить автоматическое подключение, установите для него значение no:

 

Соединение nmcli изменить соединение [имя vpn].

 

автоподключение нет

Сделайте многофакторную аутентификацию доступной

Чтобы активировать MFA Перейдите на портал Firezone на странице /user account/register mfa. Используйте приложение для проверки подлинности, чтобы отсканировать QR-код после того, как он был сгенерирован, а затем введите шестизначный код.

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

Раздельный туннель VPN

Это руководство проведет вас через процесс настройки функции раздельного туннелирования WireGuard с Firezone, чтобы через VPN-сервер перенаправлялся только трафик на определенные диапазоны IP-адресов.

 

1. Настройте разрешенные IP-адреса 

Диапазоны IP-адресов, для которых клиент будет маршрутизировать сетевой трафик, указаны в поле Разрешенные IP-адреса, расположенном на странице /settings/default. Изменения в этом поле повлияют только на вновь созданные конфигурации туннеля WireGuard, созданные Firezone.

 

[Вставить снимок экрана]



Значение по умолчанию — 0.0.0.0/0, ::/0, которое направляет весь сетевой трафик от клиента к VPN-серверу.

 

Примеры значений в этом поле включают:

 

0.0.0.0/0, ::/0 — весь сетевой трафик будет направляться на VPN-сервер.

192.0.2.3/32 — на VPN-сервер будет направляться только трафик с одного IP-адреса.

3.5.140.0/22 ​​— на VPN-сервер будет направляться только трафик с IP-адресов в диапазоне 3.5.140.1 — 3.5.143.254. В этом примере использовался диапазон CIDR для региона AWS ap-northeast-2.



ЗАМЕТКА

Firezone сначала выбирает выходной интерфейс, связанный с наиболее точным маршрутом, при определении направления маршрутизации пакета.

 

2. Восстановите конфигурации WireGuard

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

 

Для получения инструкций см. добавить устройство. <<<<<<<<<<< Добавить ссылку

Обратный тоннель

В этом руководстве показано, как связать два устройства, используя Firezone в качестве реле. Одним из типичных вариантов использования является предоставление администратору доступа к серверу, контейнеру или машине, защищенной с помощью NAT или брандмауэра.

 

узел к узлу 

На этом рисунке показан простой сценарий, в котором устройства A и B строят туннель.

 

[Вставьте архитектурное изображение пожарной зоны]

 

Начните с создания устройства A и устройства B, перейдя к /users/[user_id]/new_device. В настройках каждого устройства убедитесь, что для следующих параметров установлены значения, указанные ниже. Вы можете задать настройки устройства при создании конфигурации устройства (см. Добавление устройств). Если вам нужно обновить настройки на существующем устройстве, вы можете сделать это, создав новую конфигурацию устройства.

 

Обратите внимание, что на всех устройствах есть страница /settings/defaults, на которой можно настроить PersistentKeepalive.

 

Устройство А

 

Разрешенные IP-адреса = 10.3.2.2/32

  Это IP-адрес или диапазон IP-адресов устройства B.

ПостоянныйKeepalive = 25

  Если устройство находится за NAT, это гарантирует, что устройство сможет поддерживать работу туннеля и продолжать получать пакеты от интерфейса WireGuard. Обычно достаточно значения 25, но вам может потребоваться уменьшить это значение в зависимости от вашей среды.



устройство Б

 

Разрешенные IP-адреса = 10.3.2.3/32

Это IP-адрес или диапазон IP-адресов устройства A.

ПостоянныйKeepalive = 25

Дело администратора — один ко многим узлам

В этом примере показана ситуация, в которой устройство A может обмениваться данными с устройствами B через D в обоих направлениях. Эта установка может представлять инженера или администратора, получающего доступ к многочисленным ресурсам (серверам, контейнерам или компьютерам) в различных сетях.

 

[Архитектурная схема]<<<<<<<<<<<<<<<<<<<<<<<<<

 

Убедитесь, что следующие параметры установлены в настройках каждого устройства на соответствующие значения. При создании конфигурации устройства вы можете указать параметры устройства (см. Добавление устройств). Можно создать новую конфигурацию устройства, если необходимо обновить настройки существующего устройства.

 

Устройство A (узел администратора)

 

Разрешенные IP-адреса = 10.3.2.3/32, 10.3.2.4/32, 10.3.2.5/32 

    Это IP-адреса устройств с B по D. IP-адреса устройств с B по D должны быть включены в любой диапазон IP-адресов, который вы решили установить.

ПостоянныйKeepalive = 25 

    Это гарантирует, что устройство сможет поддерживать туннель и продолжать получать пакеты от интерфейса WireGuard, даже если оно защищено NAT. В большинстве случаев достаточно значения 25, однако, в зависимости от вашего окружения, вам может потребоваться уменьшить это значение.

 

Устройство B

 

  • AllowedIPs = 10.3.2.2/32: это IP-адрес или диапазон IP-адресов устройства A.
  • ПостоянныйKeepalive = 25

Устройство С

 

  • AllowedIPs = 10.3.2.2/32: это IP-адрес или диапазон IP-адресов устройства A.
  • ПостоянныйKeepalive = 25

Устройство Д

 

  • AllowedIPs = 10.3.2.2/32: это IP-адрес или диапазон IP-адресов устройства A.
  • ПостоянныйKeepalive = 25

NAT-шлюз

Чтобы предложить единый статический исходящий IP-адрес для всего трафика вашей команды, Firezone можно использовать в качестве шлюза NAT. Эти ситуации предполагают его частое использование:

 

Консультационные задания: попросите вашего клиента внести в белый список один статический IP-адрес, а не уникальный IP-адрес устройства каждого сотрудника.

Использование прокси или маскировка исходного IP-адреса в целях безопасности или конфиденциальности.

 

В этом посте будет продемонстрирован простой пример ограничения доступа к собственному веб-приложению одним статическим IP-адресом из белого списка, на котором работает Firezone. На этом рисунке Firezone и защищаемый ресурс находятся в разных областях VPC.

 

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

Пример AWS

Наша цель — настроить сервер Firezone на экземпляре EC2 для перенаправления VPN-трафика на ограниченный ресурс. В этом случае Firezone выступает в качестве сетевого прокси или шлюза NAT, чтобы предоставить каждому подключенному устройству уникальный общедоступный исходящий IP-адрес.

 

1. Установите сервер Firezone

В этом случае экземпляр EC2 с именем tc2.micro имеет установленный экземпляр Firezone. Информацию о развертывании Firezone см. в Руководстве по развертыванию. Что касается AWS, убедитесь, что:

 

Группа безопасности экземпляра Firezone EC2 разрешает исходящий трафик на IP-адрес защищенного ресурса.

Экземпляр Firezone поставляется с эластичным IP-адресом. Трафик, который перенаправляется через экземпляр Firezone во внешние пункты назначения, будет иметь этот исходный IP-адрес. Рассматриваемый IP-адрес — 52.202.88.54.

 

[Вставить снимок экрана]<<<<<<<<<<<<<<<<<<<<<<<<<

 

2. Ограничить доступ к защищаемому ресурсу

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

 

[Вставить скриншот]<<<<<<<<<<<<<<<<<<<<<<<<<

 

Сообщите третьему лицу, отвечающему за защищенный ресурс, что трафик со статического IP-адреса, определенного на шаге 1, должен быть разрешен (в данном случае 52.202.88.54).

 

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

 

По умолчанию весь пользовательский трафик будет проходить через VPN-сервер со статического IP-адреса, настроенного на шаге 1 (в данном случае 52.202.88.54). Однако, если включено раздельное туннелирование, могут потребоваться настройки, чтобы убедиться, что IP-адрес назначения защищенного ресурса указан в списке разрешенных IP-адресов.

Добавьте текст заголовка здесь

Ниже показан полный список опций конфигурации, доступных в /etc/firezone/firezone.rb.



вариант

описание

значение по умолчанию

по умолчанию['firezone']['external_url']

URL-адрес, используемый для доступа к веб-порталу этого экземпляра Firezone.

«https://#{узел['fqdn'] || узел['имя хоста']}”

по умолчанию['firezone']['config_directory']

Каталог верхнего уровня для конфигурации Firezone.

/etc/firezone'

по умолчанию['firezone']['install_directory']

Каталог верхнего уровня для установки Firezone.

/опт/пожарная зона'

по умолчанию['firezone']['app_directory']

Каталог верхнего уровня для установки веб-приложения Firezone.

"#{узел['firezone']['install_directory']}/embedded/service/firezone"

по умолчанию['firezone']['log_directory']

Каталог верхнего уровня для журналов Firezone.

/var/журнал/firezone'

по умолчанию['firezone']['var_directory']

Каталог верхнего уровня для файлов среды выполнения Firezone.

/var/опт/пожарная зона'

по умолчанию['firezone']['пользователь']

Имя непривилегированного пользователя Linux, которому будет принадлежать большинство служб и файлов.

пожарная зона

по умолчанию['firezone']['группа']

Имя группы Linux, которой будет принадлежать большинство служб и файлов.

пожарная зона

по умолчанию['firezone']['admin_email']

Адрес электронной почты для первого пользователя Firezone.

«firezone@localhost»

по умолчанию['firezone']['max_devices_per_user']

Максимальное количество устройств, которое может иметь пользователь.

10

по умолчанию ['зона огня']['allow_uncitationd_device_management']

Позволяет пользователям без прав администратора создавать и удалять устройства.

ИСТИНА

по умолчанию ['зона огня']['allow_uncitationd_device_configuration']

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

ИСТИНА

по умолчанию['firezone']['egress_interface']

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

ноль

по умолчанию['firezone']['fips_enabled']

Включить или отключить режим OpenSSL FIP.

ноль

default['firezone']['logging']['enabled']

Включите или отключите ведение журнала в Firezone. Установите значение false, чтобы полностью отключить ведение журнала.

ИСТИНА

по умолчанию['предприятие']['имя']

Название, используемое в поваренной книге Chef 'enterprise'.

пожарная зона

по умолчанию['firezone']['install_path']

Путь установки, используемый поваренной книгой Chef 'enterprise'. Должно быть установлено то же самое, что и для install_directory выше.

узел['firezone']['install_directory']

по умолчанию['firezone']['sysvinit_id']

Идентификатор, используемый в /etc/inittab. Должна быть уникальная последовательность из 1-4 символов.

КАК ДЕЛА'

по умолчанию ['firezone']['аутентификация']['local']['enabled']

Включить или отключить локальную аутентификацию по электронной почте/паролю.

ИСТИНА

по умолчанию ['firezone']['аутентификация']['auto_create_oidc_users']

Автоматически создавать пользователей, впервые входящих в систему из OIDC. Отключите, чтобы разрешить вход через OIDC только существующим пользователям.

ИСТИНА

по умолчанию ['firezone']['аутентификация']['disable_vpn_on_oidc_error']

Отключите VPN пользователя, если обнаружена ошибка при попытке обновить его токен OIDC.

НЕПРАВДА

default['firezone']['аутентификация']['oidc']

Конфигурация OpenID Connect в формате {“provider” => [config…]} – см. Документация OpenIDConnect для примеров конфигурации.

{}

по умолчанию ['firezone']['nginx']['enabled']

Включите или отключите связанный сервер nginx.

ИСТИНА

по умолчанию ['firezone']['nginx']['ssl_port']

Порт прослушивания HTTPS.

443

default['firezone']['nginx']['каталог']

Каталог для хранения конфигурации виртуального хоста nginx, связанной с Firezone.

«#{узел['firezone']['var_directory']}/nginx/etc"

default['firezone']['nginx']['log_directory']

Каталог для хранения файлов журнала nginx, связанных с Firezone.

“#{узел['firezone']['log_directory']}/nginx”

по умолчанию ['firezone']['nginx']['log_rotation']['file_maxbytes']

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

104857600

default['firezone']['nginx']['log_rotation']['num_to_keep']

Количество файлов журнала Firezone nginx, которые необходимо сохранить перед удалением.

10

по умолчанию ['firezone']['nginx']['log_x_forwarded_for']

Нужно ли регистрировать заголовок Firezone nginx x-forwarded-for.

ИСТИНА

по умолчанию ['firezone']['nginx']['hsts_header']['enabled']

Включение или выключение HSTS.

ИСТИНА

по умолчанию ['firezone']['nginx']['hsts_header']['include_subdomains']

Включите или отключите includeSubDomains для заголовка HSTS.

ИСТИНА

по умолчанию ['firezone']['nginx']['hsts_header']['max_age']

Максимальный возраст заголовка HSTS.

31536000

по умолчанию ['firezone']['nginx']['redirect_to_canonical']

Следует ли перенаправлять URL-адреса на каноническое полное доменное имя, указанное выше.

НЕПРАВДА

по умолчанию ['firezone']['nginx']['cache']['enabled']

Включите или отключите кеш Firezone nginx.

НЕПРАВДА

default['firezone']['nginx']['cache']['directory']

Каталог для кеша Firezone nginx.

«#{узел['firezone']['var_directory']}/nginx/cache”

по умолчанию ['firezone']['nginx']['user']

Пользователь Firezone nginx.

узел ['firezone']['пользователь']

по умолчанию ['firezone']['nginx']['group']

Группа nginx в Firezone.

узел ['firezone']['group']

по умолчанию ['firezone']['nginx']['dir']

Каталог конфигурации nginx верхнего уровня.

node['firezone']['nginx']['каталог']

по умолчанию ['firezone']['nginx']['log_dir']

Каталог журналов nginx верхнего уровня.

node['firezone']['nginx']['log_directory']

по умолчанию ['firezone']['nginx']['pid']

Расположение pid-файла nginx.

«#{node['firezone']['nginx']['directory']}/nginx.pid”

по умолчанию ['firezone']['nginx']['daemon_disable']

Отключите режим демона nginx, чтобы мы могли вместо этого отслеживать его.

ИСТИНА

по умолчанию ['firezone']['nginx']['gzip']

Включите или выключите сжатие nginx gzip.

на'

по умолчанию ['firezone']['nginx']['gzip_static']

Включите или выключите сжатие nginx gzip для статических файлов.

выключенный'

по умолчанию ['firezone']['nginx']['gzip_http_version']

Версия HTTP для обслуживания статических файлов.

1.0 '

по умолчанию ['firezone']['nginx']['gzip_comp_level']

Уровень сжатия nginx gzip.

2 '

по умолчанию ['firezone']['nginx']['gzip_proxied']

Включает или отключает сжатие ответов для проксируемых запросов в зависимости от запроса и ответа.

любой'

по умолчанию ['firezone']['nginx']['gzip_vary']

Включает или отключает вставку заголовка ответа «Vary: Accept-Encoding».

выключенный'

по умолчанию ['firezone']['nginx']['gzip_buffers']

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

ноль

по умолчанию ['firezone']['nginx']['gzip_types']

Типы MIME, для которых включено сжатие gzip.

['текст/обычный', 'текст/css','приложение/x-javascript', 'текст/xml', 'приложение/xml', 'приложение/rss+xml', 'приложение/атом+xml', ' текст/javascript», «приложение/javascript», «приложение/json»]

по умолчанию ['firezone']['nginx']['gzip_min_length']

Минимальная длина файла для включения сжатия файла gzip.

1000

по умолчанию ['firezone']['nginx']['gzip_disable']

Сопоставитель агента пользователя, для которого отключается сжатие gzip.

МСИЭ [1-6]\.'

default['firezone']['nginx']['keepalive']

Активирует кэш для подключения к вышестоящим серверам.

на'

по умолчанию ['firezone']['nginx']['keepalive_timeout']

Время ожидания в секундах для поддержания активности соединения с вышестоящими серверами.

65

по умолчанию ['firezone']['nginx']['worker_processes']

Количество рабочих процессов nginx.

node['cpu'] && node['cpu']['total'] ? узел['процессор']['всего'] : 1

по умолчанию ['firezone']['nginx']['worker_connections']

Максимальное количество одновременных подключений, которые может открыть рабочий процесс.

1024

по умолчанию ['firezone']['nginx']['worker_rlimit_nofile']

Изменяет ограничение на максимальное количество открытых файлов для рабочих процессов. Использует nginx по умолчанию, если nil.

ноль

по умолчанию ['firezone']['nginx']['multi_accept']

Должны ли работники принимать одно соединение за раз или несколько.

ИСТИНА

по умолчанию ['firezone']['nginx']['event']

Указывает метод обработки соединения для использования в контексте событий nginx.

epoll'

по умолчанию ['firezone']['nginx']['server_tokens']

Включает или отключает выдачу версии nginx на страницах ошибок и в поле заголовка ответа «Сервер».

ноль

по умолчанию ['firezone']['nginx']['server_names_hash_bucket_size']

Устанавливает размер корзины для хэш-таблиц имен серверов.

64

по умолчанию ['firezone']['nginx']['sendfile']

Включает или отключает использование sendfile() nginx.

на'

по умолчанию ['firezone']['nginx']['access_log_options']

Устанавливает параметры журнала доступа nginx.

ноль

по умолчанию ['firezone']['nginx']['error_log_options']

Устанавливает параметры журнала ошибок nginx.

ноль

по умолчанию ['firezone']['nginx']['disable_access_log']

Отключает журнал доступа nginx.

НЕПРАВДА

по умолчанию ['firezone']['nginx']['types_hash_max_size']

Максимальный размер хеша типов nginx.

2048

по умолчанию ['firezone']['nginx']['types_hash_bucket_size']

nginx вводит размер хэш-блока.

64

по умолчанию ['firezone']['nginx']['proxy_read_timeout']

Тайм-аут чтения прокси-сервера nginx. Установите значение nil, чтобы использовать nginx по умолчанию.

ноль

по умолчанию ['firezone']['nginx']['client_body_buffer_size']

Размер буфера тела клиента nginx. Установите значение nil, чтобы использовать nginx по умолчанию.

ноль

по умолчанию ['firezone']['nginx']['client_max_body_size']

Максимальный размер тела клиента nginx.

250 м '

по умолчанию ['firezone']['nginx']['default']['modules']

Укажите дополнительные модули nginx.

[]

по умолчанию ['firezone']['nginx']['enable_rate_limiting']

Включить или отключить ограничение скорости nginx.

ИСТИНА

default['firezone']['nginx']['rate_limiting_zone_name']

Имя зоны ограничения скорости Nginx.

пожарная зона

по умолчанию ['firezone']['nginx']['rate_limiting_backoff']

Отсрочка ограничения скорости Nginx.

10 м '

по умолчанию['firezone']['nginx']['rate_limit']

Ограничение скорости Nginx.

10р/с'

по умолчанию ['firezone']['nginx']['ipv6']

Разрешить nginx прослушивать HTTP-запросы для IPv6 в дополнение к IPv4.

ИСТИНА

по умолчанию ['firezone']['postgresql']['enabled']

Включить или отключить связанный Postgresql. Установите значение false и заполните параметры базы данных ниже, чтобы использовать свой собственный экземпляр Postgresql.

ИСТИНА

по умолчанию ['firezone']['postgresql']['имя пользователя']

Имя пользователя для Postgresql.

узел ['firezone']['пользователь']

default['firezone']['postgresql']['data_directory']

Каталог данных Postgresql.

«#{узел['firezone']['var_directory']}/postgresql/13.3/data"

default['firezone']['postgresql']['log_directory']

Каталог журналов PostgreSQL.

«#{узел['firezone']['log_directory']}/postgresql"

по умолчанию ['firezone']['postgresql']['log_rotation']['file_maxbytes']

Максимальный размер файла журнала Postgresql до ротации.

104857600

default['firezone']['postgresql']['log_rotation']['num_to_keep']

Количество файлов журнала Postgresql, которые необходимо сохранить.

10

по умолчанию ['firezone']['postgresql']['checkpoint_completion_target']

Цель завершения контрольной точки Postgresql.

0.5

по умолчанию ['firezone']['postgresql']['checkpoint_segments']

Количество сегментов контрольной точки Postgresql.

3

по умолчанию ['firezone']['postgresql']['checkpoint_timeout']

Тайм-аут контрольной точки Postgresql.

5 мин'

по умолчанию ['firezone']['postgresql']['checkpoint_warning']

Время предупреждения контрольной точки Postgresql в секундах.

30-е

по умолчанию ['firezone']['postgresql'][' Effective_cache_size']

Эффективный размер кэша Postgresql.

128 МБ '

по умолчанию ['firezone']['postgresql']['listen_address']

Адрес прослушивания Postgresql.

127.0.0.1 '

по умолчанию ['firezone']['postgresql']['max_connections']

Максимальное количество подключений к PostgreSQL.

350

по умолчанию ['firezone']['postgresql']['md5_auth_cidr_addresses']

Postgresql CIDR для аутентификации md5.

['127.0.0.1/32', '::1/128']

по умолчанию ['firezone']['postgresql']['port']

Порт прослушивания Postgresql.

15432

по умолчанию ['firezone']['postgresql']['shared_buffers']

Размер разделяемых буферов Postgresql.

«#{(узел['память']['всего'].to_i / 4) / 1024} МБ»

по умолчанию ['firezone']['postgresql']['shmmax']

Postgresql shmmax в байтах.

17179869184

по умолчанию ['firezone']['postgresql']['shmall']

Postgresql shmall в байтах.

4194304

по умолчанию ['firezone']['postgresql']['work_mem']

Размер рабочей памяти Postgresql.

8 МБ '

по умолчанию ['firezone']['база данных']['пользователь']

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

node['firezone']['postgresql']['username']

по умолчанию ['firezone']['база данных']['пароль']

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

Измени меня'

по умолчанию ['firezone']['база данных']['имя']

База данных, которую будет использовать Firezone. Будет создан, если он не существует.

пожарная зона

по умолчанию ['зона огня']['база данных']['хост']

Хост базы данных, к которому будет подключаться Firezone.

узел ['firezone']['postgresql']['listen_address']

по умолчанию ['firezone']['база данных']['порт']

Порт базы данных, к которому будет подключаться Firezone.

node['firezone']['postgresql']['port']

по умолчанию ['firezone']['база данных']['пул']

Размер пула баз данных, который будет использовать Firezone.

[10, etc.nprocessors].max

по умолчанию ['firezone']['база данных']['ssl']

Следует ли подключаться к базе данных через SSL.

НЕПРАВДА

по умолчанию ['firezone']['база данных']['ssl_opts']

Хэш параметров для отправки в параметр :ssl_opts при подключении через SSL. Видеть Документация Ecto.Adapters.Postgres.

{}

по умолчанию['firezone']['база данных']['параметры']

Хэш параметров для отправки в параметр :parameters при подключении к базе данных. Видеть Документация Ecto.Adapters.Postgres.

{}

по умолчанию ['firezone']['база данных']['расширения']

Расширения базы данных для включения.

{ 'plpgsql' => правда, 'pg_trgm' => правда }

по умолчанию ['firezone']['phoenix']['enabled']

Включите или отключите веб-приложение Firezone.

ИСТИНА

default['firezone']['phoenix']['listen_address']

Адрес прослушивания веб-приложения Firezone. Это будет восходящий адрес прослушивания, который проксирует nginx.

127.0.0.1 '

default['firezone']['phoenix']['port']

Порт прослушивания веб-приложения Firezone. Это будет восходящий порт, который проксирует nginx.

13000

default['firezone']['phoenix']['log_directory']

Каталог журнала веб-приложения Firezone.

«#{узел['firezone']['log_directory']}/феникс"

default['firezone']['phoenix']['log_rotation']['file_maxbytes']

Размер файла журнала веб-приложения Firezone.

104857600

default['firezone']['phoenix']['log_rotation']['num_to_keep']

Количество файлов журнала веб-приложений Firezone, которые необходимо сохранить.

10

default['firezone']['phoenix']['crash_detection']['enabled']

Включите или отключите отключение веб-приложения Firezone при обнаружении сбоя.

ИСТИНА

default['firezone']['phoenix']['external_trusted_proxy']

Список доверенных обратных прокси-серверов, отформатированный как массив IP-адресов и/или CIDR.

[]

по умолчанию ['firezone']['phoenix']['private_clients']

Список HTTP-клиентов частной сети, отформатированный в виде массива IP-адресов и/или CIDR.

[]

default['firezone']['wireguard']['enabled']

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

ИСТИНА

default['firezone']['wireguard']['log_directory']

Каталог журнала для связанного управления WireGuard.

“#{узел['firezone']['log_directory']}/wireguard”

default['firezone']['wireguard']['log_rotation']['file_maxbytes']

Максимальный размер файла журнала WireGuard.

104857600

default['firezone']['wireguard']['log_rotation']['num_to_keep']

Количество файлов журнала WireGuard, которые необходимо сохранить.

10

default['firezone']['wireguard']['interface_name']

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

WG-firezone'

default['firezone']['wireguard']['port']

Порт прослушивания WireGuard.

51820

default['firezone']['wireguard']['mtu']

MTU интерфейса WireGuard для этого сервера и для конфигураций устройств.

1280

default['firezone']['wireguard']['конечная точка']

Конечная точка WireGuard для использования для создания конфигураций устройств. Если ноль, по умолчанию используется общедоступный IP-адрес сервера.

ноль

default['firezone']['wireguard']['dns']

WireGuard DNS для использования для сгенерированных конфигураций устройств.

1.1.1.1, 1.0.0.1 футов

default['firezone']['wireguard']['allowed_ips']

Разрешенные IP-адреса WireGuard для использования для сгенерированных конфигураций устройств.

0.0.0.0/0, ::/0'

default['firezone']['wireguard']['persistent_keepalive']

Параметр PersistentKeepalive по умолчанию для сгенерированных конфигураций устройств. Значение 0 отключает.

0

по умолчанию ['firezone']['wireguard']['ipv4']['enabled']

Включите или отключите IPv4 для сети WireGuard.

ИСТИНА

default['firezone']['wireguard']['ipv4']['masquerade']

Включите или отключите маскировку для пакетов, выходящих из туннеля IPv4.

ИСТИНА

по умолчанию ['firezone']['wireguard']['ipv4']['сеть']

Пул IPv4-адресов сети WireGuard.

10.3.2.0/24 ′

default['firezone']['wireguard']['ipv4']['адрес']

IPv4-адрес интерфейса WireGuard. Должен находиться в пуле адресов WireGuard.

10.3.2.1 '

по умолчанию ['firezone']['wireguard']['ipv6']['enabled']

Включите или отключите IPv6 для сети WireGuard.

ИСТИНА

default['firezone']['wireguard']['ipv6']['masquerade']

Включите или отключите маскировку для пакетов, выходящих из туннеля IPv6.

ИСТИНА

по умолчанию ['firezone']['wireguard']['ipv6']['сеть']

Пул IPv6-адресов сети WireGuard.

fd00::3:2:0/120′

default['firezone']['wireguard']['ipv6']['адрес']

IPv6-адрес интерфейса WireGuard. Должен находиться в пределах пула адресов IPv6.

fd00::3:2:1'

по умолчанию ['firezone']['runit']['svlogd_bin']

Запустите svlogd расположение bin.

"#{узел['firezone']['install_directory']}/embedded/bin/svlogd"

default['firezone']['ssl']['directory']

Каталог SSL для хранения сгенерированных сертификатов.

/var/opt/firezone/ssl'

default['firezone']['ssl']['email_address']

Адрес электронной почты для самоподписанных сертификатов и уведомлений об обновлении протокола ACME.

you@example.com'

по умолчанию ['firezone']['ssl']['acme']['enabled']

Включите ACME для автоматической подготовки SSL-сертификата. Отключите это, чтобы Nginx не прослушивал порт 80. См. здесь для получения дополнительных инструкций.

НЕПРАВДА

default['firezone']['ssl']['acme']['сервер']

Сервер ACME для выпуска/обновления сертификата. Может быть любым действительный сервер acme.sh

letsencrypt

default['firezone']['ssl']['acme']['keylength']

Укажите тип и длину ключа для SSL-сертификатов. Видеть здесь

ЕС-256

default['firezone']['ssl']['сертификат']

Путь к файлу сертификата для вашего полного доменного имени. Переопределяет настройку ACME выше, если она указана. Если и ACME, и this равны нулю, будет сгенерирован самозаверяющий сертификат.

ноль

default['firezone']['ssl']['certificate_key']

Путь к файлу сертификата.

ноль

по умолчанию ['firezone']['ssl']['ssl_dhparam']

nginx SSL dh_param.

ноль

default['firezone']['ssl']['country_name']

Название страны для самозаверяющего сертификата.

НАС'

default['firezone']['ssl']['state_name']

Имя состояния для самозаверяющего сертификата.

CA '

default['firezone']['ssl']['locality_name']

Имя местоположения для самозаверяющего сертификата.

Сан-Франциско'

default['firezone']['ssl']['company_name']

Самоподписанный сертификат с названием компании.

Моя компания'

default['firezone']['ssl']['organizational_unit_name']

Название организационного подразделения для самозаверяющего сертификата.

Операции

default['firezone']['ssl']['ciphers']

Шифры SSL для использования nginx.

ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA’

по умолчанию ['firezone']['ssl']['fips_ciphers']

Шифры SSL для режима FIP.

FIPS@STRENGTH:!aNULL:!eNULL'

default['firezone']['ssl']['протоколы']

Используемые протоколы TLS.

TLSv1 TLSv1.1 TLSv1.2'

по умолчанию ['firezone']['ssl']['session_cache']

Кэш сеанса SSL.

общий:SSL:4m'

по умолчанию ['firezone']['ssl']['session_timeout']

Тайм-аут сеанса SSL.

5 м '

по умолчанию['firezone']['robots_allow']

роботы nginx позволяют.

/ '

по умолчанию['firezone']['robots_disallow']

nginx robots запрещает.

ноль

default['firezone']['outbound_email']['from']

Исходящая электронная почта с адреса.

ноль

default['firezone']['outbound_email']['provider']

Поставщик услуг исходящей электронной почты.

ноль

default['firezone']['outbound_email']['configs']

Конфигурации провайдера исходящей почты.

см. omnibus/cookbooks/firezone/attributes/default.rb

по умолчанию ['firezone']['телеметрия']['включено']

Включите или отключите анонимную телеметрию продукта.

ИСТИНА

default['firezone']['connectivity_checks']['enabled']

Включите или отключите службу проверки подключения Firezone.

ИСТИНА

default['firezone']['connectivity_checks']['interval']

Интервал между проверками подключения в секундах.

3_600



________________________________________________________________

 

Расположение файлов и каталогов

 

Здесь вы найдете список файлов и каталогов, связанных с типичной установкой Firezone. Они могут измениться в зависимости от изменений в вашем файле конфигурации.



путь

описание

/var/opt/пожарная зона

Каталог верхнего уровня, содержащий данные и сгенерированную конфигурацию для связанных сервисов Firezone.

/опт/пожарная зона

Каталог верхнего уровня, содержащий встроенные библиотеки, двоичные файлы и файлы времени выполнения, необходимые для Firezone.

/usr/bin/firezone-ctl

Утилита firezone-ctl для управления вашей установкой Firezone.

/etc/systemd/system/firezone-runsvdir-start.service

Файл модуля systemd для запуска процесса супервизора Firezone запускает vdir.

/etc/firezone

Файлы конфигурации пожарной зоны.



__________________________________________________________

 

Шаблоны брандмауэра

 

Эта страница была пуста в документах

 

_____________________________________________________________

 

Шаблон брандмауэра Nftables

 

Следующий шаблон брандмауэра nftables можно использовать для защиты сервера, на котором работает Firezone. Шаблон делает некоторые предположения; вам может потребоваться настроить правила в соответствии с вашим вариантом использования:

  • Интерфейс WireGuard называется wg-firezone. Если это не так, измените переменную DEV_WIREGUARD, чтобы она соответствовала параметру конфигурации по умолчанию ['firezone']['wireguard']['interface_name'].
  • WireGuard прослушивает порт 51820. Если вы не используете порт по умолчанию, измените переменную WIREGUARD_PORT.
  • На сервер будет разрешен только следующий входящий трафик:
    • SSH (TCP-порт 22)
    • HTTP (TCP-порт 80)
    • HTTPS (TCP-порт 443)
    • WireGuard (UDP-порт WIREGUARD_PORT)
    • UDP traceroute (UDP порт 33434-33524, скорость ограничена 500/секунду)
    • ICMP и ICMPv6 (скорость ответов ping/ping ограничена 2000 в секунду)
  • С сервера будет разрешен только следующий исходящий трафик:
    • DNS (UDP и TCP порт 53)
    • HTTP (TCP-порт 80)
    • NTP (UDP порт 123)
    • HTTPS (TCP-порт 443)
    • Отправка SMTP (порт TCP 587)
    • UDP traceroute (UDP порт 33434-33524, скорость ограничена 500/секунду)
  • Непревзойденный трафик будет зарегистрирован. Правила, используемые для ведения журнала, отделены от правил отбрасывания трафика и имеют ограничение по скорости. Удаление соответствующих правил ведения журнала не повлияет на трафик.

Управляемые правила пожарной зоны

Firezone настраивает свои собственные правила nftables для разрешения/отклонения трафика к пунктам назначения, настроенным в веб-интерфейсе, и для обработки исходящего NAT для клиентского трафика.

Применение приведенного ниже шаблона брандмауэра на уже работающем сервере (не во время загрузки) приведет к очистке правил Firezone. Это может иметь последствия для безопасности.

Чтобы обойти это, перезапустите службу phoenix:

firezone-ctl перезапустить феникс

Базовый шаблон брандмауэра

#!/usr/sbin/nft -f

 

## Очистить/удалить все существующие правила

очистить набор правил

 

################################ ПЕРЕМЕННЫЕ ################## ###############

## Имя интерфейса Интернет/WAN

определить DEV_WAN = eth0

 

## Имя интерфейса WireGuard

определить DEV_WIREGUARD = wg-firezone

 

## Порт прослушивания WireGuard

определить WIREGUARD_PORT = 51820

############################## ПЕРЕМЕННЫЕ КОНЕЦ #################### ############

 

# Основная таблица фильтрации семейства инета

таблица инет фильтр {

 

 # Правила переадресации трафика

 # Эта цепочка обрабатывается перед прямой цепочкой Firezone

 цепочка вперед {

   type filter фильтр приоритета перехвата вперед – 5; политика принять

 }

 

 # Правила для входящего трафика

 цепочка ввода {

   тип filter фильтр приоритета ввода хука; удаление политики

 

   ## Разрешить входящий трафик на петлевой интерфейс

   если ло \

     принимать \

     комментарий «Разрешить весь трафик через петлевой интерфейс»

 

   ## Разрешить установленные и связанные соединения

   ct состояние установлено, родственно \

     принимать \

     комментарий «Разрешить установленные/связанные соединения»

 

   ## Разрешить входящий трафик WireGuard

   IIF $DEV_WAN UDP-порт $WIREGUARD_PORT \

     прилавок \

     принимать \

     комментарий «Разрешить входящий трафик WireGuard»

 

   ## Регистрировать и отбрасывать новые не-SYN-пакеты TCP

   tcp flags != Состояние синхронизации новое \

     предельная ставка 100/мин взрыв 150 пакеты \

     префикс журнала «IN — новый !SYN:» \

     комментарий «Ведение журнала ограничения скорости для новых подключений, для которых не установлен флаг SYN TCP»

   tcp flags != Состояние синхронизации новое \

     прилавок \

     уронить \

     комментарий «Отбрасывать новые подключения, для которых не установлен флаг SYN TCP»

 

   ## Регистрировать и отбрасывать TCP-пакеты с недопустимым установленным флагом fin/syn

   флаги tcp & (fin|syn) == (fin|syn) \

     предельная ставка 100/мин взрыв 150 пакеты \

     префикс журнала «IN – TCP FIN|SIN:» \

     комментарий «Ведение журнала ограничения скорости для TCP-пакетов с недопустимым установленным флагом fin/syn»

   флаги tcp & (fin|syn) == (fin|syn) \

     прилавок \

     уронить \

     комментарий «Отбрасывать TCP-пакеты с неверным установленным флагом fin/syn»

 

   ## Регистрировать и отбрасывать TCP-пакеты с неверным установленным флагом syn/rst

   флаги tcp & (syn|rst) == (syn|rst) \

     предельная ставка 100/мин взрыв 150 пакеты \

     префикс журнала «ВХОД – TCP SYN|RST:» \

     комментарий «Ведение журнала ограничения скорости для TCP-пакетов с недопустимым установленным флагом syn/rst»

   флаги tcp & (syn|rst) == (syn|rst) \

     прилавок \

     уронить \

     комментарий «Отбрасывать TCP-пакеты с неверным установленным флагом syn/rst»

 

   ## Регистрировать и удалять недопустимые флаги TCP

   флаги tcp & (fin|syn|rst|psh|ack|urg) < (fin) \

     предельная ставка 100/мин взрыв 150 пакеты \

     префикс журнала «ИН-ФИН:» \

     комментарий «Ведение журнала ограничения скорости для недопустимых флагов TCP (fin|syn|rst|psh|ack|urg) < (fin)»

   флаги tcp & (fin|syn|rst|psh|ack|urg) < (fin) \

     прилавок \

     уронить \

     комментарий «Отбрасывать TCP-пакеты с флагами (fin|syn|rst|psh|ack|urg) < (fin)»

 

   ## Регистрировать и удалять недопустимые флаги TCP

   флаги tcp & (fin|syn|rst|psh|ack|urg) == (fin|psh|urg) \

     предельная ставка 100/мин взрыв 150 пакеты \

     префикс журнала «В – ФИН|ПШ|УРГ:» \

     комментарий «Ведение журнала ограничения скорости для недопустимых флагов TCP (fin|syn|rst|psh|ack|urg) == (fin|psh|urg)»

   флаги tcp & (fin|syn|rst|psh|ack|urg) == (fin|psh|urg) \

     прилавок \

     уронить \

     комментарий «Отбрасывать пакеты TCP с флагами (fin|syn|rst|psh|ack|urg) == (fin|psh|urg)»

 

   ## Отбрасывать трафик с неверным состоянием подключения

   ct состояние недействительно \

     предельная ставка 100/мин взрыв 150 пакеты \

     log помечает все префиксы «В – Неверно:» \

     комментарий «Регистрация ограничения скорости для трафика с недопустимым состоянием подключения»

   ct состояние недействительно \

     прилавок \

     уронить \

     комментарий «Отбрасывать трафик с недопустимым состоянием подключения»

 

   ## Разрешить ping/ping-ответы IPv4, но ограничить скорость до 2000 PPS

   ip протокол icmp тип icmp {эхо-ответ, эхо-запрос} \

     предельная ставка 2000/второй \

     прилавок \

     принимать \

     комментарий «Разрешить входящее эхо IPv4 (ping) ограничено 2000 PPS»

 

   ## Разрешить все другие входящие IPv4 ICMP

   ip протокол icmp \

     прилавок \

     принимать \

     комментарий «Разрешить все другие IPv4 ICMP»

 

   ## Разрешить ping/ping-ответы IPv6, но ограничить скорость до 2000 PPS

   icmpv6 тип {эхо-ответ, эхо-запрос} \

     предельная ставка 2000/второй \

     прилавок \

     принимать \

     комментарий «Разрешить входящее эхо IPv6 (ping) ограничено 2000 PPS»

 

   ## Разрешить все другие входящие IPv6 ICMP

   мета l4proto { icmpv6 } \

     прилавок \

     принимать \

     комментарий «Разрешить все другие IPv6 ICMP»

 

   ## Разрешить входящие UDP-порты traceroute, но не более 500 PPS

   UDP-порт 33434-33524\

     предельная ставка 500/второй \

     прилавок \

     принимать \

     комментарий «Разрешить входящую трассировку UDP, ограниченную 500 PPS»

 

   ## Разрешить входящий SSH

   TCP-порт SSH кт состояние новое \

     прилавок \

     принимать \

     комментарий «Разрешить входящие SSH-соединения»

 

   ## Разрешить входящие HTTP и HTTPS

   tcp dport { http, https } ct состояние новое \

     прилавок \

     принимать \

     комментарий «Разрешить входящие соединения HTTP и HTTPS»

 

   ## Зарегистрируйте любой несопоставленный трафик, но ограничьте скорость регистрации до 60 сообщений в минуту.

   ## Политика по умолчанию будет применяться к несовпадающему трафику

   предельная ставка 60/мин взрыв 100 пакеты \

     префикс журнала «В – Сбросить:» \

     комментарий «Записывать любой несопоставленный трафик»

 

   ## Считаем непарный трафик

   прилавок \

     комментарий «Подсчитайте любой непарный трафик»

 }

 

 # Правила вывода трафика

 выход цепи {

   фильтр приоритета вывода обработчика типа фильтра; удаление политики

 

   ## Разрешить исходящий трафик на петлевой интерфейс

   о если ло \

     принимать \

     комментарий «Разрешить весь трафик на петлевой интерфейс»

 

   ## Разрешить установленные и связанные соединения

   ct состояние установлено, родственно \

     прилавок \

     принимать \

     комментарий «Разрешить установленные/связанные соединения»

 

   ## Разрешить исходящий трафик WireGuard перед разрывом соединений с плохим состоянием

   ойф $DEV_WAN удп спорт $WIREGUARD_PORT \

     прилавок \

     принимать \

     комментарий «Разрешить исходящий трафик WireGuard»

 

   ## Отбрасывать трафик с неверным состоянием подключения

   ct состояние недействительно \

     предельная ставка 100/мин взрыв 150 пакеты \

     log помечает все префиксы «ВЫХОД – Недействительно:» \

     комментарий «Регистрация ограничения скорости для трафика с недопустимым состоянием подключения»

   ct состояние недействительно \

     прилавок \

     уронить \

     комментарий «Отбрасывать трафик с недопустимым состоянием подключения»

 

   ## Разрешить все остальные исходящие IPv4 ICMP

   ip протокол icmp \

     прилавок \

     принимать \

     комментарий «Разрешить все типы IPv4 ICMP»

 

   ## Разрешить все остальные исходящие IPv6 ICMP

   мета l4proto { icmpv6 } \

     прилавок \

     принимать \

     комментарий «Разрешить все типы IPv6 ICMP»

 

   ## Разрешить исходящие UDP-порты traceroute, но не более 500 PPS

   UDP-порт 33434-33524\

     предельная ставка 500/второй \

     прилавок \

     принимать \

     комментарий «Разрешить исходящий маршрут трассировки UDP, ограниченный 500 PPS»

 

   ## Разрешить исходящие соединения HTTP и HTTPS

   tcp dport { http, https } ct состояние новое \

     прилавок \

     принимать \

     комментарий «Разрешить исходящие соединения HTTP и HTTPS»

 

   ## Разрешить отправку исходящего SMTP

   tcp dport отправка ct состояние новое \

     прилавок \

     принимать \

     комментарий «Разрешить отправку исходящего SMTP»

 

   ## Разрешить исходящие DNS-запросы

   UDP-порт 53 \

     прилавок \

     принимать \

     комментарий «Разрешить исходящие DNS-запросы UDP»

   TCP-порт 53 \

     прилавок \

     принимать \

     комментарий «Разрешить исходящие запросы TCP DNS»

 

   ## Разрешить исходящие запросы NTP

   UDP-порт 123 \

     прилавок \

     принимать \

     комментарий «Разрешить исходящие запросы NTP»

 

   ## Зарегистрируйте любой несопоставленный трафик, но ограничьте скорость регистрации до 60 сообщений в минуту.

   ## Политика по умолчанию будет применяться к несовпадающему трафику

   предельная ставка 60/мин взрыв 100 пакеты \

     префикс журнала «УХОД – падение:» \

     комментарий «Записывать любой несопоставленный трафик»

 

   ## Считаем непарный трафик

   прилавок \

     комментарий «Подсчитайте любой непарный трафик»

 }

 

}

 

# Основная таблица фильтрации NAT

таблица инет физ {

 

 # Правила пре-маршрутизации NAT-трафика

 предварительная маршрутизация цепи {

   type nat hook prerouting priority dstnat; политика принять

 }

 

 # Правила пост-маршрутизации NAT-трафика

 # Эта таблица обрабатывается перед цепочкой пост-маршрутизации Firezone

 посттрассировка цепи {

   тип nat hook приоритет постмаршрутизации srcnat – 5; политика принять

 }

 

}

Применение

Брандмауэр должен храниться в соответствующем месте для работающего дистрибутива Linux. Для Debian/Ubuntu это /etc/nftables.conf, а для RHEL — /etc/sysconfig/nftables.conf.

nftables.service необходимо настроить для запуска при загрузке (если это еще не сделано):

systemctl включить nftables.service

При внесении каких-либо изменений в шаблон брандмауэра синтаксис можно проверить, выполнив команду проверки:

nft -f /путь/к/nftables.conf -c

Убедитесь, что брандмауэр работает должным образом, поскольку некоторые функции nftables могут быть недоступны в зависимости от версии, работающей на сервере.



_______________________________________________________________



Телеметрия

 

В этом документе представлен обзор телеметрии, которую Firezone собирает с вашего собственного экземпляра, и способы ее отключения.

Почему Firezone собирает телеметрию

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

Телеметрия, которую мы собираем, призвана ответить на следующие вопросы:

  • Сколько людей устанавливают, используют и прекращают использование Firezone?
  • Какие функции наиболее ценны, а какие бесполезны?
  • Какая функциональность нуждается в наибольшем улучшении?
  • Когда что-то ломается, почему это сломалось и как мы можем предотвратить это в будущем?

Как мы собираем телеметрию

В Firezone есть три основных места, где собирается телеметрия:

  1. Пакетная телеметрия. Включает такие события, как установка, удаление и обновление.
  2. Телеметрия CLI от команд firezone-ctl.
  3. Телеметрия продукта, связанная с веб-порталом.

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

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

Firezone хранит телеметрию в собственном экземпляре PostHog, работающем в частном кластере Kubernetes, доступном только команде Firezone. Вот пример события телеметрии, которое отправляется из вашего экземпляра Firezone на наш сервер телеметрии:

{

   "я бы": “0182272d-0b88-0000-d419-7b9a413713f1”,

   «отметка времени»: “2022-07-22T18:30:39.748000+00:00”,

   "событие": «fz_http_started»,

   «отличный_id»: “1ec2e794-1c3e-43fc-a78f-1db6d1a37f54”,

   "характеристики": {

       «$geoip_city_name»: «Эшберн»,

       «$geoip_content_code»: «нет данных»,

       «$geoip_content_name»: "Северная Америка",

       «$geoip_country_code»: "НАС",

       «$geoip_country_name»: "Соединенные Штаты",

       “$геоip_широта”: 39.0469,

       «$geoip_longitude»: -77.4903,

       «$geoip_postal_code»: "20149",

       «$geoip_subdivision_1_code»: «ВА»,

       «$geoip_subdivision_1_name»: «Вирджиния»,

       «$geoip_time_zone»: «Америка/Нью-Йорк»,

       «$ip»: "52.200.241.107",

       «$plugins_deferred»:[],

       «$plugins_failed»:[],

       «$plugins_succeeded»[

           «ГеоIP (3)»

       ],

       «отличный_id»: “1zc2e794-1c3e-43fc-a78f-1db6d1a37f54”,

       «полное доменное имя»: «awsdemo.firezone.dev»,

       «ядро_версия»: «линукс 5.13.0»,

       "Версия": "0.4.6"

   },

   «elements_chain»: ""

}

Как отключить телеметрию

ЗАМЕТКА

Команда разработчиков FireZone полагается об аналитике продуктов, чтобы сделать Firezone лучше для всех. Оставить телеметрию включенной — это самый ценный вклад, который вы можете внести в развитие Firezone. Тем не менее, мы понимаем, что у некоторых пользователей более высокие требования к конфиденциальности или безопасности, и они предпочли бы вообще отключить телеметрию. Если это вы, продолжайте читать.

Телеметрия включена по умолчанию. Чтобы полностью отключить телеметрию продукта, установите для следующего параметра конфигурации значение false в /etc/firezone/firezone.rb и запустите sudo firezone-ctl reconfigure, чтобы применить изменения.

по умолчанию['пожарная зона']["телеметрия"]['включено'знак равно ложный

Это полностью отключит всю телеметрию продукта.