К содержимому
Ricklayer
RUEN
← На главную

Серверы и безопасность

После релиза продукт только начинается

Его нужно держать живым, быстрым и закрытым. Эта часть на нас целиком: от правил файрвола до песочницы каждой службы.

0

продуктовых служб от root

1.3

оценка systemd-analyze, из 10

12

классов угроз на каждый модуль

1

команда на выкладку с откатом

Службы

Не от root
Отдельный пользователь на каждую службу: сайт, парсер демок, лицензии, игровой сервер.
Песочница systemd
NoNewPrivileges, ProtectSystem=strict, свой /tmp, пустой набор capabilities, фильтр системных вызовов, запись только в разрешенные каталоги.
Порты на петле
Приложения и базы слушают только 127.0.0.1, снаружи nginx или Caddy.

Сеть и доступ

Файрвол
ufw с запретом по умолчанию, fail2ban, SSH только по ключам.
Служебное закрыто
RCON и базы не торчат наружу, staging под basic auth.
Туннели
LLM-провайдеры режут РФ: запросы идут SOCKS-туннелем на зарубежный узел со строгой проверкой ключа хоста.

Приложение

Вход в админку
Гейт, пароль и 2FA на HMAC-подписанных host-only куках. Пять неверных кодов сжигают вход, лимит по аккаунту.
Заголовки
CSP без unsafe-inline, HSTS, запрет фрейминга, отключенные source map.
Аудит
Действия админа пишутся в журнал, аномалии уходят алертом в Telegram.

Данные и выкладка

Шифрование
Личные поля в базе AES-256-GCM, доступы к игровым аккаунтам стираются при закрытии заказа.
Бэкапы
Каждую ночь, копии вне сервера, проверка восстановлением в пустую базу.
Выкладка
Снимок базы, миграции, сборка, переключение релиза, health-check и авто-откат за минуту.

Инциденты и находки

Инцидент 01 · открыт

Хост запроса задавал клиент

nginx не перезаписывал X-Forwarded-Host, а приложение брало хост из него. Запрос на витрину с подмененным заголовком получал форму входа в админку.

Инцидент 02 · открыт

Сброс пароля обходил 2FA

Ссылка из письма давала админу сессию без гейта и второго фактора. Доступ к почте админа обходил оба слоя.

Инцидент 03 · открыт

Диск прода на 93%

Мониторинг показал 8 ГБ свободного места из 116. Турнирный сервер писал демку круглосуточно.

Инцидент 04 · открыт

Парсер демок ронял сайт

Разбор больших демок съедал память, и OOM-killer забирал соседние процессы вместе с сайтом.