Регулярные обновления
Большинство взломов серверов эксплуатируют уязвимости, для которых исправление уже выпущено, но не применено. Регулярно выполняйте обновления: apt update && apt upgrade -y на Ubuntu/Debian, или dnf upgrade -y на AlmaLinux/Rocky/CentOS Stream. Для автоматических обновлений безопасности на Ubuntu/Debian установите и настройте пакет unattended-upgrades.
SSH-ключи вместо паролей
Аутентификация по паролю — постоянная цель автоматических сканирований, перебирающих тысячи комбинаций в минуту. Сгенерируйте SSH-ключ и скопируйте его на сервер (точные шаги — в статье о подключении по SSH), затем убедитесь, что вход возможен без пароля.
После того как аутентификация по ключу заработала, отредактируйте /etc/ssh/sshd_config и установите: PasswordAuthentication no, затем перезапустите сервис командой: systemctl restart sshd. Внимание: делайте этот шаг только после подтверждения доступа по ключу — иначе вы рискуете сами заблокировать себе доступ к серверу.
Отключение прямого входа root (опционально, для продвинутых)
Дополнительный шаг, рекомендуемый после того как вы освоитесь с администрированием Linux, — создание отдельного пользователя с правами sudo и отключение прямого входа под root (PermitRootLogin no в sshd_config). Делайте этот шаг только после того, как убедитесь, что новый пользователь с привязанным SSH-ключом может подключаться и выполнять команды через sudo без проблем.
Firewall с ufw
ufw (Uncomplicated Firewall) — простая надстройка над iptables, доступная по умолчанию на Ubuntu и устанавливаемая на Debian командой apt install ufw. Базовое правило: разрешайте только нужные порты и блокируйте всё остальное.
Типичная настройка для веб-сервера: ufw allow OpenSSH (или ufw allow 22/tcp, если используется стандартный порт — если вы меняли SSH-порт, разрешите новый, иначе заблокируете себе доступ), ufw allow 80/tcp, ufw allow 443/tcp, затем ufw enable для включения firewall. Проверить активные правила можно в любой момент командой: ufw status verbose.
fail2ban против автоматических попыток входа
fail2ban отслеживает системные журналы (например, неудачные попытки входа по SSH) и временно блокирует на уровне firewall IP-адреса, превысившие число неверных попыток за определённый промежуток времени.
Установка: apt install fail2ban на Ubuntu/Debian, dnf install fail2ban на AlmaLinux/Rocky. Конфигурация по умолчанию для SSH обычно работает без изменений; для настройки (длительность блокировки, пороги) скопируйте /etc/fail2ban/jail.conf в /etc/fail2ban/jail.local перед редактированием, затем перезапустите сервис: systemctl restart fail2ban.