SSH
Руководство по порту SSH: безопасный удаленный доступ к серверу
Узнайте, как SSH использует порт 22, когда его раскрывать, как тестировать удаленный доступ и как снизить риск перебора и учетных данных.
- Порт по умолчанию
- 22
- Протокол
- TCP
- Основное назначение
- Безопасное удалённое администрирование
Что такое порт SSH?
SSH или Secure Shell — это стандартный зашифрованный протокол для удаленного администрирования сервера. По умолчанию он прослушивает TCP-порт 22, где клиенты проходят аутентификацию, проверяют ключ хоста сервера и открывают защищенные сеансы оболочки, туннели или соединения автоматизации.
Порт 22 является портом SSH по умолчанию.
Большинство серверов Linux, сетевых устройств, служб Git, инструментов развертывания и настроек SFTP ожидают, что SSH будет доступен по TCP 22, если не настроено иное.
Использование SSH должно быть преднамеренным
Открытый порт SSH полезен для администрирования, но он также является одной из первых служб, сканируемых злоумышленниками в поисках слабых паролей или утечек ключей.
Как работает SSH
SSH создает зашифрованный канал между клиентом и удаленным сервером. Во время установки соединения клиент проверяет ключ хоста сервера, обе стороны согласовывают шифрование, а пользователь проходит аутентификацию с помощью пароля, ключа SSH, сертификата, аппаратного ключа или другого настроенного метода.
После аутентификации SSH может предоставить интерактивную оболочку, выполнить одну удаленную команду, перенаправить порты, скопировать файлы или использовать такие мощные инструменты, как Git, rsync, Ansible и конвейеры развертывания. Именно эта гибкость объясняет, почему SSH важен с эксплуатационной точки зрения и почему его доступность требует тщательной политики.
Когда следует открывать доступ по SSH
Откройте SSH, когда администраторам, инструментам автоматизации, заданиям CI/CD, управлению конфигурацией, службам Git или рабочим процессам восстановления необходим удаленный доступ к серверу или устройству. Для серверов публичного облака SSH часто является первым путем управления, используемым перед установкой инструментов более высокого уровня.
Не публикуйте SSH для всего Интернета, если доступ нужен только небольшой группе. По возможности отдавайте предпочтение VPN, хостам-бастионам, доступу с нулевым доверием, облачным последовательным консолям, спискам разрешенных исходных IP-адресов или подключению к частной сети. Если публичный SSH неизбежен, с самого начала необходимо обеспечить строгую аутентификацию и мониторинг.
Перед открытием порта 22
Прежде чем открывать порт 22, убедитесь, что sshd запущен, прослушивает предполагаемый интерфейс и настроен для действительно нужной вам модели аутентификации. Решите, разрешены ли пароли, какие пользователи могут входить в систему, отключен ли вход с правами root и как будут проверяться действия администратора.
Средство проверки портов может подтвердить, доступен ли TCP 22 извне вашей сети, но не может доказать, что пользователь может безопасно войти в систему. Используйте ssh -vvv, журналы сервера и тесты на уровне учетной записи для проверки доверия ключей хоста, разрешений ключей, политик MFA, доступа к оболочке и правил sudo.
Как открыть SSH в Windows, Linux и macOS
На Windows Server установите и включите сервер OpenSSH, запустите службу sshd и разрешите входящий TCP 22 в брандмауэре Защитника Windows. Серверам Windows, размещенным в облаке, также необходимы соответствующие правила облачного брандмауэра или группы безопасности.
В Linux установите OpenSSH Server, проверьте sshd_config и разрешите TCP 22 через брандмауэр хоста, например ufw, firewalld, nftables или iptables. Облачные экземпляры также требуют, чтобы группа безопасности поставщика разрешила использование одних и тех же исходных сетей.
В macOS включите удаленный вход, если в доверенных сетях требуется SSH. Для доступа к Интернету используйте те же элементы управления, что и на сервере: аутентификация на основе ключей, область видимости брандмауэра, ведение журналов и своевременные обновления.
- Сервисный уровень: sshd должен быть установлен, запущен и прослушивать выбранный TCP-порт.
- Сетевой уровень: межсетевой экран хоста, облачный межсетевой экран, NAT маршрутизатора и политика VPN должны разрешать использование предполагаемых исходных сетей.
- Уровень идентификации: отдавайте предпочтение ключам SSH, сертификатам или ключам с аппаратной поддержкой; избегайте широкого доступа к паролям.
- Уровень аудита: фиксируйте успешные входы в систему, неудачные попытки, исходные IP-адреса, изменения пользователей, события sudo и ротацию ключей.
Как проверить подключение по SSH
Начните с проверки внешнего порта по общедоступному имени хоста или IP-адресу и порту 22. Если результат открыт, значит, TCP-путь к SSH доступен. Затем запустите ssh user@example.com или ssh -vvv user@example.com, чтобы проверить ключ хоста, метод аутентификации и настройку сеанса.
На сервере подтвердите прослушиватель с помощью ss -tlnp, netstat или PowerShell. Если задействован облачный сервер, сравните правила брандмауэра хоста с группой облачной безопасности, поскольку любой уровень может блокировать SSH, даже если другой выглядит правильно.
Распространенные случаи устранения неполадок SSH
Если порт 22 закрыт, sshd может быть остановлен, установлен на другой порт, привязан только к частному интерфейсу или заблокирован брандмауэром хоста. Если время проверки истекло, пакеты могут быть отброшены группой безопасности облака, правилом NAT маршрутизатора, фильтром интернет-провайдера, политикой VPN или списком разрешенных IP-адресов источника.
Если порт открыт, но вход невозможен, проверьте имя пользователя, разрешения ключа, файл авторизованных_ключей, политику паролей, требования MFA, правила AllowUsers или DenyUsers, настройки входа в систему root и журналы сервера. Многие сбои SSH связаны с проблемами авторизации, а не с портами.
Контрольный список безопасности для SSH
Отключите вход в систему с правами root, предпочтите ключи или сертификаты паролям, чередуйте ключи, удалите устаревшие учетные записи и ограничьте круг лиц, которые могут подключаться. Используйте MFA или аппаратные ключи для привилегированного доступа и убедитесь, что закрытые ключи защищены кодовыми фразами или безопасным аппаратным хранилищем.
Уменьшите поверхность атаки с помощью списков разрешенных источников, хостов-бастионов, VPN, ограничения скорости, обнаружения вторжений и своевременных исправлений OpenSSH. Перемещение SSH на нестандартный порт может снизить уровень шума при сканировании, но к этому следует относиться только как к уменьшению шума, а не как к средству контроля безопасности.
Частые вопросы
Какой порт использует SSH?
SSH по умолчанию использует TCP-порт 22. Он может работать на другом порту, если сервер настроен таким образом и клиент указывает собственный порт.
Безопасно ли открывать порт 22?
Это может быть безопасно, если доступ является преднамеренным и защищенным. Используйте ключи или сертификаты, отключите вход с правами root, ограничьте исходные сети, отслеживайте неудачные попытки и постоянно обновляйте SSH-сервер.
Почему порт 22 открыт, но вход по SSH невозможен?
Порт TCP может быть доступен, даже если аутентификация не удалась. Проверьте имя пользователя, права доступа к ключам, авторизованные ключи, MFA, правила разрешенных пользователей, настройки оболочки и журналы SSH-сервера.
Должен ли я изменить SSH на другой порт?
Изменение порта может снизить уровень шума при автоматическом сканировании, но не заменяет надежную аутентификацию, контроль доступа, ведение журнала и установку исправлений.