Разное
Раздел в который вошло все остальное, которое не вошло в тематические разделы.
Конфигурация
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:
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, которая потребляет код для потока повышенной сессии.