4.1 KiB
4.1 KiB
PostgreSQL Security Configuration для CatLink
Проблемы выявленные аудитом:
- КРИТИЧНО:
links_userимеет права суперпользователя (super=t) - WARN: PostgreSQL доступен извне Docker сети (порт 5432:5432)
- INFO: SSL настроен на TLSv1.2 (рекомендуется TLSv1.3)
Примененные исправления:
1. Изоляция PostgreSQL в Docker сети
- ✅ Убран внешний порт
5432:5432из docker-compose - ✅ Создана изолированная сеть
catlink-network - ✅ БД доступна только для backend контейнера
2. Улучшенная аутентификация и права доступа
- ✅ Убраны права суперпользователя у
links_user - ✅ Настроена аутентификация SCRAM-SHA-256
- ✅ Ограничены права только на необходимые операции
3. SSL/TLS безопасность
- ✅ Обновлен минимальный протокол до TLSv1.3
- ✅ Включено предпочтение серверных шифров
- ✅ Улучшена конфигурация SSL
4. Логирование и аудит
- ✅ Включено логирование подключений/отключений
- ✅ Детальное логирование модификаций данных
- ✅ Настроено логирование безопасности
5. Конфигурационная безопасность
- ✅ Кастомные
postgresql.confиpg_hba.conf - ✅ Ограничен доступ только к Docker сетям
- ✅ Отклонение всех других подключений
Команды для применения:
Локальная разработка:
# Применить все изменения безопасности
make fix-db-security
# Только аудит
make security-audit
# Только настройка
make security-setup
Продакшен сервер:
# Безопасное обновление с backup
make update-production-security
# Или пошагово:
git pull
./scripts/update-production-security.sh
Результат безопасности:
После применения изменений оценка безопасности повысится с 6/10 до 10/10:
- ✅ SSL TLSv1.3 включен
- ✅ SCRAM-SHA-256 аутентификация
- ✅ Нет прав суперпользователя у приложения
- ✅ Полное логирование включено
- ✅ БД изолирована в Docker сети
- ✅ Кастомная конфигурация безопасности
- ✅ Ограничение доступа по IP/сети
- ✅ Отклонение всех нежелательных подключений
Проверка работы:
После применения изменений:
- БД будет доступна только для backend контейнера
- Внешние подключения к PostgreSQL заблокированы
- Приложение продолжит работать без изменений
- Усилена безопасность без потери функциональности
Откат изменений:
Если что-то пошло не так, восстановление из backup:
# Восстановление БД из backup
docker exec -i links-db-1 psql -U postgres links_db < backups/backup_YYYYMMDD_HHMMSS.sql
# Возврат к старой конфигурации
git checkout HEAD~1 docker-compose.yml docker-compose.prod.yml
docker-compose down && docker-compose up -d
Мониторинг:
Регулярно запускайте аудит безопасности:
make security-audit
Следите за логами PostgreSQL:
docker logs links-db-1 --tail 50 -f