Базовая защита SSH — обязательный минимум конфигурации

защита ssh от взлома

Защита SSH (Secure Shell) от взлома — это критически важная задача, особенно если сервер доступен из интернета или используется в локальной сети с потенциальными уязвимостями. SSH предоставляет удалённый доступ к серверу, и если злоумышленник получит доступ к вашему SSH, он сможет полностью контролировать систему, что может привести к серьёзным последствиям. Давайте разберём, почему это так важно и какие риски возникают при отсутствии защиты.

Почему SSH нужно защищать?

SSH — это «входная дверь» в ваш сервер
SSH часто используется для управления серверами, особенно в Linux/Unix-системах. Если злоумышленник взломает SSH, он получит полный доступ к серверу, включая возможность:

    • Устанавливать вредоносное ПО (например, майнеры криптовалюты или ransomware).
    • Удалять или изменять важные данные.
    • Использовать сервер как плацдарм для атак на другие системы (например, в рамках ботнета).
    • Получить доступ к конфиденциальной информации (пароли, ключи, данные пользователей).

Популярность атак на SSH
SSH-серверы — одна из самых частых целей для автоматизированных атак. Боты постоянно сканируют интернет в поисках открытых портов SSH (по умолчанию это порт 22) и пытаются подобрать пароли методом перебора (brute-force). Например:

    • По данным исследований, таких как отчёт F5 Labs за 2023 год, SSH-серверы подвергаются миллионам атак ежедневно.
    • Если у вас слабый пароль (например, «admin123»), его могут подобрать за считанные минуты с помощью инструментов вроде Hydra или Medusa.

Риск утечки данных
Если злоумышленник получит доступ через SSH, он сможет скачать все данные, хранящиеся на сервере. Это особенно опасно, если сервер содержит:

    • Персональные данные пользователей (например, в соответствии с GDPR или другими законами о защите данных).
    • Коммерческую информацию (контракты, финансовые данные).
    • Ключи доступа к другим системам (например, API-ключи, приватные ключи для других серверов).

Компрометация всей сети
Если сервер находится в локальной сети, взлом SSH может стать точкой входа для атаки на другие устройства в сети. Злоумышленник может:

    • Использовать сервер для сканирования сети.
    • Распространять вредоносное ПО на другие машины.
    • Перехватывать трафик (например, через ARP-спуфинг).

Репутационные и финансовые потери
Если ваш сервер взломают, это может привести к:

    • Утечке данных клиентов, что подорвёт доверие к вашей компании.
    • Штрафам за нарушение законов о защите данных (например, GDPR может наложить штраф до 20 млн евро или 4% годового оборота).
    • Простоям в работе, что приведёт к финансовым убыткам.

Основные угрозы для SSH

  1. Brute-force атаки
    Злоумышленники используют автоматизированные инструменты для подбора паролей. Если у вас слабый пароль или стандартные учётные данные (например, «root» с паролем «password»), сервер будет взломан очень быстро.
  2. Утечка ключей
    Если вы используете SSH-ключи для аутентификации, но приватный ключ попал в руки злоумышленника (например, из-за компрометации вашего компьютера), он сможет подключиться к серверу без пароля.
  3. Уязвимости в SSH
    Старые версии SSH (например, устаревшие реализации OpenSSH) могут содержать уязвимости, которые злоумышленники могут эксплуатировать. Например, в 2019 году была обнаружена уязвимость CVE-2019-6111, позволяющая перезаписывать файлы через SCP.
  4. Перехват трафика (man-in-the-middle)
    Если SSH настроен неправильно (например, отключена проверка ключей хоста), злоумышленник может подменить сервер, и вы подключитесь к фальшивому серверу, передав свои учётные данные.
  5. Социальная инженерия
    Злоумышленники могут обманом заставить администратора раскрыть пароль или ключ, например, через фишинговые атаки.

как защитить ssh сервер

Как защитить SSH

1️⃣ Отключаем root-доступ. Вход под пользователем root — это частая цель атак. Запретите его в /etc/ssh/sshd_config:

PermitRootLogin no

2️⃣ Меняем стандартный порт.

По умолчанию SSH работает на порту 22. Смена порта (например, на 2222) не остановит опытного хакера, но значительно снизит количество автоматизированных атак. В файле /etc/ssh/sshd_config измените строку:
Port 10022

(Внимание! Не забудьте открыть новый порт 10021 в фаерволе (ufw/iptables/firewalld)!!!

3️⃣ Используем SSH-ключи вместо паролей! Аутентификация по ключам гораздо безопаснее, чем по паролю. Отключите вход по паролю в /etc/ssh/sshd_config:

PasswordAuthentication no
PubkeyAuthentication yes

После этого сгенерируйте пару ключей:

ssh-keygen -t rsa -b 4096

И скопируйте публичный ключ на сервер:

ssh-copy-id user@server

Всё, теперь можно «заряжать» ключ в ssh-клиент и пользоваться!

4️⃣ Ограничиваем доступ по IP. Тут можно просто ограничить вход только с доверенных IP через AllowUsers или AllowGroups:

AllowUsers user1@192.168.1.100

А можно настроить соответствующее правило в фаерволе. Вот пример для ufw:

sudo ufw allow from 192.168.1.0/24 to any port 10022
sudo ufw deny 10022

5️⃣ Включаем защиту от brute-force атак. В этом нам поможет утилита fail2ban, которая блокируют IP-адреса после нескольких неудачных попыток входа. Установка fail2ban:

apt install fail2ban # Debian/Ubuntu
yum install fail2ban # CentOS/RHEL

Прописываем настройки в файле: /etc/fail2ban/jail.local:

[sshd]
enabled = true
maxretry = 3
findtime = 10m
bantime = 1h

6️⃣ Отключаем X11 Forwarding и пустые пароли

X11Forwarding no
PermitEmptyPasswords no

После сохранения изменений в файле sshd_config, не забывайте перезапускать службу sshd, чтобы изменения вступили в силу.

$: sudo systemctl restart sshd

P.S.:

Защита SSH — это не просто рекомендация, а необходимость, особенно для серверов, доступных из интернета. Взлом SSH может привести к катастрофическим последствиям: от утечки данных до полной компрометации инфраструктуры. Внедрение базовых мер безопасности, таких как смена порта, использование ключей, настройка файрвола и мониторинг, значительно снижает риски. Однако важно помнить, что безопасность — это непрерывный процесс, и нужно регулярно обновлять настройки и следить за новыми угрозами.

Оставьте комментарий


Рейтинг@Mail.ru