1 год Нам 1 год: −20% на все серверы по коду До конца 14 ч Заказать

PowerDedi

Безопасность

Защитите сервер в первый же час

Чек-лист на первый час: автоматические обновления, SSH только по ключам, файрвол, защита от перебора паролей, резервные копии и 2FA.

Обновлено 25 сентября 2026 г. · 4 мин чтения · 10 разделов

На этой странице 10 разделов
  1. Автоматическая установка обновлений
  2. Работа от имени пользователя с sudo
  3. Вход по SSH только по ключам
  4. Включение межсетевого экрана
  5. Ограничение перебора паролей
  6. Синхронизация времени
  7. Резервное копирование данных
  8. Защита аккаунта в личном кабинете
  9. Мониторинг сервера
  10. Если сервер взломан

Автоматические сканеры начинают зондировать новый сервер уже через несколько минут после его подключения к сети. В этом чек-листе собрано самое необходимое на первый час. Вам понадобится root-доступ по SSH с установленным ключом; см. Создание и использование SSH-ключей. Мы не администрируем вашу операционную систему, поэтому эти шаги выполняете вы сами.

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

Автоматическая установка обновлений

# Debian, Ubuntu
sudo apt update && sudo apt full-upgrade
sudo apt install unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades

# AlmaLinux, Rocky Linux
sudo dnf upgrade
sudo dnf install dnf-automatic
sudo systemctl enable --now dnf-automatic-install.timer

В Debian и Ubuntu пакет unattended-upgrades по умолчанию устанавливает обновления безопасности. Новое ядро начинает работать только после перезагрузки, поэтому регулярно планируйте перезагрузку.

Работа от имени пользователя с sudo

sudo adduser alice && sudo usermod -aG sudo alice          # Debian, Ubuntu
sudo useradd -m -G wheel alice && sudo passwd alice        # AlmaLinux, Rocky Linux
sudo install -d -m 700 -o alice -g alice /home/alice/.ssh
sudo install -m 600 -o alice -g alice /root/.ssh/authorized_keys /home/alice/.ssh/

Задайте пользователю надёжный пароль: его запрашивает sudo, и он нужен для входа через консоль. Прежде чем продолжить, убедитесь, что ssh alice@203.0.113.10 и sudo -v работают.

Вход по SSH только по ключам

Создайте /etc/ssh/sshd_config.d/00-hardening.conf:

PasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin prohibit-password

Для каждого параметра sshd использует первое прочитанное значение, поэтому файл с именем 00-… имеет приоритет над файлами, которые читаются позже, например 50-cloud-init.conf. Проверьте конфигурацию, примените её (reload) и посмотрите действующие значения:

sudo sshd -t && sudo systemctl reload ssh      # Debian, Ubuntu
sudo sshd -t && sudo systemctl reload sshd     # AlmaLinux, Rocky Linux
sudo sshd -T | grep -Ei 'passwordauth|kbdinteractive|permitrootlogin'

Когда пользователь с sudo заработает, можно задать PermitRootLogin no. В FreeBSD внесите те же изменения в /etc/ssh/sshd_config и выполните service sshd reload.

Включение межсетевого экрана

Сначала посмотрите командой sudo ss -tulpn, какие службы ожидают подключений: всё, что привязано к 0.0.0.0 или [::], доступно из интернета, если его не блокирует межсетевой экран. В Debian следующий набор правил в /etc/nftables.conf пропускает SSH, loopback, ICMP и ответы на ваши собственные соединения, а всё остальное отбрасывает:

#!/usr/sbin/nft -f
flush ruleset

table inet filter {
    chain input {
        type filter hook input priority filter; policy drop;
        ct state established,related accept
        ct state invalid drop
        iif "lo" accept
        meta l4proto { icmp, ipv6-icmp } accept
        tcp dport 22 accept
    }
    chain forward {
        type filter hook forward priority filter; policy drop;
    }
}
sudo nft -c -f /etc/nftables.conf     # check syntax
sudo nft -f /etc/nftables.conf        # load now
sudo systemctl enable nftables        # load at boot

Для каждой службы, которую вы открываете наружу, добавьте правило вроде tcp dport { 80, 443 } accept. Не закрывайте ICMP: без ICMPv6 не работает IPv6.

flush ruleset удаляет все существующие правила, в том числе созданные Docker, libvirt или межсетевым экраном Proxmox VE. На таких хостах используйте вместо этого их собственные средства управления межсетевым экраном.

В Ubuntu проще воспользоваться ufw: sudo ufw allow OpenSSH, затем sudo ufw enable. В AlmaLinux и Rocky Linux обычно уже активен firewalld, и SSH в нём разрешён. Просмотрите его настройки командой sudo firewall-cmd --list-all, добавьте службы с помощью sudo firewall-cmd --permanent --add-service=https, удалите ненужные, например cockpit, с помощью --remove-service, а затем выполните sudo firewall-cmd --reload.

Ограничение перебора паролей

Когда вход по паролю отключён, перебор не может увенчаться успехом, но засоряет логи. fail2ban блокирует адреса после повторяющихся неудачных попыток входа. Установите его командой sudo apt install fail2ban python3-systemd, затем создайте /etc/fail2ban/jail.local:

[sshd]
enabled = true
backend = systemd
maxretry = 5
bantime = 1h

Перезапустите его командой sudo systemctl restart fail2ban и проверьте состояние командой sudo fail2ban-client status sshd. В AlmaLinux и Rocky Linux fail2ban устанавливается из EPEL: выполните sudo dnf install epel-release, затем sudo dnf install fail2ban. Более лёгкая альтернатива — sshguard.

Синхронизация времени

Логи, TLS-сертификаты и коды двухфакторной аутентификации зависят от точного времени. Команда timedatectl должна выводить System clock synchronized: yes. Если это не так, установите пакет chrony и включите его службу.

Резервное копирование данных

Мы не делаем резервных копий ваших данных, а RAID — не резервная копия: он не защищает от удаления, программ-вымогателей или компрометации системы. Следуйте правилу 3-2-1: три копии данных на двух разных типах носителей, причём одна копия хранится вне основной площадки, например на сервере в другой локации. Такие инструменты, как restic и BorgBackup, шифруют данные и выполняют дедупликацию. Регулярно проверяйте восстановление из резервной копии.

Защита аккаунта в личном кабинете

Любой, кто может войти в ваш личный кабинет, может переустановить сервер, открыть его консоль или загрузить его в режим восстановления. Включите двухфакторную аутентификацию (TOTP) в разделе Аккаунт → Безопасность и используйте пароль, который больше нигде не применяете.

Мониторинг сервера

Настройте внешнюю проверку доступности (ping или HTTP), которая выполняется за пределами нашей сети, оповещения о заполнении дисков и нагрузке, а также оповещения RAID и SMART, описанные в статье Мониторинг и восстановление программного RAID. Сетевые инциденты публикуются на нашей странице статуса.

Если сервер взломан

  1. Остановите ущерб. Если сервер атакует других, выключите его или загрузите в режим восстановления, который запускает чистую систему по сети.
  2. Не доверяйте установленной системе. Из режима восстановления скопируйте только нужные данные — не программы и не скрипты, — а также логи, если хотите провести расследование.
  3. Переустановите операционную систему. Очистка на месте никогда не бывает надёжной.
  4. Замените все секреты, которые хранились на сервере или использовались для доступа к нему: SSH-ключи, пароли, API-токены и учётные данные баз данных.
  5. Восстановите данные из резервной копии, сделанной до взлома, устраните уязвимость, которой воспользовался злоумышленник, и перед возвращением сервера в работу снова пройдите этот чек-лист.

Получив жалобу на нарушение (abuse) в отношении вашего сервера, мы уведомляем вас и даём 24 часа на устранение проблемы; активные атаки пресекаются немедленно с помощью нулевой маршрутизации (null route) или приостановки обслуживания. Подробности — в Правилах допустимого использования.

Похожие руководства

Все руководства