0Pricing
Linux Server Deployment & SSH Mastery · Урок

Усиление защиты SSH-сервера

Усилите защиту SSH-сервера, редактируя sshd_config: отключите вход для root и по паролю, измените опасные значения по умолчанию, ограничьте список пользователей и примените многоуровневую защиту, чтобы подключаться могли только доверенные клиенты.

«Усиление защиты SSH-сервера» — бесплатный урок Linux Server Deployment & SSH Mastery на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Linux Server Deployment & SSH Mastery, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Linux Server Deployment & SSH Mastery содержит 4 уроков всего.

Зачем усиливать защиту SSH

Сервер SSH, открытый в интернете, постоянно подвергается автоматизированным атакам. Настройки по умолчанию оставляют несколько открытых дверей, которые боты безостановочно проверяют.

Усиление защиты означает ужесточение конфигурации на стороне сервера, чтобы злоумышленники не смогли войти методом перебора, даже обнаружив Ваш сервер.

Файл sshd_config

Поведение SSH на стороне сервера управляется файлом /etc/ssh/sshd_config. Это не то же самое, что конфигурация клиента, которую Вы настраивали ранее (~/.ssh/config).

Всегда редактируйте этот файл с правами root и создавайте резервную копию перед внесением изменений.

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
sudo nano /etc/ssh/sshd_config

Отключение входа root

Учётная запись root — первое, что пытаются использовать злоумышленники. Отключение прямого входа root заставляет их дополнительно угадать действительное имя пользователя.

Задайте для PermitRootLogin значение no. Администраторам следует входить как обычным пользователям и использовать sudo.

PermitRootLogin no

Отключение аутентификации по паролю

После настройки входа по ключу полностью отключите пароли. Это полностью пресекает атаки методом перебора — пароль для угадывания отсутствует.

Предупреждение: убедитесь, что вход по ключу работает, прежде чем применять это изменение, иначе Вы можете заблокировать себе доступ.

PasswordAuthentication no
ChallengeResponseAuthentication no
PubkeyAuthentication yes

Ограничение пользователей, которым разрешён вход

С помощью AllowUsers или AllowGroups можно точно указать, каким учётным записям разрешено использовать SSH. Любому пользователю, которого нет в списке, будет отказано даже при наличии действительных ключей.

Это простой и эффективный способ контроля на многопользовательских серверах.

AllowUsers deploy admin
# or by group:
AllowGroups sshusers

Изменение порта по умолчанию (необязательно)

Перенос SSH с порта 22 не повышает реальную безопасность, но значительно уменьшает количество шума от автоматических сканеров в журналах.

Выберите нестандартный порт, не забудьте открыть его в межсетевом экране и сообщить о нём клиентам.

Port 2222

Ограничение попыток входа и сеансов

Несколько директив сокращают время, доступное злоумышленникам:

  • MaxAuthTries — число неудачных попыток до разрыва подключения
  • LoginGraceTime — количество секунд, отведённых на аутентификацию
  • MaxSessions — число одновременных сеансов для одного подключения
MaxAuthTries 3
LoginGraceTime 30
MaxSessions 2

Безопасное применение изменений

После редактирования проверьте синтаксис с помощью sshd -t до перезапуска — опечатка может помешать запуску сервиса и заблокировать Вам доступ.

Затем перезагрузите сервис. Оставьте текущий сеанс открытым и проверьте новое подключение, прежде чем закрывать его.

sudo sshd -t
sudo systemctl restart ssh

Защита от перебора с помощью Fail2ban

Fail2ban отслеживает журналы аутентификации и временно блокирует IP-адреса, с которых было выполнено слишком много неудачных попыток. Он добавляет динамический уровень защиты брандмауэром поверх настроек sshd.

Установите его и включите тюрьму SSH; для большинства серверов стандартные настройки вполне подходят.

sudo apt install fail2ban
sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd

Проверьте усиление защиты

Убедитесь, что сервер теперь отклоняет всё, что Вы отключили. Попробуйте подключиться с подробным выводом, чтобы увидеть, какие методы аутентификации предлагает сервер.

Защищённый сервер должен предлагать только publickey и отклонять вход по паролю и вход от имени root.

ssh -v deploy@server
# Look for: 'Authentications that can continue: publickey'

Рекомендации

Поддерживайте безопасность SSH-сервера:

  • Никогда не применяйте PasswordAuthentication no, не проверив вход по ключу
  • Оставляйте один открытый сеанс во время изменения конфигурации
  • Используйте sshd -t после каждого изменения
  • Сочетайте усиление защиты sshd с брандмауэром и Fail2ban

Быстрая проверка

Проверьте свои знания об усилении защиты SSH.

Итоги

Вы усилили защиту SSH-сервера через /etc/ssh/sshd_config:

  • Отключили вход от имени root и вход по паролю
  • Разрешили только выбранных пользователей с помощью AllowUsers
  • Настроили MaxAuthTries и LoginGraceTime
  • Добавили Fail2ban для динамической защиты от перебора

Проверьте конфигурацию с помощью sshd -t и всегда выполняйте проверку перед закрытием сеанса.

Часто задаваемые вопросы

Урок «Усиление защиты SSH-сервера» бесплатный?

Да — полный текст урока «Усиление защиты SSH-сервера» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Linux Server Deployment & SSH Mastery, подпишись на CoddyKit PRO. Курс Linux Server Deployment & SSH Mastery содержит 4 уроков всего.

Чему я научусь в уроке «Усиление защиты SSH-сервера»?

Усилите защиту SSH-сервера, редактируя sshd_config: отключите вход для root и по паролю, измените опасные значения по умолчанию, ограничьте список пользователей и примените многоуровневую защиту, что… Ты практикуешь Linux Server Deployment & SSH Mastery с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Linux Server Deployment & SSH Mastery?

Предыдущий опыт не требуется. Linux Server Deployment & SSH Mastery на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Усиление защиты SSH-сервера»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Linux Server Deployment & SSH Mastery?

Да. Каждый урок Linux Server Deployment & SSH Mastery включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Принципы протокола SSH
  2. Настройка SSH-клиента
  3. Аутентификация по ключам SSH
  4. Усиление защиты SSH-сервера
← Назад к Linux Server Deployment & SSH Mastery