Блог

Уроки, руководства и новости продукта.

Безопасность и бэкапы

Первые 10 шагов безопасности на новом VPS

3 ноября 2026 5 мин. чтения
Поделиться записью

На новом VPS первым делом нужно обновить систему, создать отдельного пользователя, который входит по ключу, а не как root, отключить вход по паролю, включить брандмауэр и fail2ban, настроить автоматические обновления безопасности и проверить, что бэкапы работают. Ниже 10 шагов в том порядке, в каком их стоит выполнять. Команды рассчитаны на Ubuntu и Debian.

Любой сервер в интернете — цель для автоматических сканеров и ботов, подбирающих пароли, и это видно в вашем собственном журнале SSH. Порядок важен: прежде чем выполнять шаг 4, убедитесь, что шаги 2 и 3 работают, иначе можно закрыть себе доступ. sudo в командах работает и тогда, когда вы вошли как root.

Система и учётные записи

1. Обновите систему

sudo apt update && sudo apt upgrade -y

В Ubuntu, если обновлению нужна перезагрузка, появляется файл /var/run/reboot-required. Если он есть, один раз перезапустите сервер. В Debian этот файл может не создаваться, поэтому после обновления ядра перезапускайте в любом случае.

2. Создайте своего пользователя

Не используйте root для повседневной работы. Создайте отдельного пользователя с правами sudo. Вместо deploy подставьте любое имя:

sudo adduser deploy

sudo usermod -aG sudo deploy

3. Входите по SSH-ключу

Если на вашем компьютере ещё нет пары ключей, создайте её командой ssh-keygen -t ed25519. Затем скопируйте открытый ключ новому пользователю и проверьте вход:

ssh-copy-id [email protected]

ssh [email protected]

Если вы вошли без запроса пароля, всё готово. В Windows нет ssh-copy-id. В PowerShell ту же работу делает эта команда:

Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub | ssh [email protected] "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

Усильте защиту SSH

4. Отключите вход по паролю и вход под root

Сначала убедитесь, что вы можете войти новым пользователем по ключу. Затем выясните, в каких файлах заданы эти настройки. Если OpenSSH находит один и тот же параметр в нескольких местах, он берёт первое прочитанное значение. В Debian и Ubuntu основной файл конфигурации в самом начале подключает папку /etc/ssh/sshd_config.d/. Образы провайдеров могут оставлять в этой папке файл, который включает вход по паролю. Даже если вы напишете no в основном файле, yes из того файла останется в силе:

sudo grep -rniE "^\s*(PasswordAuthentication|PermitRootLogin|KbdInteractiveAuthentication)" /etc/ssh/sshd_config /etc/ssh/sshd_config.d/

Во всех активных строках вывода поставьте no в том файле, где они находятся: PasswordAuthentication no, PermitRootLogin no, KbdInteractiveAuthentication no. Параметры, которых в выводе нет, добавьте в конец файла /etc/ssh/sshd_config. Затем проверьте, примените и посмотрите значения, которые действуют на самом деле:

sudo sshd -t && sudo systemctl reload ssh

sudo sshd -T | grep -E "^(passwordauthentication|permitrootlogin|kbdinteractiveauthentication)"

Все три строки должны заканчиваться на no. Не закрывайте открытый сеанс. Откройте новый терминал и убедитесь, что вход по ключу работает, прежде чем уходить. Если всё же закрыли себе доступ, откройте VNC-консоль из панели. Вход через консоль не зависит от настроек SSH.

Эти настройки могут незаметно вернуться. Действия в панели провайдера, например добавление SSH-ключа или сброс пароля, могут привести к тому, что при следующей загрузке снова запустится скрипт первой загрузки провайдера (cloud-init), а он может опять включить вход по паролю. После любого такого действия снова выполните команду sshd -T выше и проверьте значения.

Ограничьте доступ снаружи

5. Включите брандмауэр

В ufw сначала разрешите SSH, а потом включайте брандмауэр. Если сделать наоборот, соединение оборвётся. Если SSH работает не на порту 22, используйте вместо 22 свой порт:

sudo ufw allow 22/tcp

sudo ufw enable

sudo ufw status verbose

Если вы будете запускать веб-сервер, разрешите также порты 80 и 443. По умолчанию ufw отклоняет входящие соединения. В панели тоже есть инструмент брандмауэра. Если вы используете Docker, будьте внимательны: как сказано в документации Docker, опубликованные порты обходят правила ufw. Для служб, к которым должен обращаться только сам сервер, публикуйте порт только на loopback-адресе, например 127.0.0.1:5432:5432 в файле Docker Compose.

6. Установите fail2ban

fail2ban на время блокирует IP-адреса, с которых раз за разом неудачно пытаются войти:

sudo apt install -y fail2ban python3-systemd

printf '[sshd]\nenabled = true\nbackend = systemd\nmaxretry = 5\nbantime = 1h\n' | sudo tee /etc/fail2ban/jail.local

sudo systemctl enable fail2ban && sudo systemctl restart fail2ban

sudo fail2ban-client status sshd

На серверах Seturack с приложениями в один клик ufw включён, а fail2ban работает. Если вы поставили чистую операционную систему, проверьте их состояние командами sudo ufw status и systemctl is-active fail2ban.

7. Проверьте открытые порты

sudo ss -tulpn

Команда выводит все слушающие службы и порты. Службы, которым не нужен доступ снаружи, например базы данных и кэши, должны слушать только 127.0.0.1. Остановите то, что вам не нужно: sudo systemctl disable --now service-name

Чтобы так и оставалось

8. Автоматизируйте обновления безопасности

Как сказано в документации Ubuntu, пакет unattended-upgrades обычно уже установлен, а обновления безопасности включены. Если его нет, установите и включите его:

sudo apt install -y unattended-upgrades

sudo dpkg-reconfigure -plow unattended-upgrades

Автоматическая перезагрузка по умолчанию выключена, поэтому после обновлений ядра перезапускайте сервер сами. По условиям обслуживания поддержание системы в актуальном состоянии после настройки лежит на вас.

9. Делайте бэкапы и проверяйте восстановление

В Seturack ваш сервер копируется каждую ночь, и хранятся последние 7 дней. Это входит в цену. На вкладке Управление откройте Бэкапы, чтобы увидеть копии, достать отдельный файл или восстановить весь сервер. Чтобы проверить восстановление, достаньте один файл: при восстановлении всего сервера весь текущий диск заменяется. Снимок перед крупным изменением делать полезно, но снимок — это не бэкап. Храните копию важных данных и вне сервера. Подробности — в статье о ежедневных бэкапах.

10. Усильте пароли

Аккаунт в панели — ключ от сервера. Задайте для него длинный пароль, который нигде больше не используется, и храните его в менеджере паролей. Первый пароль root, скопированный из панели, смените командой sudo passwd root. Защитите закрытый SSH-ключ парольной фразой. Никогда не вставляйте пароли и ключи в сообщения в поддержку и в чаты.

Комментарии0

Комментариев пока нет

Поделитесь своим мнением первым.

Присоединяйтесь к обсуждению

Пожалуйста, войдите или зарегистрируйтесь, чтобы оставить комментарий.

Не пропускайте новые записи

Получайте наши свежие инструкции, руководства и новости продукта на почту.

Вы подписались на нашу рассылку.