РЕКОМЕНДАЦИИ ПО ОБЕСПЕЧЕНИЮ БЕЗОПАСНОСТИ
Для надежного и безопасного использования системы PLAN-R следует придерживаться нескольких рекомендаций:
- развертывать систему только внутри защищенных контуров предприятия;
- открывать для доступа только необходимые для работы сетевые порты;
- использовать протокол https для работы с веб-клиентом и веб-консолью администратора;
- изменить перед первым запуском системы переменные окружения, ответственные за шифрацию данных;
- не создавать токены JWT с большим временем жизни;
- не использовать локальную аутентификацию пользователей и настроить систему для работы с Active Directory;
- заблокировать учетные записи суперадмин (superadmin) и суперпользователь (superuser);
- настроить резервное копирование базы данных и проводить периодические проверки по восстановлению данных из резервной копии;
- резервировать хранение конфигурации системы;
- перед обновлением системы обязательно делать копию базы данных и настроек;
- рекомендуем иметь два развернутых варианта системы:
- продуктивную среду для текущей работы;
- тестовую среду для проверки новой поставки системы и её тестирования.
Настройка переменных окружения
Внимание! Ознакомьтесь с описанием переменных окружения. перед тем, как приступите к их настройке.
Измените значения переменных, отвечающих за шифрацию данных. Для генерации случайных последовательностей воспользуйтесь RANDOM.ORG или аналогичным ПО.
- SECRET_SALT - Инициализирующий вектор в виде строки, передаваемый в алгоритм шифрации;
- SECRET_KEY - Ключ в виде строки, передаваемый в алгоритм шифрации;
- JWT_SECRET - Строка для подписи JWT токена аутентификации;
- JWT_EXPIRESIN - Время жизни JWT токена аутентификации.
- FILE_TOKEN_SECRET - Строка для подписи JWT токена для выгрузки файлов из системы;
- FILE_TOKEN_EXPIRESIN - Время жизни JWT токена для выгрузки файлов из системы.
Подключение к БД PostgreSQL
Для подключения к базе данных используется переменная среды DB_URL которая содержит строку в формате URI.
Система поддерживает следующие методы аутентификации при подключении к БД:
- MD5
- SCRAM-SHA-256
Внимание! Для безопасной аутентификации с использованием паролей на сервере БД рекомендуется использовать механизм SCRAM-SHA-256 на основе протокола SCRAM.
Подключение Active Directory
Внимание! Ознакомьтесь с разделом Интеграция с Active Directory..
По умолчанию в системе PLAN-R включена локальная аутентификация пользователей, для обеспечения безопасности и удобства работы в больших организациях рекомендуется перейти на аутентификацию пользователей через Active Directory, что позволит Вам синхронизировать пользователей Ваших корпоративных доменов с пользователями PLAN-R.
Для этого:
- Подключитесь к веб-консоли администрирования перейдите в меню «Active Directory» и создайте подключения к Вашей доменной области для администраторов и пользователей системы;
- Протестируйте подключение и синхронизируйте нескольких администраторов и пользователей с PLAN-R;
- Перейдите в меню «Администраторы» и убедитесь в наличии учетных записей администраторов, перейдите в меню «Пользователи» и убедитесь в наличии учетных записей пользователей;
- После того как в PLAN-R появились администраторы и пользователи из Active Directory, проверьте возможность входа пользователей в веб-клиент системы и администраторов в веб-консоль администрирования;
- После того как Вы смогли подключиться к системе, следует установить значение переменной среды LDAP_AUTH_ENABLED=true для того, чтобы включить аутентификацию через Active Directory и переменной среды LOCAL_AUTH_ENABLED=false, чтобы выключить локальную аутентификацию;
- После этого рекомендуем заблокировать учетные записи суперадмин (superadmin) и суперпользователь (superuser).
Сетевое взаимодействие
Приложение PLAN-R работает на следующих портах:
- 80 порт сервиса основного приложения;
- 81 порт сервиса для доступа к консоли администрирования;
- 443 внешний порт сервера, который будет открыт при старте для защищённого HTTPS соединения.
Данные порты должны быть открыты для взаимодействия с приложением и добавлены в исключения используемого фаерволла.
Пример настройки ufw
UFW - это популярный инструмент для настройки и управления брандмауэром. Но Docker обходит правила UFW, и опубликованные порты могут быть доступны извне. Поэтому необходимо изменить файл конфигурации UFW /etc/ufw/after.rules. Добавляем следующие правила в конце файла:
# BEGIN UFW AND DOCKER *filter :ufw-user-forward - [0:0] :ufw-docker-logging-deny - [0:0] :DOCKER-USER - [0:0] # Перенаправление в ufw-user-forward для обработки UFW правилами -A DOCKER-USER -j ufw-user-forward # Исключение локальных сетей из фильтрации -A DOCKER-USER -j RETURN -s 10.0.0.0/8 -A DOCKER-USER -j RETURN -s 172.16.0.0/12 -A DOCKER-USER -j RETURN -s 192.168.0.0/16 # Разрешить DNS-запросы -A DOCKER-USER -p udp -m udp --sport 53 --dport 1024:65535 -j RETURN # Логирование и блокировка подозрительного трафика (TCP и UDP) -A DOCKER-USER -j ufw-docker-logging-deny -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -d 192.168.0.0/16 -A DOCKER-USER -j ufw-docker-logging-deny -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -d 10.0.0.0/8 -A DOCKER-USER -j ufw-docker-logging-deny -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -d 172.16.0.0/12 -A DOCKER-USER -j ufw-docker-logging-deny -p udp -m udp --dport 0:32767 -d 192.168.0.0/16 -A DOCKER-USER -j ufw-docker-logging-deny -p udp -m udp --dport 0:32767 -d 10.0.0.0/8 -A DOCKER-USER -j ufw-docker-logging-deny -p udp -m udp --dport 0:32767 -d 172.16.0.0/12 # Возврат для продолжения обработки трафика -A DOCKER-USER -j RETURN # Логирование и блокировка -A ufw-docker-logging-deny -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW DOCKER BLOCK] " -A ufw-docker-logging-deny -j DROP COMMIT # END UFW AND DOCKER
Используйте команду sudo systemctl restart ufw или sudo ufw reload для перезапуска UFW и применения изменений.
Для открытия необходимых портов воспользуйтесь командами:
sudo ufw allow 80 sudo ufw allow 81 sudo ufw allow 443
Перезапуск ufw:
sudo systemctl restart ufw
Убедитесь, что необходимые порты открыты:
sudo ufw status numbered
Для закрытия порта:
sudo ufw deny <номер порта>
Более подробную информацию о настройке UFW для работы с docker можно найти: https://github.com/chaifeng/ufw-docker
Запуск приложения Plan-R от непривилегированного пользователя
- Добавьте пользователя в группу docker. Замените username на ваше имя пользователя.
sudo usermod -aG docker username
- Выполните следующую команду для перезапуска сессии и применения изменений:
newgrp docker