Hailbytes VPN з документацією щодо брандмауера Firezone

Зміст

Розпочати

Тут наведено покрокові інструкції щодо розгортання Hailbytes VPN із графічним інтерфейсом Firezone. 

Адміністратор: налаштування екземпляра сервера безпосередньо пов’язане з цією частиною.

Посібники користувача: корисні документи, які можуть навчити вас, як використовувати Firezone і вирішувати типові проблеми. Після успішного розгортання сервера перегляньте цей розділ.

Посібники для загальних конфігурацій

Розділене тунелювання: використовуйте VPN, щоб надсилати трафік лише в певні діапазони IP-адрес.

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

Зворотні тунелі: створюйте тунелі між декількома вузлами за допомогою зворотних тунелів.

Отримати підтримку

Ми раді допомогти вам, якщо вам потрібна допомога в установці, налаштуванні або використанні Hailbytes VPN.

Authentication

Перш ніж користувачі зможуть створювати або завантажувати конфігураційні файли пристрою, Firezone можна налаштувати на вимагання автентифікації. Користувачам також може знадобитися періодична повторна автентифікація, щоб зберегти активне з’єднання VPN.

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

 

Інтегруйте загальний постачальник OIDC

Параметри конфігурації, необхідні Firezone для забезпечення SSO за допомогою постачальника OIDC, наведено в прикладі нижче. У /etc/firezone/firezone.rb ви можете знайти файл конфігурації. Запустіть firezone-ctl reconfigure і firezone-ctl restart, щоб оновити програму та набрати чинності змін.

 

# Це приклад використання Google і Okta як постачальника ідентифікаційної інформації SSO.

# Кілька конфігурацій OIDC можна додати до одного екземпляра Firezone.

 

# Firezone може вимкнути VPN користувача, якщо під час спроби виявлено будь-яку помилку

# щоб оновити їхній access_token. Перевірено, що це працює для Google, Okta та

# Azure SSO і використовується для автоматичного від’єднання VPN користувача, якщо його видалено

# від постачальника OIDC. Залиште це вимкненим, якщо ваш постачальник OIDC

# має проблеми з оновленням маркерів доступу, оскільки це може неочікувано перервати a

Сеанс VPN # користувача.

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

 

default['firezone']['authentication']['oidc'] = {

  google: {

    discovery_document_uri: “https://accounts.google.com/.well-known/openid-configuration”,

    client_id: “ »,

    client_secret: “ »,

    redirect_uri: “https://instance-id.yourfirezone.com/auth/oidc/google/callback/”,

    response_type: “код”,

    scope: “відкритий профіль електронної пошти”,

    мітка: "Google"

  },

  okta: {

    discovery_document_uri: “https:// /.well-known/openid-configuration”,

    client_id: “ »,

    client_secret: “ »,

    redirect_uri: “https://instance-id.yourfirezone.com/auth/oidc/okta/callback/”,

    response_type: “код”,

    scope: “відкритий профіль електронної пошти offline_access”,

    етикетка: “Окта”

  }

}



Для інтеграції потрібні такі параметри конфігурації:

  1. discovery_document_uri: The URI конфігурації постачальника OpenID Connect який повертає документ JSON, який використовується для створення наступних запитів до цього постачальника OIDC.
  2. client_id: ідентифікатор клієнта програми.
  3. client_secret: Секрет клієнта програми.
  4. redirect_uri: вказує постачальнику OIDC, куди перенаправляти після автентифікації. Це має бути ваш Firezone EXTERNAL_URL + /auth/oidc/ /callback/ (наприклад, https://instance-id.yourfirezone.com/auth/oidc/google/callback/).
  5. response_type: встановити код.
  6. сфера: Області OIDC отримати від свого постачальника OIDC. Залежно від постачальника має бути встановлено openid email profile або openid email profile 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
  • Onelogin
  • Локальна автентифікація

 

Якщо ваш постачальник послуг ідентифікації має загальний з’єднувач OIDC і його немає в списку вище, перейдіть до його документації, щоб отримати інформацію про те, як отримати необхідні параметри конфігурації.

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

Налаштування в розділі «Параметри/безпека» можна змінити, щоб вимагати періодичної повторної автентифікації. Це може бути використано для виконання вимоги щодо регулярного входу користувачів у Firezone для продовження сеансу VPN.

Тривалість сеансу може бути від однієї години до дев’яноста днів. Установивши для цього значення Ніколи, ви можете будь-коли ввімкнути сеанси VPN. Це стандарт.

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

Користувач повинен припинити свій сеанс VPN і увійти на портал Firezone, щоб повторно автентифікувати сеанс VPN, термін дії якого минув (URL-адресу вказано під час розгортання).

Ви можете повторно автентифікувати свій сеанс, дотримуючись точних інструкцій клієнта, наведених тут.

 

Статус підключення VPN

Стовпець таблиці VPN-підключення на сторінці Користувачі відображає статус підключення користувача. Ось статуси підключення:

ENABLED – підключення ввімкнено.

ВИМКНЕНО – підключення вимкнено адміністратором або помилкою оновлення OIDC.

EXPIRED – з’єднання вимкнено через закінчення терміну дії автентифікації або через те, що користувач не ввійшов у систему вперше.

Google

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

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

Отримайте параметри конфігурації

1. Екран конфігурації OAuth

Якщо ви вперше створюєте новий ідентифікатор клієнта OAuth, вам буде запропоновано налаштувати екран згоди.

*Виберіть Внутрішній для типу користувача. Це гарантує, що лише облікові записи користувачів у вашій організації Google Workspace можуть створювати конфігурації пристрою. НЕ вибирайте External (Зовнішній), якщо ви не хочете дозволити будь-кому з дійсним обліковим записом Google створювати конфігурації пристрою.

 

На екрані інформації про програму:

  1. Назва програми: Firezone
  2. Логотип програми: Логотип Firezone (зберегти посилання як).
  3. Домашня сторінка програми: URL-адреса вашого екземпляра Firezone.
  4. Авторизовані домени: домен верхнього рівня вашого екземпляра Firezone.

 

 

2. Створіть ідентифікатори клієнта OAuth

Цей розділ базується на власній документації Google щодо налаштування OAuth 2.0.

Відвідайте Google Cloud Console Сторінка облікових даних натисніть + Створити облікові дані та виберіть ідентифікатор клієнта OAuth.

На екрані створення ідентифікатора клієнта OAuth:

  1. Встановіть Тип додатка на Веб-додаток
  2. Додайте свою EXTERNAL_URL + /auth/oidc/google/callback/ Firezone (наприклад, https://instance-id.yourfirezone.com/auth/oidc/google/callback/) як запис до авторизованих URI перенаправлення.

 

Після створення ідентифікатора клієнта OAuth вам буде надано ідентифікатор клієнта та секрет клієнта. Вони використовуватимуться разом із URI перенаправлення на наступному кроці.

Інтеграція Firezone

Редагувати /etc/firezone/firezone.rb щоб включити наведені нижче параметри:

 

# Використання Google як постачальника ідентифікаційних даних SSO

default['firezone']['authentication']['oidc'] = {

  google: {

    discovery_document_uri: “https://accounts.google.com/.well-known/openid-configuration”,

    client_id: “ »,

    client_secret: “ »,

    redirect_uri: “https://instance-id.yourfirezone.com/auth/oidc/google/callback/”,

    response_type: “код”,

    scope: “відкритий профіль електронної пошти”,

    мітка: "Google"

  }

}

 

Запустіть firezone-ctl reconfigure і firezone-ctl restart, щоб оновити програму. Тепер ви повинні побачити кнопку «Увійти за допомогою Google» у кореневій URL-адресі Firezone.

Okta

Firezone використовує загальний з’єднувач OIDC для полегшення системи єдиного входу (SSO) за допомогою Okta. Цей посібник покаже вам, як отримати наведені нижче параметри конфігурації, необхідні для інтеграції:

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

 

Інтеграція програми Okta

Цей розділ посібника базується на Документація Okta.

У консолі адміністратора перейдіть до Програми > Програми та натисніть Створити інтеграцію програми. Установіть для методу входу значення OICD – OpenID Connect, а для типу додатка – веб-додаток.

Налаштуйте ці параметри:

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

Після збереження налаштувань вам буде надано ідентифікатор клієнта, секрет клієнта та домен Okta. Ці 3 значення будуть використані на кроці 2 для налаштування Firezone.

Інтегрувати Firezone

Редагувати /etc/firezone/firezone.rb щоб включити параметри нижче. ваш URL-адреса_документа_відкриття буде /.well-known/openid-configuration додається в кінці вашого okta_domain.

 

# Використання Okta як постачальника ідентифікаційних даних SSO

default['firezone']['authentication']['oidc'] = {

  okta: {

    discovery_document_uri: “https:// /.well-known/openid-configuration”,

    client_id: “ »,

    client_secret: “ »,

    redirect_uri: “https://instance-id.yourfirezone.com/auth/oidc/okta/callback/”,

    response_type: “код”,

    scope: “відкритий профіль електронної пошти offline_access”,

    етикетка: “Окта”

  }

}

 

Запустіть firezone-ctl reconfigure і firezone-ctl restart, щоб оновити програму. Тепер ви повинні побачити кнопку «Увійти за допомогою Okta» на кореневій URL-адресі Firezone.

 

Обмежити доступ певним користувачам

Користувачі, які мають доступ до програми Firezone, можуть бути обмежені Okta. Щоб виконати це, перейдіть на сторінку призначень інтеграції додатків Firezone на консолі адміністратора Okta.

Azure Active Directory

Через загальний з’єднувач OIDC Firezone забезпечує єдиний вхід (SSO) з Azure Active Directory. Цей посібник покаже вам, як отримати наведені нижче параметри конфігурації, необхідні для інтеграції:

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

Отримати параметри конфігурації

Цей посібник взято з Документи Azure Active Directory.

 

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

  1. Назва: Firezone
  2. Підтримувані типи облікових записів: (лише каталог за замовчуванням – один клієнт)
  3. URI перенаправлення: це має бути ваша ЗОВНІШНЯ_URL-адреса firezone + /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, опенід, offline_access та профіль до необхідних дозволів.

Інтеграція Firezone

Редагувати /etc/firezone/firezone.rb щоб включити наведені нижче параметри:

 

# Використання Azure Active Directory як постачальника ідентифікаційних даних SSO

default['firezone']['authentication']['oidc'] = {

  блакитний: {

    discovery_document_uri: “https://login.microsoftonline.com/ /v2.0/.well-known/openid-configuration”,

    client_id: “ »,

    client_secret: “ »,

    redirect_uri: “https://instance-id.yourfirezone.com/auth/oidc/azure/callback/”,

    response_type: “код”,

    scope: “відкритий профіль електронної пошти offline_access”,

    мітка: «Лазурний»

  }

}

 

Запустіть firezone-ctl reconfigure і firezone-ctl restart, щоб оновити програму. Тепер ви повинні побачити кнопку «Увійти за допомогою Azure» у кореневій URL-адресі Firezone.

Як: обмежити доступ до певних учасників

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

Адміністратор

  • Конфігурувати
  • Керувати встановленням
  • модернізація
  • Усунення неполадок
  • Міркування щодо безпеки
  • Виконання запитів SQL

Конфігурувати

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

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

Повний список змінних конфігурації та їх опис див. у довіднику до файлу конфігурації.

Керувати встановленням

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

 

root@demo:~# firezone-ctl

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

Загальні команди:

  очищати

    Видаліть *усі* дані firezone і почніть з нуля.

  create-or-reset-admin

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

  допомога

    Роздрукуйте це повідомлення довідки.

  перенастроювати

    Переналаштуйте програму.

  скидання мережі

    Скидає nftables, інтерфейс WireGuard і таблицю маршрутизації до стандартних значень Firezone.

  show-config

    Показати конфігурацію, яка буде створена за допомогою reconfigure.

  розривна мережа

    Видаляє інтерфейс WireGuard і таблицю nftables firezone.

  force-cert-renewal

    Примусово оновити сертифікат зараз, навіть якщо термін його дії не минув.

  stop-cert-renewal

    Видаляє cronjob, який оновлює сертифікати.

  деінсталяція

    Закрийте всі процеси та видаліть диспетчер процесів (дані будуть збережені).

  версія

    Показати поточну версію Firezone

Команди керування сервісом:

  граціозно-вбити

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

  хуп

    Надішліть послугам HUP.

  Int

    Надішліть службам INT.

  вбивати

    Надішліть послуги ВБИТИ.

  один раз

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

  перезапуск

    Зупиніть служби, якщо вони запущені, а потім запустіть їх знову.

  список послуг

    Перелічіть усі служби (увімкнені служби позначені *.)

  старт

    Запускайте служби, якщо вони не працюють, і перезапускайте їх, якщо вони зупиняються.

  статус

    Показати статус усіх послуг.

  СТОП

    Зупиніть служби та не перезапускайте їх.

  хвіст

    Перегляньте журнали обслуговування всіх увімкнених служб.

  термін

    Надішліть послуги ТЕРМІН.

  usr1

    Надішліть послугам USR1.

  usr2

    Надішліть послугам USR2.

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

Перед оновленням Firezone необхідно припинити всі сеанси VPN, що також вимагає вимкнення веб-інтерфейсу користувача. Якщо під час оновлення щось піде не так, радимо виділити годину на технічне обслуговування.

 

Щоб покращити 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 restart, щоб перезапустити служби.

Якщо виникнуть проблеми, повідомте нас до подання заявки в службу підтримки.

Оновлення з <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. 

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

Наявна конфігурація Google OAuth

Видаліть ці рядки, що містять старі конфігурації Google OAuth, із файлу конфігурації, розташованого за адресою /etc/firezone/firezone.rb

 

default['firezone']['authentication']['google']['enabled']

default['firezone']['authentication']['google']['client_id']

default['firezone']['authentication']['google']['client_secret']

default['firezone']['authentication']['google']['redirect_uri']

 

Потім налаштуйте Google як постачальника OIDC, дотримуючись наведених тут процедур.

(Надайте інструкції з посилання)<<<<<<<<<<<<<<<<<

 

Налаштувати наявний Google OAuth 

Видаліть ці рядки, що містять старі конфігурації Okta OAuth, із файлу конфігурації, розташованого за адресою /etc/firezone/firezone.rb

 

default['firezone']['authentication']['okta']['enabled']

default['firezone']['authentication']['okta']['client_id']

default['firezone']['authentication']['okta']['client_secret']

За замовчуванням['firezone']['authentication']['okta']['site']

 

Потім налаштуйте Okta як постачальника OIDC, дотримуючись наведених тут процедур.

Оновлення з 0.3.x до >= 0.3.16

Залежно від поточних налаштувань і версії дотримуйтеся наведених нижче вказівок.

Якщо у вас уже є інтеграція з OIDC:

Для деяких постачальників OIDC оновлення до >= 0.3.16 потребує отримання маркера оновлення для області офлайн-доступу. Роблячи це, забезпечується оновлення Firezone за допомогою постачальника посвідчень і що VPN-з’єднання вимикається після видалення користувача. Попередні ітерації Firezone не мали цієї функції. У деяких випадках користувачі, видалені з вашого постачальника ідентифікаційної інформації, все ще можуть бути підключені до VPN.

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

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

Якщо це не спрацює, вам потрібно буде видалити наявну програму OAuth і повторити кроки налаштування OIDC, щоб створити нову інтеграцію програми .

У мене є інтеграція OAuth

До 0.3.11 Firezone використовував попередньо налаштовані постачальники OAuth2. 

Дотримуйтесь інструкцій тут для переходу на OIDC.

Я не інтегрував постачальника ідентифікаційної інформації

Ніяких дій не потрібно. 

Ви можете слідувати інструкціям тут щоб увімкнути SSO через постачальника OIDC.

Оновлення з 0.3.1 до >= 0.3.2

Натомість default['firezone']['external url'] замінив параметр конфігурації default['firezone']['fqdn']. 

Встановіть це як URL-адресу вашого онлайн-порталу Firezone, доступного для широкого загалу. За замовчуванням буде https:// плюс FQDN вашого сервера, якщо не визначено.

Конфігураційний файл знаходиться за адресою /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 “default['firezone']['connectivity_checks']['enabled'] = true” >> /etc/firezone/firezone.rb

echo “default['firezone']['connectivity_checks']['interval'] = 3_600” >> /etc/firezone/firezone.rb

firezone-ctl переналаштувати

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

Пошук і усунення несправностей

Перевірка журналів Firezone є розумним першим кроком для вирішення будь-яких проблем, які можуть виникнути.

Запустіть sudo firezone-ctl tail, щоб переглянути журнали Firezone.

Налагодження проблем підключення

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

Підключення до Інтернету падає, коли тунель активний

Переконайтеся, що ланцюжок FORWARD дозволяє пакети від ваших клієнтів WireGuard до місць, які ви хочете пропускати через Firezone, якщо підключення до Інтернету погіршується щоразу, коли ви активуєте свій тунель WireGuard.

 

Цього можна досягти, якщо ви використовуєте ufw, переконавшись, що політика маршрутизації за замовчуванням дозволена:

 

ubuntu@fz:~$ sudo ufw за замовчуванням дозволяє маршрутизувати

Стандартну політику маршрутизації змінено на "дозволити"

(обов’язково оновіть свої правила відповідно)

 

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

 

ubuntu@fz:~$ sudo ufw status verbose

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

Логування: увімкнено (низький)

За замовчуванням: заборонити (вхідні), дозволити (вихідні), дозволити (маршрутизовані)

Нові профілі: пропустити

 

До дії від

— —— —-

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 і полегшення автентифікації.

Дротяник

51820

всі

Загальнодоступний порт WireGuard, який використовується для сеансів VPN. (UDP)

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 status verbose

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

Логування: увімкнено (низький)

За замовчуванням: заборонити (вхідні), дозволити (вихідні), дозволити (маршрутизовані)

Нові профілі: пропустити

 

До дії від

— —— —-

22/tcp ДОЗВОЛИТИ ВХІД Будь-де

51820/udp ДОЗВОЛИТИ ВХІД Будь-де

Будь-де ДОЗВОЛИТИ 10.3.2.2

22/tcp (v6) ДОЗВОЛИТИ ВХІД Будь-де (v6)

51820/udp (v6) ДОЗВОЛИТИ ВХІД Будь-де (v6)

Це залишило б тільки 22/tcp відкритий для доступу SSH для керування сервером (необов’язково) і 51820 відкриті для встановлення тунелів WireGuard.

Виконайте запити SQL

Firezone об’єднує сервер Postgresql і відповідність psql утиліта, яку можна використовувати з локальної оболонки так:

 

/opt/firezone/embedded/bin/psql \

  -U firezone \

  -d firezone \

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

  -p 15432 \

  -c “SQL_STATEMENT”

 

Це може бути корисним для цілей налагодження.

 

Загальні завдання:

 

  • Список усіх користувачів
  • Список усіх пристроїв
  • Зміна ролі користувача
  • Резервне копіювання бази даних



Список усіх користувачів:

 

/opt/firezone/embedded/bin/psql \

  -U firezone \

  -d firezone \

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

  -p 15432 \

  -c «ВИБРАТИ * З користувачів;»



Список усіх пристроїв:

 

/opt/firezone/embedded/bin/psql \

  -U firezone \

  -d firezone \

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

  -p 15432 \

  -c «ВИБРАТИ * З пристроїв;»



Змінити роль користувача:

 

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

 

/opt/firezone/embedded/bin/psql \

  -U firezone \

  -d firezone \

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

  -p 15432 \

  -c «ОНОВИТИ користувачів SET role = 'admin' WHERE email = '[захищено електронною поштою]';”



Резервне копіювання бази даних:

 

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

 

/opt/firezone/embedded/bin/pg_dump \

  -U firezone \

  -d firezone \

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

  -p 15432 > /path/to/backup.sql

Посібники користувача

  • Додати користувачів
  • Додати пристрої
  • Правила виходу
  • Інструкції клієнта
  • Розділений тунельний VPN
  • Зворотний тунель 
  • Шлюз NAT

Додати користувачів

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

 

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


Вибравши кнопку «Додати користувача» в /users, ви можете додати користувача. Вам потрібно буде надати користувачеві адресу електронної пошти та пароль. Щоб автоматично дозволити доступ користувачам у вашій організації, Firezone також може взаємодіяти та синхронізуватися з постачальником ідентифікаційної інформації. Більш детальна інформація доступна в Перевіряти справжність. < Додайте посилання на Authenticate

Додати пристрої

Радимо вимагати від користувачів створювати власні конфігурації пристроїв, щоб закритий ключ бачили лише вони. Користувачі можуть створювати власні конфігурації пристрою, дотримуючись інструкцій на Інструкції клієнта сторінки.

 

Генерація конфігурації пристрою адміністратора

Усі конфігурації пристроїв користувача можуть створювати адміністратори Firezone. На сторінці профілю користувача, розташованій за адресою /users, виберіть опцію «Додати пристрій», щоб виконати це.

 

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

 

Ви можете надіслати користувачеві файл конфігурації WireGuard електронною поштою після створення профілю пристрою.

 

Користувачі та пристрої пов’язані. Щоб отримати додаткові відомості про те, як додати користувача, див Додати користувачів.

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

Завдяки використанню системи netfilter ядра Firezone дає змогу фільтрувати вихідні дані для визначення пакетів DROP або ACCEPT. Весь рух зазвичай дозволено.

 

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

Інструкції клієнта

Встановити та настроїти

Щоб встановити з’єднання 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 за допомогою CLI Network Manager на пристроях Linux, виконайте ці інструкції (nmcli).

ПРИМІТКА

Якщо в профілі ввімкнено підтримку IPv6, спроба імпортувати файл конфігурації за допомогою графічного інтерфейсу Менеджера мережі може завершитися помилкою з такою помилкою:

ipv6.method: метод «auto» не підтримується для WireGuard

1. Встановіть інструменти WireGuard 

Необхідно встановити утиліти користувача WireGuard. Це буде пакет під назвою wireguard або wireguard-tools для дистрибутивів Linux.

Для Ubuntu/Debian:

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

Щоб використовувати Fedora:

sudo dnf інсталювати wireguard-tools

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 файл /path/to/configuration.conf

ПРИМІТКА

Ім’я конфігураційного файлу відповідатиме з’єднанню/інтерфейсу WireGuard. Після імпорту підключення можна перейменувати, якщо необхідно:

nmcli connection modify [стара назва] connection.id [нова назва]

4. Підключити або відключити

За допомогою командного рядка підключіться до VPN наступним чином:

підключення nmcli [назва vpn]

Щоб від'єднати:

з’єднання nmcli не працює [назва vpn]

Відповідний аплет Network Manager також можна використовувати для керування з’єднанням за допомогою графічного інтерфейсу користувача.

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

Вибравши «так» для параметра автоматичного підключення, VPN-з’єднання можна налаштувати на автоматичне підключення:

 

підключення nmcli змінити підключення [ім'я vpn]. <<<<<<<<<<<<<<<<<<<<<<<

 

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

 

Щоб вимкнути автоматичне підключення, поверніть його на ні:

 

підключення nmcli змінити підключення [ім'я vpn].

 

автопідключення №

Зробіть багатофакторну автентифікацію доступною

Щоб активувати MFA, перейдіть на сторінку /user account/register mfa порталу Firezone. Використовуйте програму автентифікації, щоб відсканувати QR-код після його створення, а потім введіть шестизначний код.

Зв’яжіться з адміністратором, щоб скинути інформацію про доступ до облікового запису, якщо ви загубили свою програму автентифікації.

Розділений тунельний VPN

Цей підручник проведе вас через процес налаштування функції розділеного тунелювання WireGuard за допомогою Firezone, щоб лише трафік до певних діапазонів IP-адрес пересилався через сервер VPN.

 

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 – лише трафік до однієї IP-адреси буде направлено на сервер VPN.

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



ПРИМІТКА

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

 

2. Відновіть конфігурації WireGuard

Користувачі повинні повторно створити файли конфігурації та додати їх до рідного клієнта WireGuard, щоб оновити наявні пристрої користувача за допомогою нової конфігурації розділеного тунелю.

 

Інструкції див додати пристрій. <<<<<<<<<<< Додати посилання

Зворотний тунель

Цей посібник продемонструє, як з’єднати два пристрої за допомогою Firezone як реле. Типовим випадком використання є надання адміністратору доступу до сервера, контейнера або машини, захищеної NAT або брандмауером.

 

Вузол до вузла 

Ця ілюстрація показує простий сценарій, у якому пристрої A і B будують тунель.

 

[Вставте архітектурне зображення firezone]

 

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

 

Зауважте, що всі пристрої мають сторінку /settings/defaults, де можна налаштувати PersistentKeepalive.

 

Пристрій А

 

Дозволені IP-адреси = 10.3.2.2/32

  Це IP-адреса або діапазон IP-адрес пристрою B

PersistentKeepalive = 25

  Якщо пристрій знаходиться за NAT, це гарантує, що пристрій зможе підтримувати роботу тунелю та продовжувати отримувати пакети від інтерфейсу WireGuard. Зазвичай достатньо значення 25, але вам може знадобитися зменшити це значення залежно від середовища.



Б пристрій

 

Дозволені IP-адреси = 10.3.2.3/32

Це IP-адреса або діапазон IP-адрес пристрою A

PersistentKeepalive = 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-адрес, який ви вирішите встановити.

PersistentKeepalive = 25 

    Це гарантує, що пристрій може підтримувати тунель і продовжувати отримувати пакети від інтерфейсу WireGuard, навіть якщо він захищений NAT. У більшості випадків значення 25 є достатнім, однак, залежно від вашого оточення, вам може знадобитися зменшити цей показник.

 

Пристрій В

 

  • AllowedIPs = 10.3.2.2/32: це IP-адреса або діапазон IP-адрес пристрою A
  • PersistentKeepalive = 25

Пристрій C

 

  • AllowedIPs = 10.3.2.2/32: це IP-адреса або діапазон IP-адрес пристрою A
  • PersistentKeepalive = 25

Пристрій D

 

  • AllowedIPs = 10.3.2.2/32: це IP-адреса або діапазон IP-адрес пристрою A
  • PersistentKeepalive = 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.



варіант

description

default value

default['firezone']['external_url']

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

“https://#{node['fqdn'] || node['hostname']}”

default['firezone']['config_directory']

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

/etc/firezone'

default['firezone']['install_directory']

Каталог верхнього рівня для встановлення Firezone.

/opt/firezone'

default['firezone']['app_directory']

Каталог верхнього рівня для встановлення веб-програми Firezone.

“#{node['firezone']['install_directory']}/embedded/service/firezone”

default['firezone']['log_directory']

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

/var/log/firezone'

default['firezone']['var_directory']

Каталог верхнього рівня для файлів середовища виконання Firezone.

/var/opt/firezone'

default['firezone']['user']

Ім’я непривілейованого користувача Linux, якому належатиме більшість служб і файлів.

firezone'

default['firezone']['group']

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

firezone'

default['firezone']['admin_email']

Електронна адреса початкового користувача Firezone.

“firezone@localhost”

default['firezone']['max_devices_per_user']

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

10

default['firezone']['allow_unprivileged_device_management']

Дозволяє користувачам без прав адміністратора створювати та видаляти пристрої.

ІСТИНА

default['firezone']['allow_unprivileged_device_configuration']

Дозволяє користувачам без прав адміністратора змінювати конфігурації пристрою. Якщо вимкнено, непривілейовані користувачі не можуть змінювати всі поля пристрою, крім назви та опису.

ІСТИНА

default['firezone']['egress_interface']

Назва інтерфейсу, куди буде виходити тунельований трафік. Якщо нуль, використовуватиметься стандартний інтерфейс маршруту.

нуль

default['firezone']['fips_enabled']

Увімкніть або вимкніть режим OpenSSL FIPs.

нуль

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

Увімкніть або вимкніть журналювання через Firezone. Установіть значення false, щоб повністю вимкнути журналювання.

ІСТИНА

default['enterprise']['name']

Назва, яка використовується в кулінарній книзі Chef 'enterprise'.

firezone'

default['firezone']['install_path']

Шлях встановлення, який використовується кулінарною книгою Chef 'enterprise'. Має бути встановлено те саме, що й install_directory вище.

node['firezone']['install_directory']

default['firezone']['sysvinit_id']

Ідентифікатор, який використовується в /etc/inittab. Має бути унікальна послідовність із 1–4 символів.

SUP'

default['firezone']['authentication']['local']['enabled']

Увімкніть або вимкніть локальну автентифікацію електронної пошти/паролю.

ІСТИНА

default['firezone']['authentication']['auto_create_oidc_users']

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

ІСТИНА

default['firezone']['authentication']['disable_vpn_on_oidc_error']

Вимкніть VPN користувача, якщо під час спроби оновлення маркера OIDC виявлено помилку.

ПОМИЛКОВИЙ

default['firezone']['authentication']['oidc']

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

{}

default['firezone']['nginx']['enabled']

Увімкніть або вимкніть пакетний сервер nginx.

ІСТИНА

default['firezone']['nginx']['ssl_port']

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

443

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

Каталог для зберігання пов’язаної з Firezone конфігурації віртуального хосту nginx.

“#{node['firezone']['var_directory']}/nginx/etc”

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

Каталог для зберігання файлів журналів nginx, пов’язаних із Firezone.

“#{node['firezone']['log_directory']}/nginx”

default['firezone']['nginx']['log_rotation']['file_maxbytes']

Розмір файлу для обертання файлів журналу Nginx.

104857600

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

Кількість файлів журналу Firezone nginx, які потрібно зберегти перед видаленням.

10

default['firezone']['nginx']['log_x_forwarded_for']

Чи реєструвати заголовок Firezone nginx x-forwarded-for.

ІСТИНА

default['firezone']['nginx']['hsts_header']['enabled']

Увімкнути або вимкнути HSTS.

ІСТИНА

default['firezone']['nginx']['hsts_header']['include_subdomains']

Увімкніть або вимкніть includeSubDomains для заголовка HSTS.

ІСТИНА

default['firezone']['nginx']['hsts_header']['max_age']

Максимальний вік для заголовка HSTS.

31536000

default['firezone']['nginx']['redirect_to_canonical']

Чи перенаправляти URL-адреси на канонічне FQDN, указане вище

ПОМИЛКОВИЙ

default['firezone']['nginx']['cache']['enabled']

Увімкніть або вимкніть кеш Firezone nginx.

ПОМИЛКОВИЙ

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

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

“#{node['firezone']['var_directory']}/nginx/cache”

default['firezone']['nginx']['user']

Користувач Firezone nginx.

node['firezone']['user']

default['firezone']['nginx']['group']

Група Firezone nginx.

node['firezone']['group']

default['firezone']['nginx']['dir']

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

node['firezone']['nginx']['directory']

default['firezone']['nginx']['log_dir']

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

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

default['firezone']['nginx']['pid']

Місце для файлу nginx pid.

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

default['firezone']['nginx']['daemon_disable']

Вимкніть режим демона nginx, щоб замість цього ми могли контролювати його.

ІСТИНА

default['firezone']['nginx']['gzip']

Увімкніть або вимкніть стиснення nginx gzip.

на

default['firezone']['nginx']['gzip_static']

Увімкніть або вимкніть стиснення nginx gzip для статичних файлів.

вимкнено

default['firezone']['nginx']['gzip_http_version']

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

1.0 '

default['firezone']['nginx']['gzip_comp_level']

рівень стиснення nginx gzip.

2 '

default['firezone']['nginx']['gzip_proxied']

Вмикає або вимикає стиснення відповідей gzip для проксі-запитів залежно від запиту та відповіді.

будь-який

default['firezone']['nginx']['gzip_vary']

Вмикає або вимикає вставлення заголовка відповіді «Vary: Accept-Encoding».

вимкнено

default['firezone']['nginx']['gzip_buffers']

Встановлює кількість і розмір буферів, які використовуються для стиснення відповіді. Якщо нуль, використовується nginx за замовчуванням.

нуль

default['firezone']['nginx']['gzip_types']

Типи MIME, для яких потрібно ввімкнути стиснення gzip.

['text/plain', 'text/css','application/x-javascript', 'text/xml', 'application/xml', 'application/rss+xml', 'application/atom+xml', ' text/javascript', 'application/javascript', 'application/json']

default['firezone']['nginx']['gzip_min_length']

Мінімальна довжина файлу для увімкнення стиснення файлу gzip.

1000

default['firezone']['nginx']['gzip_disable']

Збіг агента користувача, для якого потрібно вимкнути стиснення gzip.

MSIE [1-6]\.'

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

Активує кеш-пам'ять для з'єднання з вищестоящими серверами.

на

default['firezone']['nginx']['keepalive_timeout']

Тайм-аут у секундах для підтримки активності з’єднання з вищестоящими серверами.

65

default['firezone']['nginx']['worker_processes']

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

node['cpu'] && node['cpu']['total'] ? node['cpu']['total'] : 1

default['firezone']['nginx']['worker_connections']

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

1024

default['firezone']['nginx']['worker_rlimit_nofile']

Змінює обмеження на максимальну кількість відкритих файлів для робочих процесів. Використовує nginx за замовчуванням, якщо нуль.

нуль

default['firezone']['nginx']['multi_accept']

Чи мають працівники приймати одне з’єднання за раз чи декілька.

ІСТИНА

default['firezone']['nginx']['event']

Визначає метод обробки з’єднання для використання в контексті подій nginx.

epoll'

default['firezone']['nginx']['server_tokens']

Вмикає або вимикає надсилання версії nginx на сторінках помилок і в полі заголовка відповіді «Сервер».

нуль

default['firezone']['nginx']['server_names_hash_bucket_size']

Встановлює розмір сегмента для хеш-таблиць імен серверів.

64

default['firezone']['nginx']['sendfile']

Вмикає або вимикає використання sendfile() nginx.

на

default['firezone']['nginx']['access_log_options']

Встановлює параметри журналу доступу до nginx.

нуль

default['firezone']['nginx']['error_log_options']

Встановлює параметри журналу помилок nginx.

нуль

default['firezone']['nginx']['disable_access_log']

Вимикає журнал доступу до nginx.

ПОМИЛКОВИЙ

default['firezone']['nginx']['types_hash_max_size']

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

2048

default['firezone']['nginx']['types_hash_bucket_size']

nginx типи хеш розмір відра.

64

default['firezone']['nginx']['proxy_read_timeout']

тайм-аут читання проксі nginx. Встановіть значення nil, щоб використовувати nginx за замовчуванням.

нуль

default['firezone']['nginx']['client_body_buffer_size']

розмір буфера тіла клієнта nginx. Встановіть значення nil, щоб використовувати nginx за замовчуванням.

нуль

default['firezone']['nginx']['client_max_body_size']

Максимальний розмір тіла клієнта nginx.

250 м'

default['firezone']['nginx']['default']['modules']

Вкажіть додаткові модулі nginx.

[]

default['firezone']['nginx']['enable_rate_limiting']

Увімкніть або вимкніть обмеження швидкості nginx.

ІСТИНА

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

Назва зони обмеження швидкості Nginx.

firezone'

default['firezone']['nginx']['rate_limiting_backoff']

Відмова від обмеження швидкості Nginx.

10 м'

default['firezone']['nginx']['rate_limit']

Обмеження швидкості Nginx.

10р/с'

за замовчуванням['firezone']['nginx']['ipv6']

Дозволити nginx прослуховувати запити HTTP для IPv6 на додаток до IPv4.

ІСТИНА

default['firezone']['postgresql']['enabled']

Увімкнути або вимкнути пакет Postgresql. Установіть значення false і заповніть параметри бази даних нижче, щоб використовувати власний екземпляр Postgresql.

ІСТИНА

default['firezone']['postgresql']['username']

Ім'я користувача для Postgresql.

node['firezone']['user']

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

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

“#{node['firezone']['var_directory']}/postgresql/13.3/data”

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

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

“#{node['firezone']['log_directory']}/postgresql”

default['firezone']['postgresql']['log_rotation']['file_maxbytes']

Максимальний розмір файлу журналу Postgresql перед обертанням.

104857600

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

Кількість файлів журналу Postgresql, які потрібно зберегти.

10

default['firezone']['postgresql']['checkpoint_completion_target']

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

0.5

default['firezone']['postgresql']['checkpoint_segments']

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

3

default['firezone']['postgresql']['checkpoint_timeout']

Час очікування контрольної точки Postgresql.

5 хвилин

default['firezone']['postgresql']['checkpoint_warning']

Час попередження контрольної точки Postgresql у секундах.

30-ті

default['firezone']['postgresql']['effective_cache_size']

Ефективний розмір кешу Postgresql.

128 Мб'

default['firezone']['postgresql']['listen_address']

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

127.0.0.1 '

default['firezone']['postgresql']['max_connections']

Максимальна кількість підключень Postgresql.

350

default['firezone']['postgresql']['md5_auth_cidr_addresses']

CIDR Postgresql для автентифікації md5.

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

default['firezone']['postgresql']['port']

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

15432

default['firezone']['postgresql']['shared_buffers']

Розмір спільних буферів Postgresql.

“#{(node['memory']['total'].to_i / 4) / 1024}MB”

default['firezone']['postgresql']['shmmax']

Postgresql shmmax у байтах.

17179869184

default['firezone']['postgresql']['shmall']

Postgresql shmall у байтах.

4194304

default['firezone']['postgresql']['work_mem']

Розмір робочої пам'яті Postgresql.

8 Мб'

default['firezone']['database']['user']

Визначає ім’я користувача, яке Firezone використовуватиме для підключення до БД.

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

default['firezone']['database']['password']

Якщо використовується зовнішня БД, вказує пароль, який Firezone використовуватиме для підключення до БД.

зміни мене'

default['firezone']['database']['name']

База даних, яку використовуватиме Firezone. Буде створено, якщо його не існує.

firezone'

default['firezone']['database']['host']

Хост бази даних, до якого підключатиметься Firezone.

node['firezone']['postgresql']['listen_address']

default['firezone']['database']['port']

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

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

default['firezone']['database']['pool']

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

[10, Etc.nprocessors].макс

default['firezone']['database']['ssl']

Чи підключатися до бази даних через SSL.

ПОМИЛКОВИЙ

default['firezone']['database']['ssl_opts']

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

{}

default['firezone']['database']['parameters']

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

{}

default['firezone']['database']['extensions']

Розширення бази даних для ввімкнення.

{ 'plpgsql' => істина, 'pg_trgm' => істина }

default['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.

“#{node['firezone']['log_directory']}/phoenix”

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_proxies']

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

[]

default['firezone']['phoenix']['private_clients']

Список HTTP-клієнтів приватної мережі, відформатований як масив IP-адрес та/або CIDR.

[]

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

Увімкніть або вимкніть пакетне керування WireGuard.

ІСТИНА

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

Каталог журналів для пакетного керування WireGuard.

“#{node['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']['endpoint']

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

нуль

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

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

1.1.1.1, 1.0.0.1′

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

WireGuard AllowedIPs використовувати для згенерованих конфігурацій пристроїв.

0.0.0.0/0, ::/0′

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

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

0

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

Увімкніть або вимкніть IPv4 для мережі WireGuard.

ІСТИНА

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

Увімкніть або вимкніть маскарад для пакетів, які залишають тунель IPv4.

ІСТИНА

default['firezone']['wireguard']['ipv4']['network']

Мережевий пул адрес IPv4 WireGuard.

10.3.2.0 / 24 ′

default['firezone']['wireguard']['ipv4']['address']

Адреса IPv4 інтерфейсу WireGuard. Має бути в межах пулу адрес WireGuard.

10.3.2.1 '

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

Увімкніть або вимкніть IPv6 для мережі WireGuard.

ІСТИНА

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

Увімкніть або вимкніть маскарад для пакетів, які залишають тунель IPv6.

ІСТИНА

default['firezone']['wireguard']['ipv6']['network']

Мережевий пул адрес IPv6 WireGuard.

fd00::3:2:0/120′

default['firezone']['wireguard']['ipv6']['address']

Адреса IPv6 інтерфейсу WireGuard. Має бути в межах пулу адрес IPv6.

fd00::3:2:1′

default['firezone']['runit']['svlogd_bin']

Runit svlogd bin розташування.

“#{node['firezone']['install_directory']}/embedded/bin/svlogd”

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

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

/var/opt/firezone/ssl'

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

Електронна адреса для використання для самопідписаних сертифікатів і повідомлень про оновлення протоколу ACME.

[захищено електронною поштою]"

default['firezone']['ssl']['acme']['enabled']

Увімкніть ACME для автоматичного надання сертифікатів SSL. Вимкніть це, щоб Nginx не прослуховував порт 80. Див тут для отримання додаткових інструкцій.

ПОМИЛКОВИЙ

default['firezone']['ssl']['acme']['server']

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

леценкрипт

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

Вкажіть тип і довжину ключа для сертифікатів SSL. Побачити тут

ек-256

default['firezone']['ssl']['certificate']

Шлях до файлу сертифіката для вашого FQDN. Перевизначає налаштування ACME вище, якщо вказано. Якщо і ACME, і this дорівнюють нулю, буде згенеровано самопідписаний сертифікат.

нуль

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

Шлях до файлу сертифіката.

нуль

default['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’

default['firezone']['ssl']['fips_ciphers']

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

FIPS@STRENGTH:!aNULL:!eNULL'

default['firezone']['ssl']['protocols']

Протоколи TLS для використання.

TLSv1 TLSv1.1 TLSv1.2′

default['firezone']['ssl']['session_cache']

Кеш сесії SSL.

спільний доступ:SSL:4m'

default['firezone']['ssl']['session_timeout']

Час очікування сеансу SSL.

5 м'

default['firezone']['robots_allow']

Роботи nginx дозволяють.

/'

default['firezone']['robots_disallow']

роботи nginx забороняють.

нуль

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

Вихідна електронна пошта з адреси.

нуль

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

Постачальник послуг вихідної електронної пошти.

нуль

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

Конфігурації постачальника вихідної електронної пошти.

див. omnibus/cookbooks/firezone/attributes/default.rb

default['firezone']['telemetry']['enabled']

Увімкніть або вимкніть анонімну телеметрію продукту.

ІСТИНА

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

Увімкніть або вимкніть службу перевірки підключення Firezone.

ІСТИНА

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

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

3_600



________________________________________________________________

 

Розташування файлів і каталогів

 

Тут ви знайдете список файлів і каталогів, пов’язаних із типовою інсталяцією Firezone. Вони можуть змінюватися залежно від змін у файлі конфігурації.



шлях

description

/var/opt/firezone

Каталог верхнього рівня, що містить дані та згенеровану конфігурацію для пакетних служб Firezone.

/opt/firezone

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

/usr/bin/firezone-ctl

утиліта firezone-ctl для керування встановленням Firezone.

/etc/systemd/system/firezone-runsvdir-start.service

файл модуля systemd для запуску процесу супервізора runsvdir Firezone.

/etc/firezone

Файли конфігурації 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

Firezone налаштовує власні правила nftables для дозволу/відхилення трафіку до місць призначення, налаштованих у веб-інтерфейсі, і для обробки вихідного NAT для клієнтського трафіку.

Застосування наведеного нижче шаблону брандмауера на вже запущеному сервері (не під час завантаження) призведе до очищення правил Firezone. Це може мати наслідки для безпеки.

Щоб вирішити цю проблему, перезапустіть службу Phoenix:

firezone-ctl перезапустити фенікс

Базовий шаблон брандмауера

#!/usr/sbin/nft -f

 

## Очистити/скинути всі існуючі правила

змивати набір правил

 

################################# ЗМІННІ ################## ################

## Ім'я інтерфейсу Інтернет/WAN

визначте DEV_WAN = eth0

 

## Назва інтерфейсу WireGuard

визначте DEV_WIREGUARD = wg-firezone

 

## Порт прослуховування WireGuard

визначте WIREGUARD_PORT = 51820

############################### КІНЕЦЬ ЗМІННИХ ################### ############

 

# Основна таблиця фільтрації сімейства інет

таблиця inet filter {

 

 # Правила пересилання трафіку

 # Цей ланцюжок обробляється перед прямим ланцюжком Firezone

 ланцюг вперед {

   тип фільтра гачок Пріоритетний фільтр вперед – 5; політика прийняти

 }

 

 # Правила вхідного трафіку

 ланцюговий вхід {

   тип фільтра гачок вхідний пріоритетний фільтр; падіння політики

 

   ## Дозволити вхідний трафік до інтерфейсу loopback

   iif lo \

     прийняти \

     коментар «Дозволити весь трафік із петлевого інтерфейсу»

 

   ## Дозволити встановлені та пов'язані з'єднання

   ct держава встановлена,пов'язана \

     прийняти \

     коментар «Дозволити встановлені/пов’язані з’єднання»

 

   ## Дозволити вхідний трафік WireGuard

   iif $DEV_WAN udp dport $WIREGUARD_PORT \

     лічильник \

     прийняти \

     коментар «Дозволити вхідний трафік WireGuard»

 

   ## Реєстрація та скидання нових пакетів TCP, які не є SYN

   tcp flags != syn ct state new \

     гранична ставка 100/хв 150 пакети \

     префікс журналу “IN – новий !SYN: “ \

     коментар «Реєстрація обмежень швидкості для нових з’єднань, які не мають прапора SYN TCP»

   tcp flags != syn ct state new \

     лічильник \

     падіння \

     коментар «Відкинути нові підключення, для яких не встановлено прапорець 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 flags & (syn|rst) == (syn|rst) \

     гранична ставка 100/хв 150 пакети \

     префікс журналу “IN – TCP SYN|RST: “ \

     коментар «Реєстрація обмеження швидкості для TCP-пакетів із установленим недійсним прапорцем syn/rst»

   tcp flags & (syn|rst) == (syn|rst) \

     лічильник \

     падіння \

     коментар «Відкинути пакети TCP із встановленим недійсним прапорцем syn/rst»

 

   ## Реєстрація та видалення недійсних позначок TCP

   tcp flags & (fin|syn|rst|psh|ack|urg) < (fin) \

     гранична ставка 100/хв 150 пакети \

     префікс журналу «IN – FIN:» \

     коментар «Реєстрація обмежень швидкості для недійсних позначок TCP (fin|syn|rst|psh|ack|urg) < (fin)»

   tcp flags & (fin|syn|rst|psh|ack|urg) < (fin) \

     лічильник \

     падіння \

     коментар «Відкинути TCP-пакети з прапорцями (fin|syn|rst|psh|ack|urg) < (fin)»

 

   ## Реєстрація та видалення недійсних позначок TCP

   tcp flags & (fin|syn|rst|psh|ack|urg) == (fin|psh|urg) \

     гранична ставка 100/хв 150 пакети \

     префікс журналу «IN – FIN|PSH|URG:» \

     коментар «Реєстрація обмеження швидкості для недійсних позначок TCP (fin|syn|rst|psh|ack|urg) == (fin|psh|urg)»

   tcp flags & (fin|syn|rst|psh|ack|urg) == (fin|psh|urg) \

     лічильник \

     падіння \

     коментар «Відкинути TCP-пакети з прапорцями (fin|syn|rst|psh|ack|urg) == (fin|psh|urg)»

 

   ## Зниження трафіку через недійсний стан підключення

   недійсний стан ct \

     гранична ставка 100/хв 150 пакети \

     журнал позначає всі префікси “IN – Недійсний: “ \

     коментар «Реєстрація обмеження швидкості для трафіку з недійсним станом підключення»

   недійсний стан 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 dport 33434-33524 \

     гранична ставка 500/секунда \

     лічильник \

     прийняти \

     коментар «Дозволити вхідну трасування UDP з обмеженням 500 PPS»

 

   ## Дозволити вхідний SSH

   tcp dport SSH ct стан новий \

     лічильник \

     прийняти \

     коментар «Дозволити вхідні з’єднання SSH»

 

   ## Дозволити вхідні HTTP та HTTPS

   tcp dport { http, https } ct стан новий \

     лічильник \

     прийняти \

     коментар «Дозволити вхідні з’єднання HTTP та HTTPS»

 

   ## Реєструйте будь-який незрівнянний трафік, але обмежте реєстрацію до 60 повідомлень/хвилину

   ## Політика за умовчанням буде застосована до невідповідного трафіку

   гранична ставка 60/хв 100 пакети \

     префікс журналу “IN – Drop: “ \

     коментар «Зареєструвати будь-який невідповідний трафік»

 

   ## Підрахуйте невідповідний трафік

   лічильник \

     коментар «Підрахувати будь-який невідповідний трафік»

 }

 

 # Правила вихідного трафіку

 ланцюговий вихід {

   type filter hook output filter priority; падіння політики

 

   ## Дозволити вихідний трафік до інтерфейсу петлі

   oif lo \

     прийняти \

     коментар «Дозволити весь трафік до інтерфейсу зворотного зв’язку»

 

   ## Дозволити встановлені та пов'язані з'єднання

   ct держава встановлена,пов'язана \

     лічильник \

     прийняти \

     коментар «Дозволити встановлені/пов’язані з’єднання»

 

   ## Дозволити вихідний трафік WireGuard перед розривом з’єднань із поганим станом

   oif $DEV_WAN udp спорт $WIREGUARD_PORT \

     лічильник \

     прийняти \

     коментар «Дозволити вихідний трафік WireGuard»

 

   ## Зниження трафіку через недійсний стан підключення

   недійсний стан ct \

     гранична ставка 100/хв 150 пакети \

     журнал позначає всі префікси “OUT – Недійсний: “ \

     коментар «Реєстрація обмеження швидкості для трафіку з недійсним станом підключення»

   недійсний стан ct \

     лічильник \

     падіння \

     коментар «Зниження трафіку через недійсний стан підключення»

 

   ## Дозволити всі інші вихідні IPv4 ICMP

   ip протокол icmp \

     лічильник \

     прийняти \

     коментар «Дозволити всі типи ICMP IPv4»

 

   ## Дозволити всі інші вихідні IPv6 ICMP

   мета l4proto { icmpv6 } \

     лічильник \

     прийняти \

     коментар «Дозволити всі типи ICMP IPv6»

 

   ## Дозволити вихідні UDP-порти traceroute, але обмежити 500 PPS

   udp dport 33434-33524 \

     гранична ставка 500/секунда \

     лічильник \

     прийняти \

     коментар «Дозволити вихідний UDP traceroute обмежено 500 PPS»

 

   ## Дозволити вихідні з'єднання HTTP і HTTPS

   tcp dport { http, https } ct стан новий \

     лічильник \

     прийняти \

     коментар «Дозволити вихідні з’єднання HTTP та HTTPS»

 

   ## Дозволити надсилання вихідних SMTP

   tcp dport submission ct state new \

     лічильник \

     прийняти \

     коментар «Дозволити надсилання вихідного SMTP»

 

   ## Дозволити вихідні запити DNS

   udp dport 53 \

     лічильник \

     прийняти \

     коментар «Дозволити вихідні запити UDP DNS»

   tcp dport 53 \

     лічильник \

     прийняти \

     коментар «Дозволити вихідні запити TCP DNS»

 

   ## Дозволити вихідні запити NTP

   udp dport 123 \

     лічильник \

     прийняти \

     коментар «Дозволити вихідні запити NTP»

 

   ## Реєструйте будь-який незрівнянний трафік, але обмежте реєстрацію до 60 повідомлень/хвилину

   ## Політика за умовчанням буде застосована до невідповідного трафіку

   гранична ставка 60/хв 100 пакети \

     префікс журналу “OUT – Drop: “ \

     коментар «Зареєструвати будь-який невідповідний трафік»

 

   ## Підрахуйте невідповідний трафік

   лічильник \

     коментар «Підрахувати будь-який невідповідний трафік»

 }

 

}

 

# Основна таблиця фільтрації NAT

таблиця inet nat {

 

 # Правила для попередньої маршрутизації трафіку NAT

 попередня маршрутизація ланцюга {

   тип nat пріоритет попередньої маршрутизації гака dstnat; політика прийняти

 }

 

 # Правила для пост-маршрутизації трафіку NAT

 # Ця таблиця обробляється перед ланцюгом пост-маршрутизації Firezone

 ланцюгова посттраутинг {

   тип nat hook postrouting пріоритет 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”,

   “distinct_id”: “1ec2e794-1c3e-43fc-a78f-1db6d1a37f54”,

   «властивості»: {

       “$geoip_city_name”: «Ешберн»,

       “$geoip_continent_code”: "NA",

       “$geoip_continent_name”: "Північна Америка",

       “$geoip_country_code”: "НАС",

       “$geoip_country_name”: "Сполучені Штати",

       “$geoip_latitude”: 39.0469,

       “$geoip_longitude”: -77.4903,

       “$geoip_postal_code”: "20149",

       “$geoip_subdivision_1_code”: "VA",

       “$geoip_subdivision_1_name”: «Вірджинія»,

       “$geoip_time_zone”: “Америка/Нью_Йорк”,

       «$ip»: "52.200.241.107",

       “$plugins_deferred”: [],

       «$plugins_failed»: [],

       «$plugins_succeeded»: [

           «GeoIP (3)»

       ],

       “distinct_id”: “1zc2e794-1c3e-43fc-a78f-1db6d1a37f54”,

       «fqdn»: “awsdemo.firezone.dev”,

       “kernel_version”: «Linux 5.13.0»,

       «версія»: "0.4.6"

   },

   “elements_chain”: ""

}

Як відключити телеметрію

ПРИМІТКА

Команда розробників Firezone спирається на аналітиці продуктів, щоб зробити Firezone кращим для всіх. Залишити телеметрію ввімкненою – це найцінніший внесок, який ви можете зробити в розвиток Firezone. Тим не менш, ми розуміємо, що деякі користувачі мають вищі вимоги до конфіденційності або безпеки, і вони воліють взагалі вимкнути телеметрію. Якщо це ви, продовжуйте читати.

Телеметрію ввімкнено за замовчуванням. Щоб повністю вимкнути телеметрію продукту, установіть для наступного параметра конфігурації значення false у /etc/firezone/firezone.rb і запустіть sudo firezone-ctl reconfigure, щоб отримати зміни.

за замовчуванням['firezone']["телеметрія"]["увімкнено"] = false

Це повністю вимкне всю телеметрію продукту.