Пароли хешируются, а не хранятся
Панель держит bcrypt-хеш и больше ничего. Прочитать ваш пароль здесь не может никто — по той же причине никто не сможет вам его и напомнить. Единственный путь назад — сброс, и это не недоработка.
Безопасность
RE:NODE пишет свою панель, а не лицензирует чужую, поэтому безопасность этого места — то, что мы построили и можем описать, а не список функций, проданный кем-то ещё. На этой странице то, что внутри, включая места, которые являются ограничением, а не преимуществом.
Всё, что решает, действительно ли запрос от вас.
Панель держит bcrypt-хеш и больше ничего. Прочитать ваш пароль здесь не может никто — по той же причине никто не сможет вам его и напомнить. Единственный путь назад — сброс, и это не недоработка.
Временные коды из любого приложения-аутентификатора и одноразовые коды восстановления, которые выдаются сразу при включении. Храните их не в телефоне: именно они вернут вам доступ, когда телефона не будет.
Вход, регистрация и восстановление пароля ограничены по частоте на адрес и закрыты капчей. Перебор пароля перестаёт окупаться задолго до того, как начнёт срабатывать.
Страница аккаунта показывает все открытые сейчас сессии, откуда они используются и когда были активны, и позволяет закрыть те, которые вы не узнаёте. Сами cookie зашифрованы, недоступны JavaScript и не отправляются с других сайтов.
Что проходит запрос, прежде чем добраться до чего-либо вашего.
Обычный HTTP перенаправляется, а не обслуживается; сертификаты выпускаются и обновляются автоматически — так что просроченный сертификат не может тихо случиться в воскресенье.
Запрос, который что-то меняет и пришёл не со страницы, отданной нами, отклоняется. Другой сайт не может действовать от вашего имени во вкладке, которую вы оставили открытой.
Большая часть трафика, который находит панель, ищет не её: он обходит интернет, спрашивая у каждого хоста файлы с учётными данными и исходники, которых здесь нет. Такие запросы распознаются сразу, адресу перестают отвечать, и блокировка удлиняется с каждым возвращением. Каждый отказ пишется в журнал, который оператор действительно читает.
fail2ban стоит перед приложением, поэтому трафик, который очевидно не клиент, не стоит ни одного PHP-процесса.
Сервер одного клиента — не папка внутри сервера другого.
Каждый сервер работает в своём контейнере со своей файловой системой и собственными лимитами памяти, CPU и диска. Сосед не прочитает ваши файлы и не потратит ваши ресурсы в свой загруженный вечер.
Пароли администратора, пароли RCON и пользователи базы генерируются для вашего сервера, а не общие на тариф, и показываются вам, а не кому-то ещё.
Ключ можно ограничить списком адресов — тогда утёкший ключ бесполезен откуда-либо ещё. Ключи хранятся зашифрованными и показываются один раз, при создании.
Дайте кому-то консоль без файлов или резервные копии без биллинга. Каждое действие записывается на тот аккаунт, который его выполнил, в журнале активности сервера — так что у вопроса «кто перезапустил» есть ответ.
Страховка, которая не лежит на том же диске, что и застрахованное.
База и рабочие данные выгружаются каждую ночь. Дамп снимается без блокировки, из-за которой панель ждала бы, пароль базы никогда не появляется в командной строке, где его прочитали бы другие процессы, и два запуска не могут наложиться друг на друга.
Панель, тома клиентов и локальные копии живут в одном хранилище — отказ хранилища унёс бы и продакшен, и его страховку. Поэтому всё скачивается ещё и на отдельное железо.
Каждая копия проверяется на целостность архива, а дамп базы — на завершающую запись, которая появляется только если выгрузка действительно дошла до конца. Непроверенная копия — это предположение.
Копии удаляются по расписанию, а не копятся вечно. Резервные копии, растущие до тех пор, пока не уронят панель, — авария, которую мы предпочли бы не изобретать.
По порядку, с момента нажатия кнопки в панели.
Соединение шифруется до того, как отправлен первый байт запроса. Обычный HTTP получает только перенаправление.
Адрес взвешивается по тому, что он делал. Запросы, которые уже выдали себя, заканчиваются здесь — 404, который им ничего не говорит.
Cookie сессии расшифровывается, CSRF-токен проверяется — значит, запрос и от вас, и со страницы, которую отдали вам мы.
И только потом действие сверяется с тем, что этому аккаунту разрешено на этом конкретном сервере, и пишется в журнал активности сервера.
Та часть страницы о безопасности, которой обычно нет.
Страна определяется по таблице на нашей собственной машине. Определять адрес через сторонний сервис значило бы рассказывать кому-то о наших посетителях по одному запросу за раз.
Мы считаем, что читают, чтобы понимать, какие руководства стоит писать. Кто читал — не храним.
Именно это и означает хеширование. А если включена двухфакторная и коды восстановления тоже потеряны, аккаунт нельзя вернуть никому — включая вас. Храните коды.
Arma 3, DayZ, Project Zomboid и 7 Days to Die нельзя установить анонимно: установщик входит в Steam от вашего имени, и серверу эти данные нужны при каждом обновлении. Используйте отдельный аккаунт для серверов, а не основной. Страница каждой из этих игр говорит об этом до покупки, а не после.
Если вам кажется, что вы нашли уязвимость, скажите нам раньше, чем кому-либо ещё, и мы её закроем. Сообщение о реальной проблеме стоит для нас больше, чем для любого, кому её можно продать.
Связаться с нами