Обзор развертывания Akaunting на сервере¶
Предварительные требования¶
Для корректной работы приложения на сервере необходимо выполнить следующие условия:
-
Операционная система должна поддерживать установку пакетов
ufw,nginxиcertbot. -
Пользователь должен иметь права суперпользователя (root) или доступ через
sudoдля настройки брандмауэра и веб-сервера. -
Должен быть настроен доменное имя, указывающее на IP-адрес сервера (переменная
akaunting_domain). -
Сервер должен иметь доступ в интернет для получения SSL-сертификатов и загрузки обновлений.
-
Должны быть открыты следующие порты в брандмауэре:
-
22для протокола SSH. -
80для протокола HTTP. -
443для протокола HTTPS.
Структура файлов и каталогов¶
Конфигурация приложения и веб-сервера распределена по следующим каталогам:
-
Конфигурационные файлы веб-сервера Nginx находятся в директории
/etc/nginx/. -
Сертификаты SSL, полученные через Let's Encrypt, хранятся в
/etc/letsencrypt/live/<akaunting_domain>/. -
Временные файлы для проверки домена Certbot размещены в
/var/www/certbot/. -
Приложение Akaunting работает локально на адресе
127.0.0.1и слушает порт8080.
Прокси серверы¶
Веб-сервер Nginx настроен как обратный прокси для перенаправления трафика на приложение Akaunting. Конфигурация включает два этапа работы:
-
Временная конфигурация для получения сертификата:
-
Сервер слушает порт
80. -
Обработка запросов к пути
/.well-known/acme-challenge/направлена в корневую директорию/var/www/certbotдля проверки владения доменом. -
Все остальные запросы перенаправляются на локальный адрес
http://127.0.0.1:8080. -
Финальная конфигурация с SSL:
-
Сервер на порту
80перенаправляет все запросы на HTTPS с кодом ответа301. -
Сервер на порту
443использует SSL-шифрование. -
Путь к полному сертификату:
/etc/letsencrypt/live/<akaunting_domain>/fullchain.pem. -
Путь к приватному ключу:
/etc/letsencrypt/live/<akaunting_domain>/privkey.pem. -
Поддерживаемые протоколы шифрования:
TLSv1.2иTLSv1.3. -
Настроены специфические шифры для обеспечения безопасности соединения.
-
Запросы перенаправляются на
http://127.0.0.1:8080с передачей заголовковHost,X-Real-IP,X-Forwarded-For,X-Forwarded-ProtoиX-Forwarded-Host.
Права доступа и безопасность¶
Брандмауэр UFW настроен для фильтрации входящего трафика:
-
Правило
allowприменяется к портам22,80и443для протоколаtcp. -
Служба UFW должна быть включена (
state: enabled) для активации правил фильтрации.
SSL-настройки в Nginx ограничивают использование только безопасных протоколов и шифров, исключая устаревшие версии TLS.
Настройки прав¶
Права на файлы и директории должны быть настроены следующим образом:
-
Директория
/var/www/certbot/должна быть доступна для записи процессом Certbot. -
Файлы сертификатов в
/etc/letsencrypt/должны быть доступны для чтения процессом Nginx. -
Конфигурационные файлы Nginx должны иметь корректные права для чтения демонстрацией веб-сервера.