📣 Рубрика: как я чуть не уложил прод в 3 утра 😵💫
Знаете, что лучше всего бодрит в 3 утра? Не кофе, не энергетики... А вот когда ты одной командой кладешь весь прод 🔥🔥🔥
4 недели назад я решил быть хорошим разработчиком и обновить зависимости на сервере. Ну вы знаете, как это бывает — "давай быстренько апдейтнем библиотеки". Конечно же, всё полегло на час-полтора 🫣
Один из источников данных не поднялся, настройки перетерлись... В общем, стандартная(no) история для субботнего вечера. Восстановил всё, проверил основной функционал, подумал "ну всё, работает, хух" и забыл про это.
А вчера ночью 💀
Обновляю большой пласт функционала и замечаю странность — то, что должно быть закрыто от внешнего мира, вдруг стало доступно извне. Хм, интересненько...
Иду разбираться и тут до меня доходит: файрвол не запущен и настройки фильтрации тоже! 4 недели кто-то голый ходит 😱
➡️ Мини-ликбез:
У меня 2 сервера с базами данных. По правилам хорошего тона они закрыты от внешнего мира. Для фильтрации трафика на Linux используется Netfilter.
Можно его настраивать через: - ufw (высокий уровень) — как бетономешалка 🚚 - iptables (низкий уровень) — как замешивать цемент руками 🏗️
Проблема в том, что если настроишь через ufw, другие приложения могут переписать всё на низком уровне. И ты об этом не узнаешь 🤡
🎁 Вся соль ситуации:
Мне нужно было синхронизировать таблицы между серверами. Для этого пришлось открыть одну БД во внешний мир, но только для второго сервера.
Я настроил всё через iptables, сделал бэкапы, добавил автоматический подъём...
НО при перезапуске 4 недели назад что-то пошло не так, правила не применились. А я, конечно же, не проверил 🤦♂️
😍 Кульминация такая:
Решил исправить ситуацию парочкой команд и... заблокировал доступ ко ВСЕМУ серверу.
Никто и ничто в мире не разбудит вас лучше, чем положеный вами прод в 3 утра ⚡
В общем, восстановил всё, но усвоил урок: НИКОГДА не делайте ничего серьёзного ночью на продакшн сервере, если это заранее не запланировано.
А то есть шанс, что спать вы не будете 🫤
P.s. Чем больше живу, тем больше косячу. Но зато какие истории получаются 😏
