Защита нового сервера: чек-лист
Основные шаги защиты нового сервера BLACKBOX в правильном порядке и без потери доступа.
На этой странице
Ниже — шаги по защите нового сервера в том порядке, в котором их стоит выполнять. Часть делается в панели app.blackbox.md, в карточке сервера на странице «Мои серверы» (app.blackbox.md/my-servers, левое меню «Инфраструктура» → «Мои серверы»), остальное — на самом сервере по SSH под root. Команды приведены для образов Ubuntu, Debian, AlmaLinux и CentOS Stream.
Доступно: владельцу аккаунта blackbox.md, который заказал сервер. В карточках с отметкой «Обслуживается» кнопок панели нет — по таким серверам напишите нам.
Внимание Веб- и VNC-консоли у клиентов нет: если доступ по SSH потерян и панель тоже не может подключиться к серверу, помочь может только поддержка. Пока меняете настройки SSH или файрвола, держите открытой вторую SSH-сессию и закрывайте её, только когда подключитесь заново из нового терминала. Не удаляйте «Ключ управления (blackbox.md)» из
/root/.ssh/authorized_keys: через него работают кнопки панели.
Кратко: весь чек-лист
| Шаг | Где | Подробнее |
|---|---|---|
| 1. Обновите систему | сервер | Обновления системы и автоматические обновления безопасности |
| 2. Смените пароль root из письма | панель | Сброс пароля root |
| 3. Добавьте SSH-ключ и проверьте его | панель и ваш компьютер | Добавление и удаление SSH-ключей на сервере |
| 4. Отключите вход по паролю | панель | Включение и отключение входа по паролю по SSH |
| 5. Создайте пользователя с sudo (необязательно) | сервер | раздел ниже |
6. Оставьте вход root по ключу |
сервер | Ключи BLACKBOX на вашем сервере |
| 7. Включите файрвол | сервер | Файрвол: сетевая фильтрация и ufw/firewalld на сервере |
| 8. Установите fail2ban | сервер | Защита от подбора паролей с помощью fail2ban |
| 9. Включите автоматические обновления | сервер | Обновления системы и автоматические обновления безопасности |
| 10. Спланируйте резервное копирование | сервер и внешнее хранилище | Стратегия резервного копирования для вашего сервера |
| 11. Проверьте «Мониторинг» (если подключена услуга «Мониторинг») | панель | Страница «Мониторинг» |
1. Обновите систему
Подключитесь к серверу (Подключение к серверу по SSH (Windows, macOS, Linux)) и установите обновления.
Ubuntu и Debian
apt update
apt upgrade -yAlmaLinux и CentOS Stream
dnf upgrade -yВ Ubuntu может появиться окно программы needrestart с вопросом, какие службы перезапустить: оставьте предложенный выбор и нажмите Enter.
Если обновилось ядро (пакеты linux-image-… в Ubuntu и Debian, kernel в AlmaLinux и CentOS Stream), перезагрузите сервер кнопкой «Перезагрузить» в карточке (Перезагрузка, остановка и запуск сервера) и через минуту подключитесь снова. В Ubuntu перезагрузка нужна, если существует файл /var/run/reboot-required.
2. Смените пароль root из письма
Если при заказе вы не добавили SSH-ключ или сняли отметку «Отключить вход по паролю (только SSH-ключ)», пароль root пришёл в письме «Serverul dvs. este gata — BBX-…». Замените его:
- В карточке сервера нажмите «Сбросить пароль».
- Подтвердите сообщение «Сбросить пароль для ИМЯ_СЕРВЕРА? Текущий пароль перестанет работать немедленно.» кнопкой «OK».
- Новый пароль появится в карточке, в блоке с полями «Пользователь» и «Пароль». Сохраните его в менеджере паролей.
Панель запоминает новый пароль, и его всегда можно снова посмотреть кнопкой «Показать учётные данные». Сменить пароль можно и на сервере командой passwd, но тогда панель по-прежнему будет показывать старый, а новый будете знать только вы. Если сервер заказан со входом только по ключу, пароля в письме нет — переходите к шагу 3.
3. Добавьте SSH-ключ и проверьте его
Если ключ был добавлен при заказе, он уже на сервере — переходите сразу к проверке (пункт 5). Иначе:
Если ключа у вас нет, создайте его на своём компьютере: Создание SSH-ключа (Windows, macOS, Linux).
В карточке сервера нажмите «Добавить SSH-ключ».
Выберите «Использовать сохранённый ключ» и ключ из списка или «Вставить новый ключ» и вставьте строку открытого ключа (
ssh-ed25519 AAAA…).Нажмите «Добавить ключ». Появится сообщение «Ключ добавлен.», а ключ отобразится в списке «Установленные ключи».
В новом терминале подключитесь только по ключу:
ssh -o PreferredAuthentications=publickey root@IP_СЕРВЕРА
Если вы подключились (возможно, после ввода парольной фразы ключа), ключ работает — не закрывайте эту сессию до конца следующих шагов. При Permission denied дальше не продолжайте: проверьте ключ по статье Добавление и удаление SSH-ключей на сервере.
4. Отключите вход по паролю в панели
Если сервер заказан со входом только по ключу, рядом с названием сервера уже стоит отметка «Только ключ» — переходите к шагу 5.
- В карточке сервера нажмите «Отключить вход по паролю».
- Подтвердите «Отключить вход по паролю по SSH на ИМЯ_СЕРВЕРА? После этого войти можно будет только с установленными SSH-ключами. Пароль для консоли останется рабочим.» кнопкой «OK».
- Отметка рядом с названием сервера сменится на «Только ключ», а кнопка — на «Включить вход по паролю».
- Из нового терминала проверьте, что входите по ключу (команда из шага 3).
«Пароль для консоли» из сообщения — это пароль root, сохранённый в панели: он остаётся заданным, но по SSH с ним уже не войти. Веб-консоли у клиентов нет.
Не редактируйте PasswordAuthentication в /etc/ssh/sshd_config. Кнопка записывает настройку в отдельный файл в каталоге /etc/ssh/sshd_config.d/, который имеет приоритет над основным файлом, и затем проверяет её на сервере. Если появится «Установленный ключ не найден — сначала добавьте ключ, прежде чем отключать пароль.», вернитесь к шагу 3.
5. Создайте пользователя с правами sudo (необязательно)
Если вам удобнее работать каждый день не под root, создайте отдельного пользователя. Учётная запись root остаётся активной и доступной по ключу: её используют панель и AI-ассистент.
Ubuntu и Debian
adduser ИМЯ_ПОЛЬЗОВАТЕЛЯ
usermod -aG sudo ИМЯ_ПОЛЬЗОВАТЕЛЯadduser попросит задать пароль нового пользователя (он понадобится для sudo); остальные поля можно оставить пустыми. Если в Debian нет команды sudo, установите её:
apt install -y sudoAlmaLinux и CentOS Stream
adduser ИМЯ_ПОЛЬЗОВАТЕЛЯ
passwd ИМЯ_ПОЛЬЗОВАТЕЛЯ
usermod -aG wheel ИМЯ_ПОЛЬЗОВАТЕЛЯSSH-ключ нового пользователя
Скопируйте авторизованные ключи root:
mkdir -p /home/ИМЯ_ПОЛЬЗОВАТЕЛЯ/.ssh
cp /root/.ssh/authorized_keys /home/ИМЯ_ПОЛЬЗОВАТЕЛЯ/.ssh/authorized_keys
chown -R ИМЯ_ПОЛЬЗОВАТЕЛЯ:ИМЯ_ПОЛЬЗОВАТЕЛЯ /home/ИМЯ_ПОЛЬЗОВАТЕЛЯ/.ssh
chmod 700 /home/ИМЯ_ПОЛЬЗОВАТЕЛЯ/.ssh
chmod 600 /home/ИМЯ_ПОЛЬЗОВАТЕЛЯ/.ssh/authorized_keysВ AlmaLinux и CentOS Stream также восстановите контекст SELinux для каталога:
restorecon -R /home/ИМЯ_ПОЛЬЗОВАТЕЛЯ/.sshВ копии есть и ключи BLACKBOX (Ключи BLACKBOX на вашем сервере). Новому пользователю они не нужны: их можно удалить из /home/ИМЯ_ПОЛЬЗОВАТЕЛЯ/.ssh/authorized_keys, но ни в коем случае не из /root/.ssh/authorized_keys.
Проверьте вход из нового терминала. Подключитесь под новым пользователем:
ssh ИМЯ_ПОЛЬЗОВАТЕЛЯ@IP_СЕРВЕРАЗатем выполните на сервере команду ниже. После ввода пароля пользователя она должна вывести root.
sudo whoami6. Оставьте вход root по ключу
Правильная настройка — PermitRootLogin prohibit-password: root входит только по ключу, а подобрать пароль root через SSH уже нельзя. Шаг 4 (или заказ со входом только по ключу) уже выставил её, так что редактировать ничего не нужно. Проверьте фактически применённые настройки:
sshd -T | grep -Ei 'passwordauthentication|permitrootlogin'В выводе должны быть passwordauthentication no и permitrootlogin prohibit-password. Некоторые версии OpenSSH показывают permitrootlogin without-password — это та же настройка под старым названием.
Важно Не ставьте
PermitRootLogin no. Панель («Сбросить пароль», «Установленные ключи», кнопки входа по паролю) и AI-ассистент подключаются какrootпо ключу управления BLACKBOX. Сnoэти функции перестанут работать, а без веб-консоли исправить это из панели не получится.
Если вы уже выставили PermitRootLogin no (например, по старой инструкции), подключитесь под пользователем с правами sudo и станьте root:
sudo -iВ файле, куда вы записали эту настройку, замените строку на PermitRootLogin prohibit-password. Затем проверьте конфигурацию и перезагрузите настройки SSH:
sshd -t
systemctl reload ssh || systemctl reload sshdЕсли конфигурация в порядке, sshd -t ничего не выводит. Если команда выводит ошибку, исправьте её до перезагрузки настроек. Если другого пользователя с sudo нет, напишите в поддержку: Потерян доступ к серверу (пароль или ключ).
7. Включите файрвол, сначала разрешив SSH
Сетевая фильтрация, которой управляет BLACKBOX, пропускает к серверу SSH (22), HTTP (80), HTTPS (443) и ping. Файрвол в системе (ufw или firewalld) на новом сервере выключен.
Разрешите SSH до того, как включать ufw, иначе потеряете доступ. Не ограничивайте порт 22 только своим IP-адресом: через этот порт к серверу подключается панель. После включения, не закрывая текущую сессию, проверьте из нового терминала, что подключение по-прежнему работает.
Если на сервере установлена панель управления (тарифы «VPS hosting»), сначала уточните у поддержки: у такой панели может быть собственный файрвол и собственный fail2ban, а два одновременно работающих файрвола могут конфликтовать.
Ubuntu и Debian
apt install -y ufw
ufw allow 22/tcp
ufw enableНа вопрос «Command may disrupt existing ssh connections. Proceed with operation (y|n)?» ответьте y.
AlmaLinux и CentOS Stream
Зона firewalld по умолчанию уже разрешает SSH, так что запуск не разорвёт подключение. Третья команда делает это правило постоянным.
dnf install -y firewalld
systemctl enable --now firewalld
firewall-cmd --permanent --add-service=ssh
firewall-cmd --reloadПорты для сайта
Для сайта разрешите также порты 80 и 443, а про остальные порты читайте в статье Файрвол: сетевая фильтрация и ufw/firewalld на сервере.
8. Установите fail2ban
fail2ban временно блокирует IP-адреса, с которых раз за разом пытаются подобрать пароль по SSH.
Ubuntu и Debian
apt install -y fail2ban python3-systemdAlmaLinux и CentOS Stream
Пакет устанавливается из репозитория EPEL. fail2ban блокирует адреса через firewalld, поэтому сначала выполните шаг 7.
dnf install -y epel-release
dnf install -y fail2ban python3-systemdВо всех системах
Включите защиту SSH, запустите службу и проверьте её:
printf '[sshd]\nenabled = true\nbackend = systemd\n' > /etc/fail2ban/jail.local
systemctl enable fail2ban
systemctl restart fail2ban
fail2ban-client status sshdПоследняя команда должна вывести «Status for the jail: sshd». Если она сообщает, что не может подключиться к службе, подождите несколько секунд и повторите. Подробная настройка: Защита от подбора паролей с помощью fail2ban.
9. Включите автоматические обновления безопасности
Ubuntu и Debian
apt install -y unattended-upgrades
dpkg-reconfigure -plow unattended-upgradesНа вопрос «Automatically download and install stable updates?» ответьте «Yes». В Ubuntu пакет обычно уже установлен, и команды лишь подтверждают, что он включён.
AlmaLinux и CentOS Stream
dnf install -y dnf-automatic
systemctl enable --now dnf-automatic-install.timerТаймер ежедневно скачивает и устанавливает все доступные обновления.
Автоматические обновления не перезагружают сервер: новое ядро начинает работать только после перезагрузки (шаг 1). Подробности и настройки: Обновления системы и автоматические обновления безопасности.
10. Спланируйте резервное копирование
BLACKBOX не делает автоматических резервных копий вашего сервера, и за данные на нём отвечаете вы (Ответственность за данные на сервере и резервные копии). Кнопка «Резервные копии» в карточке сервера не работает: если нажать на неё, может появиться backup_extra_disabled.
Регулярно копируйте файлы и базы данных, храните хотя бы одну копию вне сервера и время от времени проверяйте, что из неё можно восстановиться: Стратегия резервного копирования для вашего сервера.
11. Проверьте страницу «Мониторинг» (если подключена услуга)
Этот шаг — для серверов с дополнительной услугой «Мониторинг 24/7», которая доступна для Ubuntu и Debian (Услуга «Мониторинг»: агент на сервере).
- Откройте в панели раздел «Мониторинг» (
app.blackbox.md/monitoring). - В таблице «Ваши серверы» в столбце «Мониторинг» у сервера должно стоять «Активен». «Подключение…» означает, что агент ещё устанавливается; при «Ошибка» напишите нам.
- В карточке «Оповещения», в блоке «Настройки уведомлений», оставьте отмеченным «Присылать письмо при новом оповещении», выберите уровень в поле «Минимальная важность» и нажмите «Сохранить» (Оповещения и уведомления по email).
Агент отправляет данные через исходящие соединения, которые ufw и firewalld по умолчанию разрешают. Не блокируйте исходящий трафик сервера.
Частые вопросы
Можно ли перенести SSH на другой порт? Не рекомендуем. Сетевая фильтрация по умолчанию пропускает только порты из шага 7, поэтому на другом порту SSH может оказаться недоступен, а панель подключается к порту 22. Если другой порт всё же нужен, сначала спросите поддержку: Как связаться с поддержкой BLACKBOX.
В старой статье «Базовая защита VPS» из «Базы знаний» советовали другое. Чему следовать?
Этому руководству. Старая статья рекомендовала PermitRootLogin no и правку PasswordAuthentication в /etc/ssh/sshd_config — и то и другое конфликтует с панелью. Это руководство заменяет те рекомендации.
Доступ к серверу потерян. Что делать?
Если кнопки панели ещё работают, нажмите «Включить вход по паролю» и войдите с паролем, который показывает «Показать учётные данные» (если вы меняли пароль командой passwd, сначала нажмите «Сбросить пароль»). Когда доступ по ключу будет восстановлен, снова отключите вход по паролю (шаг 4). Если и панель не может достучаться до сервера (например, файрвол закрыл порт 22), следуйте статье Потерян доступ к серверу (пароль или ключ).
Страница «Мониторинг» показывает, защищён ли сервер? Нет. Она показывает нагрузку (CPU, ОЗУ, диск, процессы) серверов с услугой «Мониторинг». Настройки из этого руководства проверяйте на самом сервере командами выше.