Усиление защиты SSH и лучшие практики аудита
Применяйте усиление защиты через sshd_config, практики ротации ключей и журналирование аудита для повышения безопасности развертываний SSH.
«Усиление защиты SSH и лучшие практики аудита» — бесплатный урок Cryptology Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cryptology Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cryptology Academy содержит 4 уроков всего.
Отключение аутентификации по паролю
Наиболее эффективный шаг по усилению защиты SSH — задать PasswordAuthentication no в /etc/ssh/sshd_config. Это заставляет всех пользователей проходить аутентификацию с помощью открытых ключей, устраняя риски, связанные со слабыми или повторно используемыми паролями и атаками перебором. Перед отключением аутентификации по паролю убедитесь, что установлен хотя бы один разрешённый ключ, чтобы не заблокировать себе доступ.
Ограничение разрешённых пользователей и групп
Директивы AllowUsers и AllowGroups ограничивают доступ по SSH для указанных пользователей или участников групп. Например, AllowGroups sshusers разрешает доступ только участникам группы sshusers. Это обеспечивает эшелонированную защиту: даже если злоумышленник узнает имя пользователя и получит учётные данные, доступ по SSH будет запрещён, если для этой учётной записи он явно не разрешён.
Изменение порта по умолчанию
Изменение порта SSH с 22 на порт с большим номером — это мера сокрытия, а не защиты. Однако она значительно уменьшает количество лишних записей в журналах от автоматических сканеров, нацеленных на порт 22. Благодаря этому журналы легче анализировать в поисках настоящих угроз. Всегда используйте правила межсетевого экрана как основной механизм контроля доступа; сокрытие порта может быть только дополнительной мерой.
Отключение входа суперпользователя
Настройка PermitRootLogin no запрещает непосредственную аутентификацию суперпользователя через SSH. Атакующие, нацеленные на учётную запись root, получают гарантированно действительное имя пользователя и неограниченные права в случае успеха. Рекомендуемая настройка — PermitRootLogin prohibit-password: она разрешает вход суперпользователя только с помощью аутентификации по открытому ключу, блокируя перебор пароля root и сохраняя возможность аварийного доступа.
Ограничение числа попыток аутентификации
MaxAuthTries 3 ограничивает число попыток аутентификации для одного соединения тремя. После трёх неудач сервер разрывает соединение. Это замедляет попытки перебора. В сочетании с экспоненциальной задержкой, реализуемой fail2ban или SSHGuard, которые временно блокируют IP-адреса после повторяющихся неудач, атаки перебором становятся вычислительно неосуществимыми.
Ограничение времени входа
LoginGraceTime указывает, как долго сервер ожидает успешной аутентификации перед отключением. Значение по умолчанию — 120 секунд; уменьшение его до 20 секунд предотвращает медленные попытки перебора и сокращает удержание ресурсов неаутентифицированными соединениями. ClientAliveInterval и ClientAliveCountMax управляют проверками состояния соединения, отключая неактивные или неработающие сеансы.
Ограничение разрешённых криптографических алгоритмов
Современные конфигурации SSH должны ограничивать набор алгоритмов надёжными и современными вариантами. В sshd_config задайте для Ciphers значения chacha20-poly1305@openssh.com,aes256-gcm@openssh.com, для MACs — hmac-sha2-256-etm@openssh.com, а для KexAlgorithms — curve25519-sha256. Это устраняет устаревшие алгоритмы, такие как arcfour, DES и MAC на основе MD5, которые могут оставаться доступными для обратной совместимости.
Блокировка перебора с помощью fail2ban
fail2ban отслеживает журналы аутентификации и блокирует IP-адреса, для которых превышен порог неудачных попыток входа. После заданного числа неудач за определённый промежуток времени fail2ban добавляет правило iptables, отбрасывающее дальнейшие пакеты с этого IP-адреса. Такая автоматическая реакция делает атаки перебором практически неосуществимыми без ручного вмешательства.
Аудит с помощью ssh-audit
Инструмент ssh-audit подключается к SSH-серверу и оценивает его конфигурацию: какие алгоритмы обмена ключами, типы ключей сервера, шифры и MAC он предлагает, а также отмечает устаревшие или слабые варианты. Запуск ssh-audit на серверах до и после усиления защиты даёт объективную оценку изменений и помогает выявить пробелы в конфигурации.
Ведение журналов и аудит доступа
События аутентификации SSH записываются через syslog. В Linux файл /var/log/auth.log (Debian) или /var/log/secure (RHEL) регистрирует каждый успешный и неудачный вход, включая метку времени, имя пользователя, исходный IP-адрес и отпечаток использованного ключа. Отправка этих журналов в централизованную SIEM позволяет обнаруживать необычные модели доступа, например входы из неожиданных стран или в необычное время.
Полный пример усиленной конфигурации
Усиленная конфигурация sshd_config объединяет следующие настройки: PasswordAuthentication no, PermitRootLogin prohibit-password, MaxAuthTries 3, LoginGraceTime 20, AllowGroups sshusers, ограниченные наборы Ciphers и MACs, X11Forwarding no и AllowTcpForwarding no (если туннелирование не требуется). Каждая директива устраняет определённый вектор атаки, а вместе они формируют эшелонированную защиту SSH.
Конфигурация усиления защиты SSH
Какая настройка sshd_config наиболее эффективно устраняет атаки перебором паролей против SSH?
Повторение материала об усилении защиты SSH
Контрольный список усиления защиты SSH: отключите аутентификацию по паролю, ограничьте доступ с помощью AllowGroups/AllowUsers, отключите вход суперпользователя или разрешите его только по ключу, задайте MaxAuthTries 3, уменьшите LoginGraceTime, ограничьте алгоритмы только современными шифрами, разверните fail2ban или SSHGuard, запускайте ssh-audit для объективной оценки и централизуйте журналы для обнаружения аномалий.
Изучай Cryptology Academy с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 67
- Уроки
- 261
Часто задаваемые вопросы
Урок «Усиление защиты SSH и лучшие практики аудита» бесплатный?
Да — полный текст урока «Усиление защиты SSH и лучшие практики аудита» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cryptology Academy, подпишись на CoddyKit PRO. Курс Cryptology Academy содержит 4 уроков всего.
Чему я научусь в уроке «Усиление защиты SSH и лучшие практики аудита»?
Применяйте усиление защиты через sshd_config, практики ротации ключей и журналирование аудита для повышения безопасности развертываний SSH. Ты практикуешь Cryptology Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Cryptology Academy?
Предыдущий опыт не требуется. Cryptology Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Усиление защиты SSH и лучшие практики аудита»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Cryptology Academy?
Да. Каждый урок Cryptology Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Рукопожатие SSH и аутентификация ключом хоста
- Аутентификация открытым ключом и перенаправление агента
- Туннелирование SSH и методы перенаправления портов
- Усиление защиты SSH и лучшие практики аудита