hostprofi.ru
Подобрать хостинг
Термин·буква J

Jump-сервер

краткое определение

Jump-сервер (bastion host) — выделенный промежуточный сервер, через который администраторы получают SSH-доступ к серверам внутренней сети. Минимизирует поверхность атаки: внешние адреса имеет только bastion, все остальные сервера закрыты от интернета.

Jump-сервер (jump host, bastion host) — специально выделенный и усиленный сервер в DMZ или на периметре сети, служащий единственной точкой входа для SSH-доступа к внутренней инфраструктуре. Вместо того чтобы открывать SSH-порт (22/tcp) на каждом сервере напрямую в интернет, все администраторы сначала подключаются к jump-серверу, а затем прыгают дальше на внутренние хосты.

Как работает jump-сервер

Существует два способа использования jump-сервера:

  1. Ручной: сначала ssh user@bastion, затем с bastion — ssh user@internal-server. Приватный ключ для внутреннего сервера должен быть на bastion или в SSH-агенте.
  2. ProxyJump (рекомендуется): SSH-клиент использует bastion как прокси прозрачно для пользователя:

ssh -J user@bastion user@internal-server

# Или в ~/.ssh/config:
Host internal-server
    HostName 10.0.0.5
    User admin
    ProxyJump bastion.example.com

При ProxyJump SSH-туннель от клиента до internal-server проходит через bastion — bastion видит только зашифрованный трафик, без доступа к содержимому. Приватный ключ от внутреннего сервера остаётся на машине администратора (SSH agent forwarding), а не копируется на bastion.

История

Концепцию bastion host сформулировал Маркус Ранум (Marcus Ranum) в начале 1990-х в контексте брандмауэров. С распространением SSH в 2000-х jump-сервер стал стандартным архитектурным паттерном для систем с несколькими уровнями сети. Облачные провайдеры (AWS, GCP, Azure) рекомендуют bastion host как базовый элемент сетевой архитектуры — AWS предлагает managed-вариант через AWS Systems Manager Session Manager.

Hardening jump-сервера

Jump-сервер должен быть максимально защищён, так как является единственной точкой входа:

  • Минимальный набор установленных пакетов (только openssh-server)
  • Только SSH-ключевая авторизация, пароли отключены
  • MFA через PAM (Google Authenticator или FIDO2)
  • nftables-правила: разрешить SSH только с IP-адресов офиса/VPN
  • Полное аудирование команд (auditd) и запись сессий (asciinema или ssh-audit)
  • Отдельный мониторинг и алертинг на все SSH-события

Для крупной инфраструктуры bastion может быть заменён PAM-решением (Teleport, HashiCorp Vault SSH) с централизованным управлением доступом, временными сертификатами и полным аудитом сессий. Teleport позволяет выдавать короткоживущие (24-часовые) SSH-сертификаты вместо статичных ключей, что снижает риски при компрометации учётных данных.

Архитектура bastion host

Классическая схема: внешняя сеть → jump-сервер (DMZ) → внутренняя сеть. Jump-сервер имеет два сетевых интерфейса: публичный (доступен извне через порт 22 или нестандартный) и приватный (доступ к внутренним серверам). Внутренние серверы не имеют прямого доступа из интернета — они принимают подключения только с IP jump-сервера.

На jump-сервере работает минимальный набор сервисов: только SSH, мониторинг и логирование. Никаких веб-серверов, баз данных, FTP. Любой лишний сервис расширяет поверхность атаки.

SSH ProxyJump: подключение через jump-сервер

Прямое подключение к внутреннему серверу через jump-хост в одну команду:

ssh -J user@jump-server.example.com user@internal-server-192.168.1.10

Или через конфиг ~/.ssh/config для автоматизации:

Host internal-prod
    HostName 192.168.1.10
    User admin
    ProxyJump jump.example.com

После этого ssh internal-prod автоматически использует jump-сервер. SSH-agent forwarding (ForwardAgent yes) позволяет использовать ключи локальной машины на внутренних серверах без копирования приватных ключей на jump-хост.

Аудит и логирование

Все сессии через jump-сервер должны логироваться. Инструменты: tlog (запись терминальных сессий в JSON), ttyrec, asciinema для воспроизведения. Teleport от Gravitational — современная альтернатива классическому jump-серверу: проксирует SSH-соединения, записывает сессии, интегрируется с SSO (Okta, Google Workspace), управляет сертификатами вместо authorized_keys.

На что обращать внимание

Jump-сервер — критическая точка: его компрометация открывает доступ ко всей внутренней сети. Обязательные меры: SSH-ключи без парольной аутентификации, двухфакторная аутентификация (Google Authenticator + PAM), fail2ban, ограничение источников подключений через фаервол (allowlist корпоративных IP и VPN-адресов).

Другие термины