Сеть из 8 серверов: харденинг, мониторинг, бэкапы
- Docker
- Caddy
- Ubuntu
- fail2ban
- ufw
- серверов
- 8
- сервисов в проде
- 15+
- Интернет
- ufw + fail2ban
- Caddy + TLS
- Docker Compose
- Сервисы
- Мониторинг и бэкапы
Задача
Проекты разрослись до нескольких серверов в разных странах. Без единого стандарта каждый узел настраивался по-своему: разные правила защиты, ручной деплой, о проблемах узнавали по жалобам.
Подход
Ввёл единый стандарт: ключи вместо паролей, нестандартный порт SSH, fail2ban и ufw с одинаковыми правилами, Caddy с автоматическим HTTPS, все приложения в Docker Compose. Добавил мониторинг доступности с автоматическим исключением недоступного узла и ночные бэкапы баз. Перед каждой выкладкой сохраняется образ для мгновенного отката.
Что сделано
- SSH только по ключам на нестандартном порту, fail2ban с общими правилами и сводкой нарушителей
- Caddy как reverse proxy с автоматическими TLS-сертификатами
- Все сервисы — в Docker Compose: одинаковый деплой и откат на любом узле
- Мониторинг узлов: недоступный сервер автоматически исключается из работы до восстановления
- Ночные бэкапы баз с отправкой в защищённый Telegram-канал
- Разбор инцидентов по-настоящему: например, найден и устранён цикл нехватки памяти, из-за которого зависал сервер
Стек
Ubuntu на всех узлах, Docker + Docker Compose, Caddy для reverse proxy и TLS, fail2ban + ufw, cron-бэкапы с отправкой в Telegram, скрипты мониторинга.
Результат
8 серверов и более 15 сервисов работают под одним стандартом: деплой и откат занимают минуты, перебор паролей блокируется автоматически, а о сбое узла становится известно раньше, чем о нём узнают пользователи.