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!