Защита SSH и аутентификация по ключу
Отключайте аутентификацию по паролю, настраивайте пары ключей, ограничивайте доступ с помощью AllowUsers и используйте fail2ban
«Защита SSH и аутентификация по ключу» — бесплатный урок Cyber Security Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cyber Security Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cyber Security Academy содержит 4 уроков всего.
Почему важна безопасность SSH
SSH — основной протокол удалённого администрирования серверов Linux. Неправильно настроенный сервер SSH — одна из самых распространённых точек входа для атакующих: он доступен из интернета и постоянно подвергается атакам ботов, выполняющих перебор паролей.
Генерация пары ключей SSH
Аутентификация по ключу надёжнее паролей. Сгенерируйте пару ключей:
ssh-keygen -t ed25519 -C "your_email"
# Creates ~/.ssh/id_ed25519 (private) and id_ed25519.pub (public)
# Never share the private keyУстановка открытых ключей
Скопируйте свой открытый ключ на сервер:
ssh-copy-id user@server
# Or manually:
cat ~/.ssh/id_ed25519.pub >> ~/.ssh/authorized_keys
chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keysОтключение аутентификации по паролю
После того как аутентификация по ключу заработает, отключите вход по паролю, чтобы устранить риск перебора паролей:
# In /etc/ssh/sshd_config:
PasswordAuthentication no
PermitRootLogin no
PubkeyAuthentication yes
sudo systemctl restart sshdИзменение порта SSH по умолчанию
Перенос SSH с порта 22 уменьшает количество автоматического сканирования в журналах. Это безопасность за счёт неизвестности — не настоящая защита, но она уменьшает количество записей в журнале. Всегда обновляйте правила брандмауэра в соответствии с новым портом.
# /etc/ssh/sshd_config
Port 2222
# Then update firewall:
ufw allow 2222/tcp
ufw delete allow 22/tcpОграничение доступа к SSH по пользователю/IP
Ограничьте список пользователей, которым разрешено подключаться по SSH, и источники подключений:
# /etc/ssh/sshd_config
AllowUsers alice bob
AllowGroups sshusers
# Or restrict by source IP in /etc/hosts.allow:
sshd: 192.168.1.0/24Время ожидания SSH и ограничения входа
Сократите поверхность атаки с помощью ограничений сеансов и попыток:
# /etc/ssh/sshd_config
ClientAliveInterval 300 # disconnect idle sessions after 5 min
ClientAliveCountMax 2
MaxAuthTries 3 # max password attempts
LoginGraceTime 30 # seconds to authenticateИспользование fail2ban
fail2ban отслеживает файлы журналов и блокирует IP-адреса, демонстрирующие вредоносные шаблоны, например слишком большое количество неудачных входов по SSH. Он динамически обновляет правила брандмауэра, чтобы блокировать атакующих.
apt install fail2ban
# /etc/fail2ban/jail.local:
[sshd]
enabled = true
maxretry = 3
bantime = 3600Агент SSH и перенаправление ключей
Агент SSH хранит расшифрованный закрытый ключ в памяти, чтобы Вам не приходилось повторно вводить парольную фразу при каждом входе. Перенаправление агента (ssh -A) передаёт Ваш ключ через промежуточные узлы — используйте эту возможность осторожно, поскольку скомпрометированный промежуточный сервер может украсть ключ из сокета агента.
Двухфакторная аутентификация для SSH
Добавьте TOTP к SSH с помощью модуля Google Authenticator PAM для дополнительной защиты даже при аутентификации по ключу. Для входа требуются и ключ, и одноразовый пароль OTP, зависящий от времени.
Аудит конфигурации SSH
Проверьте конфигурацию SSH с помощью:
sshd -T | grep -E "passwordauth|permitroot|pubkeyauth|port"
# Check who is connected:
ss -tnp | grep :22
whoБыстрая проверка: усиление защиты SSH
Какую настройку sshd_config следует установить в значение no, чтобы устранить атаки перебором паролей против SSH?
Итоги урока
Усиление защиты SSH: используйте ключи Ed25519, отключите аутентификацию по паролю и вход суперпользователя, смените порт 22, ограничьте AllowUsers, задайте время ожидания бездействия и установите fail2ban. Никогда не передавайте закрытые ключи другим лицам. Выполняйте аудит с помощью sshd -T. Перенаправление агента удобно, но опасно на ненадёжных узлах.
Часто задаваемые вопросы
Урок «Защита SSH и аутентификация по ключу» бесплатный?
Да — полный текст урока «Защита SSH и аутентификация по ключу» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cyber Security Academy, подпишись на CoddyKit PRO. Курс Cyber Security Academy содержит 4 уроков всего.
Чему я научусь в уроке «Защита SSH и аутентификация по ключу»?
Отключайте аутентификацию по паролю, настраивайте пары ключей, ограничивайте доступ с помощью AllowUsers и используйте fail2ban Ты практикуешь Cyber Security Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Cyber Security Academy?
Предыдущий опыт не требуется. Cyber Security Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Защита SSH и аутентификация по ключу»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Cyber Security Academy?
Да. Каждый урок Cyber Security Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Разрешения и владельцы файлов
- Управление пользователями и группами
- Защита SSH и аутентификация по ключу
- Правила брандмауэра iptables и UFW