Усиление SSH и ключевая аутентификация
Тема дорожной карты · Linux & Unix Fundamentals
Усиление sshd начинается с базовых настроек безопасности, таких как отключение парольного и root-логина (PasswordAuthentication no, PermitRootLogin no). Это позволяет существенно уменьшить риск несанкционированного доступа. Дальнейшее упрочнение осуществляется через использование ключевой аутентификации, создание ключей с помощью ssh-keygen -t ed25519 и их перенос на целевой сервер с помощью ssh-copy-id. Это не только повышает уровень безопасности, но и упрощает процесс аутентификации для пользователей.
Для устойчивой работы системы важно ограничить наборы шифров, MAC и KEX современными алгоритмами, что делает взлом более сложным. Установка низкого значения MaxAuthTries и использование инструментов, таких как fail2ban, или настройка rate-limit на фаерволе, помогает предотвратить атаки типа brute-force. Важно помнить, что forwarding ssh-agent следует включать только при необходимости, так как это может создать уязвимости безопасности.
Для парка серверов рекомендуется рассмотреть модель сертификатов, подписанных собственным CA. Это позволяет стандартизировать и автоматизировать процесс управления ключами, что существенно упрощает процесс аутентификации и уменьшает риск утечек конфиденциальной информации.
Как это работает
Усиление SSH и ключевая аутентификация — это многоуровневая защита (defense in depth). Она начинается с базовых мер безопасности, таких как ядро и пакеты, которые должны быть пропатчены, и сервисы, работающие под непривилегированными пользователями. Дополнительно используются шифрование SSH-ключей, отключение root-логина, включение фаервола (ufw, firewalld), использование MAC (SELinux или AppArmor), аудит через auditd, защита от вторжений через fail2ban, хеширование паролей сильными алгоритмами и регулярные бекапы системы до того, как они стали необходимыми.
Когда применять
Рекомендуется использовать CIS Benchmark для вашего дистрибутива как базовую конфигурацию; настройки можно корректировать в зависимости от конкретных требований. Для интернет-ориентированных сервисов следует использовать только HTTPS, ключевую аутентификацию SSH, fail2ban и автоматические обновления безопасности (unattended-upgrades на Debian, dnf-automatic на RHEL). Для многопользовательских систем рекомендуется использовать SELinux или AppArmor, а для однонаправленных appliance стандартных настроек обычно достаточно. Подписывайт Yöntem: lynis (security audit), chkrootkit/rkhunter (rootkit-скан), aide (мониторинг целостности файлов).
Типичные ошибки
Типичные ошибки при использовании усиления SSH и ключевой аутентификации включают ошибочное мнение, что SELinux "мешает" и использование команды setenforce 0 навсегда, что убирает последний MAC-слой. Другой распространённой ошибкой является использование парольной аутентификации SSH, что делает систему уязвимой для атак типа brute-force. Также часто встречаются ситуации, когда SSH-ключи для ушедших пользователей не ротируются, а между "внутренними" сервисами используются повторяющиеся пароли, что может привести к lateral movement. Наконец, откладывание обновлений ядра под предлогом, что "оно сломается", может привести к более серьёзным проблемам в будущем, когда CVE будут эксплуатированы.