5 лучших методов защиты SSH на Ubuntu
12:17, 28.07.2026
Обеспечение безопасности доступа по протоколу SSH (Secure Shell) на серверах с различными операционными системами, включая Ubuntu, имеет решающее значение для предотвращения несанкционированного доступа и снижения рисков безопасности. Без необходимых мер безопасности SSH может стать уязвимой точкой входа.
В этой статье мы расскажем о пяти лучших методах обеспечения безопасности SSH в Ubuntu, включая внедрение многофакторной аутентификации, изменение настроек безопасности по умолчанию и усиление защиты с помощью брандмауэров.
1. Настройка двухфакторной аутентификации
Один из самых простых способов повысить безопасность SSH — добавить дополнительный уровень аутентификации с помощью двухфакторной аутентификации (2FA). Благодаря 2FA даже если злоумышленник угадает или получит пароль, ему по-прежнему потребуется второй элемент аутентификации для получения доступа. Обычно используется комбинация одноразового пароля, отправленного на устройства пользователя, и парольной фразы.
Благодаря добавлению второго уровня аутентификации пользователи могут быть уверены, что любая попытка получить удаленный доступ через SSH будет подвергаться проверке с использованием более чем одного учетного средства.
В процесс входа в SSH можно интегрировать такие популярные инструменты, как Google Authenticator или Authy. Включение двухфакторной аутентификации (2FA) в SSH может значительно снизить риск несанкционированного доступа, особенно на общедоступных серверах. В конце концов, два уровня защиты лучше, чем один.
2. Изменение настроек безопасности по умолчанию
Изменение настроек SSH по умолчанию может закрыть распространённые векторы атак, используемые злоумышленниками.
Параметры SSH по умолчанию находятся в конфигурационном файле в /etc/ssh/sshd_config. Вот несколько ключевых настроек, которые следует изменить для повышения безопасности.
Изменение порта по умолчанию
По умолчанию SSH работает на порту 22. Изменение этого порта на менее распространённый (например, 2222) снижает уязвимость перед автоматизированным сканированием и атаками методом перебора, поскольку злоумышленники в первую очередь проверяют порты по умолчанию.
Чтобы изменить порт по умолчанию, отредактируйте файл конфигурации SSH /etc/ssh/sshd_config и обновите директиву Port на выбранный вами порт. Не забудьте обновить все правила брандмауэра с учётом этого изменения.
Отключение входа под пользователем root
Разрешение входа под пользователем root через SSH может быть рискованным, так как это предоставляет прямой доступ к пользователю root. Привилегии root дают полный доступ ко всей системе. Таким образом, отключив вход под пользователем root, вы сможете контролировать уровень доступа каждого пользователя к серверу.
Отключение входа пользователя root гарантирует, что злоумышленникам потребуется знать конкретное имя пользователя, что добавляет дополнительный уровень безопасности. Чтобы отключить вход пользователя root, откройте /etc/ssh/sshd_config и установите PermitRootLogin в значение no.
Вы можете настроить пользователей с правами sudo , если системным администраторам требуются привилегии для выполнения определённых задач.
Отключение аутентификации по паролю
Аутентификация по паролю по умолчанию, хотя и удобна, часто становится причиной успешных атак методом перебора.
Исходя из нашего опыта, оптимальным решением является переход на аутентификацию с использованием ключей: поскольку для этого требуется пара SSH-ключей, вы устраняете риск, связанный со слабыми паролями.
Чтобы отключить аутентификацию по паролю по умолчанию, в файле /etc/ssh/sshd_config установите PasswordAuthentication на no, что ограничивает доступ только для тех, у кого есть действительный SSH-ключ.
Запись должна выглядеть следующим образом:
PasswordAuthenticationno
Ограничение доступа с помощью «AllowUsers»
Все пользователи системы могут входить в систему через SSH с помощью своих паролей или открытых ключей, но не все из них должны иметь такую возможность. Директива AllowUsers позволяет определить, каким пользователям разрешен вход на сервер по SSH. Это простой способ ограничить доступ для определённых пользователей и предотвратить несанкционированные входы.
В файле /etc/ssh/sshd_config добавьте AllowUsers , а за ним — имена пользователей, которым разрешен доступ по SSH, что ещё больше укрепит безопасность.
3. Использование SSH-сертификатов для аутентификации клиентов
SSH-сертификаты являются альтернативой традиционным SSH-ключам и обеспечивают более высокий уровень безопасности. SSH-ключи — это, по сути, строки символов, которые можно скопировать, поэтому они не обеспечивают достаточной защиты.
Аутентификация на основе SSH-сертификатов является более предпочтительной альтернативой. SSH-сертификаты проверяют подлинность каждого ключа при его использовании для входа в систему. С помощью SSH-сертификатов можно проще управлять доступом и сроками действия, что идеально подходит для крупных сред или временного доступа. Настроив SSH-сервер на доверие к центру сертификации (CA), выдающему сертификаты пользователям, вы получаете больший контроль над тем, кто имеет доступ к серверу, без необходимости вручную управлять отдельными ключами.
Вы можете сгенерировать сертификаты с помощью OpenSSH, используя ssh-keygen.
4. Защита доступа с помощью бастионного хоста
Бастионный хост выступает в качестве безопасного посредника между вашими частными серверами и внешним доступом. Разместив доступ по SSH к внутренним серверам за бастионным хостом, вы создаете единую, укрепленную точку входа, которую проще контролировать и защищать. Бастионный хост располагается непосредственно перед брандмауэром, поэтому он является первой точкой защиты системы.
Чтобы развернуть бастионный хост, ограничьте доступ по SSH к частным серверам так, чтобы к ним мог подключаться только бастионный хост, тем самым снижая уязвимость перед внешними угрозами.
5. Обеспечение безопасности с помощью брандмауэров
Брандмауэры добавляют важный уровень безопасности, контролируя входящий и исходящий трафик; в зависимости от настроек брандмауэры также могут защищать трафик внутри частной сети. В Ubuntu UFW (Uncomplicated Firewall) — это простой в использовании инструмент для управления правилами брандмауэра.
Начните с разрешения доступа только к выбранному порту SSH и заблокируйте все остальные неавторизованные порты. Кроме того, ограничение скорости SSH-соединений может снизить риск атак методом перебора, блокируя повторяющиеся попытки подключения с одного IP-адреса.
Чтобы усилить безопасность с помощью брандмауэров:
- Установите UFW: sudo apt install ufw
- Разрешите только выбранный вами порт SSH (например, 2222): sudo ufw allow 2222/tcp
- Включите ограничение частоты: sudo ufw limit 2222/tcp
- Включите брандмауэр: sudo ufw enable
Настройка брандмауэра таким образом уменьшает площадь атаки и сводит к минимуму риск несанкционированного доступа.
Пользователи, работающие в Linux, могут использовать iptables, где можно определять правила, регулирующие входящий SSH-трафик, и сортировать его по порту, IP-адресу или протоколу. Система iptables представляет собой интерфейс к брандмауэру netfilter, поэтому изменение её настроек приводит к изменению настроек брандмауэра.
Заключительные замечания
Обеспечение безопасности SSH в Ubuntu требует комплекса мер — от настройки параметров по умолчанию до внедрения более продвинутых методов, таких как SSH-сертификаты и бастионные хосты. Каждый из описанных здесь методов играет важную роль в защите доступа по SSH и укреплении безопасности сервера. Реализация этих мер может значительно снизить уязвимости и повысить общий уровень безопасности вашего сервера Ubuntu.