Это многостраничный печатный вид этого раздела. Нажмите что бы печатать.

Вернуться к обычному просмотру страницы.

Разное

Раздел в который вошло все остальное, которое не вошло в тематические разделы.

Конфигурация

certificates_directory: '/config/certs/'
default_redirection_url: 'https://home.example.com:8080/'
theme: 'light'

Опции

certificates_directory

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

Эта опция задает путь к каталогу, который может содержать один или несколько сертификатов, закодированных в формате X.509 PEM. Сами сертификаты должны иметь расширение .pem, .crt или .cer.

Эти сертификаты могут быть либо открытым ключом ЦС, который доверяет данному сертификату и любому подписанному им сертификату, либо отдельным сертификатом листа.

default_redirection_url

URL перенаправления по умолчанию - это URL, на который перенаправляются пользователи, когда Authelia не может определить целевой URL, на который направлялся пользователь.

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

default_2fa_method

Устанавливает метод второго фактора по умолчанию для пользователей. Это должно быть пустое значение или один из включенных методов. Для новых пользователей по умолчанию будет выбран этот метод. Кроме того, если для пользователя был выбран метод webauthn, а у него был выбран метод totp, и метод totp был отключен в конфигурации, метод пользователя будет автоматически обновлен до метода webauthn.

Варианты:

  • totp
  • webauthn
  • mobile_push

theme

В настоящее время для Authelia доступно 3 темы:

  • light (по умолчанию)
  • darck
  • gray

Чтобы включить автоматическое переключение между темами, вы можете установить для темы значение auto. Тема будет установлена на темную или светлую в зависимости от системных предпочтений пользователя, которые определяются с помощью медиа-запросов.

1 - Server в Authelia

Раздел Server в конфигурации Authelia определяет параметры работы сервера, включая сетевые настройки, безопасность и управление ресурсами. Это основа для развертывания Authelia в production-среде.

Ключевые функции настроек Server

Настройка Описание Важность
address Интерфейс и порт прослушивания 🔥 Критично
tls Настройки HTTPS (сертификаты) 🔥 Критично
headers Безопасность HTTP-заголовков 🔐 Высокая
buffers Оптимизация производительности ⚡ Средняя
timeouts Защита от DDoS/подвешенных сессий 🛡️ Высокая
endpoints Управление служебными API 🔧 Опционально

Конфигурация

server:
  address: 'tcp://:9091/'
  disable_healthcheck: false
  tls:
    key: ''
    certificate: ''
    client_certificates: []
  headers:
    csp_template: ''
  buffers:
    read: 4096
    write: 4096
  timeouts:
    read: '6s'
    write: '6s'
    idle: '30s'
  endpoints:
    enable_pprof: false
    enable_expvars: false
    authz: {} ## See the dedicated "Server Authz Endpoints" configuration guide.
    rate_limits: {} ## See the dedicated "Server Endpoint Rate Limits" configuration guide.

Детальный разбор параметров

Базовые настройки (address, disable_healthcheck)


server:
  address: 'tcp://0.0.0.0:9091'  # Слушать все интерфейсы на порту 9091
  disable_healthcheck: false       # Включить эндпоинт /healthcheck

Зачем:

  • address: Определяет, откуда можно подключиться к Authelia.
  • healthcheck: Нужен для мониторинга работы (Kubernetes, Docker Swarm).

Настройки TLS (HTTPS)

tls:
  key: /etc/ssl/private/key.pem         # Приватный ключ
  certificate: /etc/ssl/certs/cert.pem  # Сертификат
  client_certificates: []               # mTLS (опционально)

Зачем:

  • Без TLS пароли и сессии передаются в открытом виде.
  • Важно: В production всегда используйте TLS (например, с Let’s Encrypt).

Безопасность заголовков (headers)


headers:
  csp_template: "default-src 'self'"  # Content Security Policy

Зачем:

  • Защита от XSS-атак через CSP.
  • Рекомендуемый шаблон для strict-режима:

        csp_template: "default-src 'none'; script-src 'self'; style-src 'self'; font-src 'self'; img-src 'self' data:; connect-src 'self'"

Оптимизация (buffers, timeouts)


buffers:
  read: 4096   # Размер буфера чтения (байт)
  write: 4096  # Размер буфера записи

timeouts:
  read: '6s'   # Таймаут чтения запроса
  write: '6s'  # Таймаут отправки ответа
  idle: '30s'  # Таймаут неактивного соединения

####Зачем:

  • buffers: Баланс между потреблением RAM и производительностью.
  • timeouts: Защита от Slowloris-атак и “подвешенных” сессий.

Служебные эндпоинты (endpoints)


endpoints:
  enable_pprof: false    # Отключить debug-эндпоинты (/debug/pprof)
  enable_expvars: false  # Отключить метрики runtime (/debug/vars)
  authz: {}             # Настройки авторизации для API
  rate_limits: {}       # Лимиты запросов к API

Зачем:

  • pprof/expvars: Полезны для отладки, но опасны в production.
  • rate_limits: Защита API от брутфорса.

Пример production-конфигурации


server:
  address: 'tcp://127.0.0.1:9091'  # Только локальный доступ + Nginx/Traefik
  tls:
    certificate: /etc/letsencrypt/live/example.com/fullchain.pem
    key: /etc/letsencrypt/live/example.com/privkey.pem
  headers:
    csp_template: "default-src 'self'; script-src 'none'"
  timeouts:
    read: '10s'
    write: '15s'
    idle: '1m'

Частые ошибки и решения

Проблема Решение
Authelia не запускается на порту Проверьте address и отсутствие конфликта портов (netstat -tulpn)
Ошибки HTTPS (ERR_SSL_PROTOCOL_ERROR) Убедитесь, что сертификаты не повреждены и имеют права 400
Медленные ответы Увеличьте buffers (например, до 8192)
Атаки на /debug/pprof Всегда enable_pprof: false в production

Интеграция с обратным прокси (Nginx/Traefik)

Для максимальной безопасности:

Настройте Authelia на 127.0.0.1:

address: 'tcp://127.0.0.1:9091'

В Nginx добавьте проксирование:


    location /authelia {
      proxy_pass http://127.0.0.1:9091;
      proxy_set_header X-Real-IP $remote_addr;
    }

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

authelia validate-config --config /etc/authelia/configuration.yml

Ожидаемый вывод:

Configuration parsed and validated successfully!

2 - Server Authz Endpoints

В Authelia параметр Server Authz Endpoints (или server.authz.endpoints) в конфигурации отвечает за настройку авторизационных (authorization) эндпоинтов, которые определяют, какие HTTP-запросы могут быть обработаны и какие политики применяются к ним.

Назначение Server Authz Endpoints

Этот раздел конфигурации позволяет контролировать:

  • Какие HTTP-методы разрешены (GET, POST, PUT, DELETE и т. д.).
  • Какие URL-пути защищены (например, /api, /admin).
  • Какие политики применяются (например, one_factor, two_factor, bypass, deny).

Конфигурация

server:
  endpoints:
    authz:
      forward-auth:
        implementation: 'ForwardAuth'
        authn_strategies:
          - name: 'HeaderAuthorization'
            schemes:
              - 'Basic'
            scheme_basic_cache_lifespan: 0
          - name: 'CookieSession'
      ext-authz:
        implementation: 'ExtAuthz'
        authn_strategies:
          - name: 'HeaderAuthorization'
            schemes:
              - 'Basic'
            scheme_basic_cache_lifespan: 0
          - name: 'CookieSession'
      auth-request:
        implementation: 'AuthRequest'
        authn_strategies:
          - name: 'HeaderAuthorization'
            schemes:
              - 'Basic'
            scheme_basic_cache_lifespan: 0
          - name: 'CookieSession'
      legacy:
        implementation: 'Legacy'

Опции

name

Первый уровень под директивой authz - это имя конечной точки. В примере это имена forward-auth, ext-authz, auth-request и legacy.

Имя коррелирует с путем к конечной точке. Все конечные точки начинаются с /api/authz/ и заканчиваются именем. В примере конечная точка forward-auth имеет полный путь /api/authz/forward-auth.

Допустимыми символами для имени являются буквенно-цифровые символы, а также -, _ и /. Они ДОЛЖНЫ начинаться и заканчиваться буквенно-цифровым символом.

implementation

Базовая реализация для конечной точки. Допустимые значения с учетом регистра: ForwardAuth, ExtAuthz, AuthRequest и Legacy.

authn_strategies

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

name

Имя стратегии. Допустимые значения с учетом регистра: CookieSession, HeaderAuthorization, HeaderProxyAuthorization, HeaderAuthRequestProxyAuthorization и HeaderLegacy.

schemes

Список схем, разрешенных для этой конечной точки. Варианты: Basic и Bearer. Эта опция применима только к стратегиям HeaderAuthorization, HeaderProxyAuthorization и HeaderAuthRequestProxyAuthorization и недоступна для устаревшей конечной точки, которая использует только Basic.

scheme_basic_cache_lifespan

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

3 - Server Endpoint Rate Limits

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

Конфигурация

server:
  endpoints:
    rate_limits:
      reset_password_start:
        enable: true
        buckets:
          - period: '10 minutes'
            requests: 5
          - period: '15 minutes'
            requests: 10
          - period: '30 minutes'
            requests: 15
      reset_password_finish:
        enable: true
        buckets:
          - period: '1 minute'
            requests: 10
          - period: '2 minutes'
            requests: 15
      second_factor_totp:
        enable: true
        buckets:
          - period: '1 minute'
            requests: 30
          - period: '2 minutes'
            requests: 40
          - period: '10 minutes'
            requests: 50
      second_factor_duo:
        enable: true
        buckets:
          - period: '1 minute'
            requests: 10
          - period: '2 minutes'
            requests: 15
      session_elevation_start:
        enable: true
        buckets:
          - period: '5 minutes'
            requests: 3
          - period: '10 minutes'
            requests: 5
          - period: '1 hour'
            requests: 15
      session_elevation_finish:
        enable: true
        buckets:
          - period: '10 minutes'
            requests: 3
          - period: '20 minutes'
            requests: 5
          - period: '1 hour'
            requests: 15

Опции

enable

Включает заданную конфигурацию ограничения скорости. По умолчанию они включены.

buckets

Список отдельных buckets, которые необходимо рассмотреть для каждого запроса.

period

Настраивает период времени, на который распространяется действие токенизированного bucket.

requests

Настраивает количество запросов, к которым применяется токенизированный бакет.

reset_password_start

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

reset_password_finish

Настраивает ограничитель скорости, который применяется к конечным точкам, потребляющим токены для потока сброса пароля.

second_factor_totp

Настраивает ограничитель скорости, который применяется к представлениям кода конечной точки TOTP для потока второго фактора.

second_factor_duo

Настраивает ограничитель скорости, применяемый к конечной точке Duo / Mobile Push, которая инициализирует поток авторизации приложения для потока второго фактора.

session_elevation_start

Настраивает ограничитель скорости, применяемый к конечной точке Elevated Session, которая инициализирует генерацию кода и уведомление для потока elevated session.

session_elevation_finish

Настраивает ограничитель скорости, применяемый к конечной точке Elevated Session, которая потребляет код для потока повышенной сессии.