✨ Реорганизация структуры заметок v2.0
- Создана новая организационная структура с эмодзи-папками - Добавлена система Inbox для быстрого захвата идей - Созданы шаблоны для всех типов заметок с YAML метаданными - Перенесен весь контент из старой структуры в новую - Добавлен главный дашборд с динамическими запросами - Создано подробное руководство по использованию системы - Техническая документация реорганизована по типам Основные улучшения: ✅ Inbox-first подход для новых заметок ✅ Тематическая организация по 8 областям знаний ✅ Шаблоны с метаданными для структурированности ✅ Система связей между заметками ✅ Динамические дашборды с аналитикой ✅ Централизованная техническая документация без дублирования
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
# Authelia Authentication - Администрирование
|
||||
|
||||
## Ежедневное администрирование Authelia
|
||||
|
||||
*Документация будет дополнена процедурами администрирования*
|
||||
|
||||
## Управление пользователями
|
||||
*Добавление, изменение, удаление пользователей*
|
||||
|
||||
## Управление группами и правами
|
||||
*Настройка access control правил*
|
||||
|
||||
## Мониторинг аутентификации
|
||||
*Анализ логов входа и безопасности*
|
||||
|
||||
## Password reset процедуры
|
||||
*Сброс паролей пользователей*
|
||||
|
||||
## Управление TOTP
|
||||
*Настройка и сброс двухфакторной аутентификации*
|
||||
|
||||
## Мониторинг Redis
|
||||
*Контроль хранилища сессий*
|
||||
|
||||
## Troubleshooting
|
||||
*Решение проблем с аутентификацией*
|
||||
|
||||
## Backup пользователей
|
||||
*Резервное копирование базы пользователей*
|
||||
|
||||
## Обновления Authelia
|
||||
*Процедуры обновления сервиса*
|
||||
|
||||
---
|
||||
*Эта страница находится в разработке*
|
||||
@@ -0,0 +1,407 @@
|
||||
# Authelia Authentication - Конфигурации
|
||||
|
||||
← **[[Обзор системы|← Назад к обзору]]**
|
||||
|
||||
## Docker Compose конфигурация
|
||||
|
||||
### Основной файл: `/DOCKER/auth/docker-compose.yml`
|
||||
|
||||
```yaml
|
||||
version: '3.8'
|
||||
services:
|
||||
redis:
|
||||
image: redis:7-alpine
|
||||
container_name: auth_redis
|
||||
volumes:
|
||||
- redis_data:/data
|
||||
networks:
|
||||
- default
|
||||
command: redis-server --requirepass Ll8qlQ3rgBFo4Syq
|
||||
restart: unless-stopped
|
||||
|
||||
authelia:
|
||||
image: authelia/authelia:latest
|
||||
container_name: authelia
|
||||
depends_on:
|
||||
- redis
|
||||
volumes:
|
||||
- ./authelia:/config
|
||||
networks:
|
||||
- default
|
||||
- proxy
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.routers.authelia.rule=Host(`auth.aepif.ru`)
|
||||
- traefik.http.routers.authelia.tls.certresolver=letsencrypt
|
||||
- traefik.http.services.authelia.loadbalancer.server.port=9091
|
||||
- traefik.http.middlewares.authelia.forwardauth.address=http://authelia:9091/api/verify?rd=https://auth.aepif.ru
|
||||
- traefik.http.middlewares.authelia.forwardauth.trustForwardHeader=true
|
||||
- traefik.http.middlewares.authelia.forwardauth.authResponseHeaders=Remote-User,Remote-Groups,Remote-Name,Remote-Email
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- TZ=Europe/Moscow
|
||||
|
||||
volumes:
|
||||
redis_data:
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
default:
|
||||
driver: bridge
|
||||
```
|
||||
|
||||
## Основной файл configuration.yml
|
||||
|
||||
### Полная конфигурация: `/DOCKER/auth/authelia/configuration.yml`
|
||||
|
||||
```yaml
|
||||
---
|
||||
theme: auto
|
||||
jwt_secret: 4odTQ0TqW2Ej8m8Cm3K6Wn3VTvg09Mb2Yi4CUzuIPUsHB3fpF54+NbIAqo6+CREA
|
||||
default_redirection_url: https://notes.aepif.ru
|
||||
|
||||
server:
|
||||
host: 0.0.0.0
|
||||
port: 9091
|
||||
|
||||
log:
|
||||
level: info
|
||||
|
||||
totp:
|
||||
issuer: aepif.ru
|
||||
|
||||
authentication_backend:
|
||||
file:
|
||||
path: /config/users_database.yml
|
||||
|
||||
access_control:
|
||||
default_policy: deny
|
||||
rules:
|
||||
- domain: notes.aepif.ru
|
||||
policy: one_factor
|
||||
- domain: git.aepif.ru
|
||||
policy: bypass
|
||||
- domain: webhook.aepif.ru
|
||||
policy: bypass
|
||||
- domain: auth.aepif.ru
|
||||
policy: bypass
|
||||
|
||||
session:
|
||||
name: authelia_session
|
||||
domain: aepif.ru
|
||||
secret: 91Zc/PM0EogwZbsX0tsDGLpr4Wg7zwtQUzcp5tYP5dNdRNTlpkXBfJr9EivuD+A4
|
||||
expiration: 1h
|
||||
inactivity: 5m
|
||||
redis:
|
||||
host: redis
|
||||
port: 6379
|
||||
password: Ll8qlQ3rgBFo4Syq
|
||||
|
||||
regulation:
|
||||
max_retries: 3
|
||||
find_time: 2m
|
||||
ban_time: 5m
|
||||
|
||||
storage:
|
||||
encryption_key: sWLemnH0QNsYsYvbav59mQOWxLOeUvSl
|
||||
local:
|
||||
path: /config/db.sqlite3
|
||||
|
||||
notifier:
|
||||
filesystem:
|
||||
filename: /config/notification.txt
|
||||
```
|
||||
|
||||
### Разбор конфигурации по разделам
|
||||
|
||||
#### Server Configuration
|
||||
```yaml
|
||||
server:
|
||||
host: 0.0.0.0 # Слушать на всех интерфейсах
|
||||
port: 9091 # Внутренний порт контейнера
|
||||
```
|
||||
|
||||
#### JWT и безопасность
|
||||
```yaml
|
||||
jwt_secret: 4odTQ0TqW2Ej8m8Cm3K6Wn3VTvg09Mb2Yi4CUzuIPUsHB3fpF54+NbIAqo6+CREA
|
||||
default_redirection_url: https://notes.aepif.ru
|
||||
theme: auto # Автоматическая тема (dark/light)
|
||||
```
|
||||
|
||||
#### Logging
|
||||
```yaml
|
||||
log:
|
||||
level: info # Уровни: trace, debug, info, warn, error
|
||||
```
|
||||
|
||||
## User Database Configuration
|
||||
|
||||
### Файл пользователей: `/DOCKER/auth/authelia/users_database.yml`
|
||||
|
||||
```yaml
|
||||
users:
|
||||
admin:
|
||||
displayname: "Administrator"
|
||||
password: "$argon2id$v=19$m=65536,t=3,p=4$..." # Argon2id hash
|
||||
email: epifantsev1aa@gmail.com
|
||||
groups:
|
||||
- admins
|
||||
- users
|
||||
```
|
||||
|
||||
### Генерация паролей
|
||||
```bash
|
||||
# Использование authelia для генерации хеша пароля
|
||||
docker run --rm authelia/authelia:latest authelia crypto hash generate argon2 --password 'your_password'
|
||||
|
||||
# Результат вставляется в users_database.yml
|
||||
```
|
||||
|
||||
### Структура пользователей
|
||||
- **displayname**: Отображаемое имя пользователя
|
||||
- **password**: Argon2id хеш пароля
|
||||
- **email**: Email для уведомлений и 2FA
|
||||
- **groups**: Массив групп для контроля доступа
|
||||
|
||||
## Access Control Rules
|
||||
|
||||
### Политики доступа
|
||||
```yaml
|
||||
access_control:
|
||||
default_policy: deny # По умолчанию запрещено
|
||||
rules:
|
||||
- domain: notes.aepif.ru
|
||||
policy: one_factor # Требует логин + пароль
|
||||
- domain: git.aepif.ru
|
||||
policy: bypass # Без проверки Authelia
|
||||
- domain: webhook.aepif.ru
|
||||
policy: bypass # API сервис
|
||||
- domain: auth.aepif.ru
|
||||
policy: bypass # Сама страница входа
|
||||
```
|
||||
|
||||
### Типы политик
|
||||
- **deny**: Полный запрет доступа
|
||||
- **bypass**: Доступ без аутентификации через Authelia
|
||||
- **one_factor**: Только логин + пароль
|
||||
- **two_factor**: Логин + пароль + TOTP
|
||||
|
||||
### Расширенные правила доступа
|
||||
```yaml
|
||||
# Пример дополнительных правил
|
||||
access_control:
|
||||
rules:
|
||||
# Ограничение по группам
|
||||
- domain: admin.aepif.ru
|
||||
policy: two_factor
|
||||
subject: "group:admins"
|
||||
|
||||
# Ограничение по пользователям
|
||||
- domain: private.aepif.ru
|
||||
policy: one_factor
|
||||
subject: "user:admin"
|
||||
|
||||
# Ограничение по IP/сети
|
||||
- domain: internal.aepif.ru
|
||||
policy: one_factor
|
||||
networks:
|
||||
- "192.168.1.0/24"
|
||||
|
||||
# Ограничение по методам HTTP
|
||||
- domain: api.aepif.ru
|
||||
policy: one_factor
|
||||
methods:
|
||||
- "GET"
|
||||
- "POST"
|
||||
```
|
||||
|
||||
## Session Configuration
|
||||
|
||||
### Настройки сессий
|
||||
```yaml
|
||||
session:
|
||||
name: authelia_session # Имя cookie
|
||||
domain: aepif.ru # Домен для cookie (все поддомены)
|
||||
secret: 91Zc/PM0EogwZbsX0tsDGLpr4Wg7zwtQUzcp5tYP5dNdRNTlpkXBfJr9EivuD+A4
|
||||
expiration: 1h # Время жизни сессии
|
||||
inactivity: 5m # Время неактивности до выхода
|
||||
|
||||
redis:
|
||||
host: redis # Хост Redis контейнера
|
||||
port: 6379 # Порт Redis
|
||||
password: Ll8qlQ3rgBFo4Syq # Пароль Redis
|
||||
```
|
||||
|
||||
### Дополнительные настройки сессий
|
||||
```yaml
|
||||
session:
|
||||
# Дополнительные опции безопасности
|
||||
same_site: lax # Политика SameSite cookie
|
||||
secure: true # Только HTTPS (автоматически в production)
|
||||
remember_me_duration: 1M # Время "запомнить меня"
|
||||
```
|
||||
|
||||
## TOTP Configuration
|
||||
|
||||
### Двухфакторная аутентификация
|
||||
```yaml
|
||||
totp:
|
||||
issuer: aepif.ru # Отображается в приложении аутентификации
|
||||
algorithm: sha1 # sha1, sha256, sha512
|
||||
digits: 6 # Количество цифр в коде
|
||||
period: 30 # Период действия кода в секундах
|
||||
skew: 1 # Допуск на рассинхронизацию времени
|
||||
```
|
||||
|
||||
### Поддерживаемые приложения
|
||||
- Google Authenticator
|
||||
- Authy
|
||||
- Microsoft Authenticator
|
||||
- 1Password
|
||||
- Bitwarden
|
||||
|
||||
## Redis Configuration
|
||||
|
||||
### Настройки Redis контейнера
|
||||
```yaml
|
||||
redis:
|
||||
image: redis:7-alpine
|
||||
command: redis-server --requirepass Ll8qlQ3rgBFo4Syq
|
||||
volumes:
|
||||
- redis_data:/data # Персистентное хранение
|
||||
```
|
||||
|
||||
### Дополнительные настройки Redis
|
||||
```yaml
|
||||
# В configuration.yml для дополнительных опций Redis
|
||||
session:
|
||||
redis:
|
||||
host: redis
|
||||
port: 6379
|
||||
password: Ll8qlQ3rgBFo4Syq
|
||||
database_index: 0 # Номер базы данных
|
||||
maximum_active_connections: 8
|
||||
minimum_idle_connections: 0
|
||||
```
|
||||
|
||||
## Regulation (Rate Limiting)
|
||||
|
||||
### Защита от брутфорса
|
||||
```yaml
|
||||
regulation:
|
||||
max_retries: 3 # Максимум попыток входа
|
||||
find_time: 2m # Временное окно для подсчета попыток
|
||||
ban_time: 5m # Время блокировки после превышения лимита
|
||||
```
|
||||
|
||||
### Расширенная конфигурация
|
||||
```yaml
|
||||
regulation:
|
||||
max_retries: 3
|
||||
find_time: 2m
|
||||
ban_time: 5m
|
||||
|
||||
# Дополнительные настройки
|
||||
bantime_multiplier: 2 # Увеличение времени блокировки при повторных нарушениях
|
||||
cleanup_interval: 1h # Интервал очистки старых записей
|
||||
```
|
||||
|
||||
## Storage Configuration
|
||||
|
||||
### Локальное хранилище
|
||||
```yaml
|
||||
storage:
|
||||
encryption_key: sWLemnH0QNsYsYvbav59mQOWxLOeUvSl
|
||||
local:
|
||||
path: /config/db.sqlite3
|
||||
```
|
||||
|
||||
### База данных содержит
|
||||
- TOTP секреты пользователей
|
||||
- U2F/WebAuthn данные
|
||||
- Статистика авторизации
|
||||
- Конфигурация двухфакторной аутентификации
|
||||
|
||||
## Notifier Configuration
|
||||
|
||||
### Файловые уведомления
|
||||
```yaml
|
||||
notifier:
|
||||
filesystem:
|
||||
filename: /config/notification.txt
|
||||
```
|
||||
|
||||
### SMTP уведомления (альтернатива)
|
||||
```yaml
|
||||
notifier:
|
||||
smtp:
|
||||
username: your_email@gmail.com
|
||||
password: your_app_password
|
||||
host: smtp.gmail.com
|
||||
port: 587
|
||||
sender: your_email@gmail.com
|
||||
startup_check_address: your_email@gmail.com
|
||||
disable_require_tls: false
|
||||
disable_html_emails: false
|
||||
|
||||
subject: "[Authelia] {title}"
|
||||
templates_path: /config/templates
|
||||
```
|
||||
|
||||
## Traefik Integration Labels
|
||||
|
||||
### Forward Auth Middleware
|
||||
```yaml
|
||||
labels:
|
||||
# Основная конфигурация middleware
|
||||
- traefik.http.middlewares.authelia.forwardauth.address=http://authelia:9091/api/verify?rd=https://auth.aepif.ru
|
||||
- traefik.http.middlewares.authelia.forwardauth.trustForwardHeader=true
|
||||
- traefik.http.middlewares.authelia.forwardauth.authResponseHeaders=Remote-User,Remote-Groups,Remote-Name,Remote-Email
|
||||
```
|
||||
|
||||
### Применение к сервисам
|
||||
```yaml
|
||||
# Для защищенного сервиса
|
||||
labels:
|
||||
- traefik.http.routers.protected-service.middlewares=authelia@docker
|
||||
```
|
||||
|
||||
## Environment Variables
|
||||
|
||||
### Переменные окружения
|
||||
```yaml
|
||||
environment:
|
||||
- TZ=Europe/Moscow # Часовой пояс
|
||||
- AUTHELIA_JWT_SECRET_FILE=/run/secrets/jwt_secret # Секреты через файлы
|
||||
- AUTHELIA_SESSION_SECRET_FILE=/run/secrets/session_secret
|
||||
```
|
||||
|
||||
## Безопасность конфигурации
|
||||
|
||||
### Генерация секретов
|
||||
```bash
|
||||
# Генерация случайных секретов
|
||||
openssl rand -base64 64 # Для JWT и session secrets
|
||||
openssl rand -hex 32 # Для encryption key
|
||||
```
|
||||
|
||||
### Рекомендации по безопасности
|
||||
1. **Используйте сильные пароли**: Все секреты должны быть случайными
|
||||
2. **Ротация секретов**: Регулярно обновляйте JWT и session секреты
|
||||
3. **Ограничьте доступ к файлам**: Конфигурационные файлы должны быть доступны только контейнеру
|
||||
4. **Мониторинг попыток входа**: Настройте алерты на подозрительную активность
|
||||
|
||||
### Защита конфигурационных файлов
|
||||
```bash
|
||||
# Правильные права доступа
|
||||
chmod 600 /DOCKER/auth/authelia/configuration.yml
|
||||
chmod 600 /DOCKER/auth/authelia/users_database.yml
|
||||
chown root:root /DOCKER/auth/authelia/*.yml
|
||||
```
|
||||
|
||||
## Связанные файлы
|
||||
|
||||
- **[[Развертывание]]** - инструкции по установке и настройке
|
||||
- **[[Администрирование]]** - управление пользователями и мониторинг
|
||||
- **[[../Traefik Reverse Proxy/Конфигурации]]** - интеграция с reverse proxy
|
||||
@@ -0,0 +1,314 @@
|
||||
## Описание
|
||||
|
||||
Authelia Authentication - централизованная система аутентификации и авторизации для всех сервисов экосистемы aepif.ru. Обеспечивает Single Sign-On (SSO), двухфакторную аутентификацию и гранулярное управление доступом.
|
||||
|
||||
## Архитектура системы
|
||||
|
||||
```mermaid
|
||||
graph TB
|
||||
A[User Request] --> B[Traefik Reverse Proxy]
|
||||
B --> C{Authelia Middleware}
|
||||
C -->|Authenticated| D[Target Service]
|
||||
C -->|Not Authenticated| E[Authelia Login Page]
|
||||
|
||||
E --> F[User Authentication]
|
||||
F --> G[Session Storage - Redis]
|
||||
F --> H[User Database - File]
|
||||
|
||||
G --> I[Session Validation]
|
||||
I --> D
|
||||
|
||||
subgraph "Authelia Container"
|
||||
E
|
||||
F
|
||||
I
|
||||
J[TOTP 2FA]
|
||||
K[Password Reset]
|
||||
end
|
||||
|
||||
subgraph "Redis Container"
|
||||
G
|
||||
L[Session Data]
|
||||
end
|
||||
|
||||
subgraph "Configuration"
|
||||
H
|
||||
M[Access Control Rules]
|
||||
N[Notification Settings]
|
||||
end
|
||||
```
|
||||
|
||||
## Основные компоненты
|
||||
|
||||
### Authelia Server
|
||||
- **Назначение**: Центральный сервер аутентификации
|
||||
- **Домен**: `auth.aepif.ru`
|
||||
- **Порт**: 9091
|
||||
- **Технология**: Go-based authentication server
|
||||
- **Особенности**:
|
||||
- Forward Authentication integration с Traefik
|
||||
- TOTP двухфакторная аутентификация
|
||||
- Password reset через файловые уведомления
|
||||
- Детальные политики доступа
|
||||
|
||||
### Redis Session Store
|
||||
- **Назначение**: Хранение пользовательских сессий
|
||||
- **Технология**: Redis 7 Alpine
|
||||
- **Контейнер**: `auth_redis`
|
||||
- **Особенности**:
|
||||
- Персистентное хранение сессий
|
||||
- Защита паролем (`Ll8qlQ3rgBFo4Syq`)
|
||||
- Быстрый доступ к данным сессий
|
||||
- Автоматическое истечение сессий
|
||||
|
||||
### File-based User Database
|
||||
- **Назначение**: Хранение пользователей и их данных
|
||||
- **Файл**: `/config/users_database.yml`
|
||||
- **Особенности**:
|
||||
- Argon2id хеширование паролей
|
||||
- Группы пользователей для управления доступом
|
||||
- Email адреса для уведомлений
|
||||
|
||||
## Конфигурация
|
||||
|
||||
### Docker Compose
|
||||
Основная конфигурация в `/DOCKER/auth/docker-compose.yml`:
|
||||
|
||||
```yaml
|
||||
services:
|
||||
redis:
|
||||
image: redis:7-alpine
|
||||
container_name: auth_redis
|
||||
command: redis-server --requirepass Ll8qlQ3rgBFo4Syq
|
||||
|
||||
authelia:
|
||||
image: authelia/authelia:latest
|
||||
container_name: authelia
|
||||
depends_on:
|
||||
- redis
|
||||
volumes:
|
||||
- ./authelia:/config
|
||||
networks:
|
||||
- proxy # Подключение к Traefik
|
||||
```
|
||||
|
||||
### Основная конфигурация
|
||||
Файл `/DOCKER/auth/authelia/configuration.yml`:
|
||||
|
||||
```yaml
|
||||
jwt_secret: 4odTQ0TqW2Ej8m8Cm3K6Wn3VTvg09Mb2Yi4CUzuIPUsHB3fpF54+NbIAqo6+CREA
|
||||
default_redirection_url: https://notes.aepif.ru
|
||||
|
||||
server:
|
||||
host: 0.0.0.0
|
||||
port: 9091
|
||||
|
||||
totp:
|
||||
issuer: aepif.ru
|
||||
|
||||
session:
|
||||
domain: aepif.ru
|
||||
expiration: 1h
|
||||
inactivity: 5m
|
||||
redis:
|
||||
host: redis
|
||||
port: 6379
|
||||
password: Ll8qlQ3rgBFo4Syq
|
||||
```
|
||||
|
||||
## Политики доступа
|
||||
|
||||
### Access Control Rules
|
||||
Текущие правила доступа:
|
||||
|
||||
```yaml
|
||||
access_control:
|
||||
default_policy: deny # По умолчанию запрещен доступ
|
||||
rules:
|
||||
- domain: notes.aepif.ru
|
||||
policy: one_factor # Требует логин/пароль
|
||||
- domain: git.aepif.ru
|
||||
policy: bypass # Собственная авторизация Gitea
|
||||
- domain: webhook.aepif.ru
|
||||
policy: bypass # API с токеном
|
||||
- domain: auth.aepif.ru
|
||||
policy: bypass # Сама страница входа
|
||||
```
|
||||
|
||||
### Типы политик
|
||||
- **bypass**: Доступ без аутентификации через Authelia
|
||||
- **one_factor**: Требует только логин/пароль
|
||||
- **two_factor**: Требует логин/пароль + TOTP код
|
||||
- **deny**: Полный запрет доступа
|
||||
|
||||
## Пользователи и группы
|
||||
|
||||
### Структура пользователей
|
||||
Файл `users_database.yml`:
|
||||
|
||||
```yaml
|
||||
users:
|
||||
admin:
|
||||
displayname: "Administrator"
|
||||
password: "$argon2id$..." # Хешированный пароль Argon2id
|
||||
email: epifantsev1aa@gmail.com
|
||||
groups:
|
||||
- admins # Администраторская группа
|
||||
- users # Базовая группа пользователей
|
||||
```
|
||||
|
||||
### Управление паролями
|
||||
- **Хеширование**: Argon2id (высокий уровень безопасности)
|
||||
- **Reset процедура**: Через файловые уведомления
|
||||
- **Требования**: Минимальная длина, сложность
|
||||
|
||||
## Двухфакторная аутентификация
|
||||
|
||||
### TOTP Configuration
|
||||
- **Issuer**: `aepif.ru`
|
||||
- **QR Code**: Автоматическая генерация для настройки
|
||||
- **Backup Codes**: Коды восстановления доступа
|
||||
- **Приложения**: Google Authenticator, Authy, 1Password
|
||||
|
||||
### Настройка TOTP
|
||||
1. Первый вход с логином/паролем
|
||||
2. Сканирование QR кода мобильным приложением
|
||||
3. Подтверждение TOTP кода
|
||||
4. Сохранение backup кодов
|
||||
|
||||
## Интеграция с Traefik
|
||||
|
||||
### Forward Auth Middleware
|
||||
Traefik labels для защищенных сервисов:
|
||||
|
||||
```yaml
|
||||
labels:
|
||||
- traefik.http.middlewares.authelia.forwardauth.address=http://authelia:9091/api/verify?rd=https://auth.aepif.ru
|
||||
- traefik.http.middlewares.authelia.forwardauth.trustForwardHeader=true
|
||||
- traefik.http.middlewares.authelia.forwardauth.authResponseHeaders=Remote-User,Remote-Groups,Remote-Name,Remote-Email
|
||||
```
|
||||
|
||||
### Headers передача
|
||||
Authelia передает в backend сервисы:
|
||||
- **Remote-User**: Username аутентифицированного пользователя
|
||||
- **Remote-Groups**: Группы пользователя
|
||||
- **Remote-Name**: Display name
|
||||
- **Remote-Email**: Email адрес
|
||||
|
||||
## Сессии и безопасность
|
||||
|
||||
### Session Management
|
||||
- **Время жизни**: 1 час активной сессии
|
||||
- **Неактивность**: 5 минут до автоматического выхода
|
||||
- **Хранение**: Redis с паролем
|
||||
- **Domain**: `.aepif.ru` (работает для всех поддоменов)
|
||||
|
||||
### Regulation (Rate Limiting)
|
||||
Защита от брутфорса:
|
||||
|
||||
```yaml
|
||||
regulation:
|
||||
max_retries: 3 # Максимум попыток входа
|
||||
find_time: 2m # Период для подсчета попыток
|
||||
ban_time: 5m # Время блокировки
|
||||
```
|
||||
|
||||
### Безопасность
|
||||
- **JWT Secret**: Секретный ключ для подписи токенов
|
||||
- **Session Secret**: Ключ для шифрования сессий
|
||||
- **Encryption Key**: Ключ для шифрования хранилища
|
||||
- **Secure Headers**: Автоматические заголовки безопасности
|
||||
|
||||
## Уведомления
|
||||
|
||||
### File Notifier
|
||||
- **Файл**: `/config/notification.txt`
|
||||
- **Назначение**: Password reset уведомления
|
||||
- **Формат**: Простой текстовый файл
|
||||
|
||||
### Email Integration (Future)
|
||||
Для полноценных email уведомлений потребуется настройка SMTP:
|
||||
- Password reset emails
|
||||
- 2FA setup notifications
|
||||
- Security alerts
|
||||
|
||||
## Мониторинг
|
||||
|
||||
### Health Checks
|
||||
```bash
|
||||
# Проверка доступности Authelia
|
||||
curl -I https://auth.aepif.ru
|
||||
|
||||
# Проверка API здоровья
|
||||
curl https://auth.aepif.ru/api/health
|
||||
|
||||
# Логи Authelia
|
||||
docker logs authelia -f
|
||||
|
||||
# Проверка Redis
|
||||
docker exec auth_redis redis-cli -a Ll8qlQ3rgBFo4Syq ping
|
||||
```
|
||||
|
||||
### Metrics
|
||||
- **Authentication attempts**: Успешные/неуспешные попытки входа
|
||||
- **Session statistics**: Активные сессии, время жизни
|
||||
- **2FA usage**: Статистика использования TOTP
|
||||
- **Access denials**: Заблокированные запросы
|
||||
|
||||
## Структура файлов
|
||||
|
||||
```
|
||||
/DOCKER/auth/
|
||||
├── docker-compose.yml # Конфигурация Authelia + Redis
|
||||
├── authelia/ # Конфигурация Authelia
|
||||
│ ├── configuration.yml # Основная конфигурация
|
||||
│ ├── users_database.yml # База пользователей
|
||||
│ ├── db.sqlite3 # SQLite база данных (для хранения состояния)
|
||||
│ └── notification.txt # Файл уведомлений
|
||||
└── volumes/
|
||||
└── redis_data/ # Данные Redis
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Общие проблемы
|
||||
1. **Не работает аутентификация**: Проверить сеть `proxy`, статус контейнеров
|
||||
2. **Сессии не сохраняются**: Проверить подключение к Redis
|
||||
3. **TOTP не работает**: Синхронизировать время на сервере и устройстве
|
||||
4. **Password reset**: Проверить файл уведомлений
|
||||
|
||||
### Логи отладки
|
||||
```yaml
|
||||
# В configuration.yml для детальных логов
|
||||
log:
|
||||
level: debug
|
||||
```
|
||||
|
||||
## Backup и восстановление
|
||||
|
||||
### Критически важные данные
|
||||
- **configuration.yml**: Основная конфигурация
|
||||
- **users_database.yml**: База пользователей
|
||||
- **db.sqlite3**: Состояние системы (2FA secrets, etc.)
|
||||
- **redis_data**: Активные сессии
|
||||
|
||||
### Процедура backup
|
||||
```bash
|
||||
# Backup конфигурации Authelia
|
||||
tar czf authelia_config_backup.tar.gz -C /DOCKER/auth/authelia .
|
||||
|
||||
# Backup Redis данных
|
||||
docker exec auth_redis redis-cli -a Ll8qlQ3rgBFo4Syq BGSAVE
|
||||
```
|
||||
|
||||
## Связанные сервисы
|
||||
|
||||
- **[[Мой сервер/Traefik Reverse Proxy/Обзор системы|Traefik]]** - интеграция через Forward Auth middleware
|
||||
- **[[Мой сервер/Second Mind Setup/Обзор системы|Second Mind]]** - защита доступа к заметкам
|
||||
- **Redis** - хранение сессий и состояния
|
||||
|
||||
## Связанные документы
|
||||
|
||||
- **[[Authelia Authentication - Конфигурации]]** - детальные настройки всех компонентов
|
||||
- **[[Authelia Authentication - Развертывание]]** - пошаговая установка
|
||||
- **[[Authelia Authentication - Администрирование]]** - управление пользователями и мониторинг
|
||||
@@ -0,0 +1,32 @@
|
||||
# Authelia Authentication - Развертывание
|
||||
|
||||
## Пошаговая установка Authelia
|
||||
|
||||
*Документация будет дополнена инструкциями по развертыванию*
|
||||
|
||||
## Предварительные требования
|
||||
*Системные требования, Traefik, сеть proxy*
|
||||
|
||||
## Подготовка конфигурации
|
||||
*Создание файлов configuration.yml и users_database.yml*
|
||||
|
||||
## Генерация секретов
|
||||
*Создание JWT и session секретов*
|
||||
|
||||
## Создание пользователей
|
||||
*Настройка первичных пользователей*
|
||||
|
||||
## Развертывание контейнеров
|
||||
*Запуск Authelia и Redis*
|
||||
|
||||
## Интеграция с Traefik
|
||||
*Настройка Forward Auth middleware*
|
||||
|
||||
## Тестирование аутентификации
|
||||
*Проверка работы системы*
|
||||
|
||||
## Настройка TOTP
|
||||
*Конфигурация двухфакторной аутентификации*
|
||||
|
||||
---
|
||||
*Эта страница находится в разработке*
|
||||
Reference in New Issue
Block a user