Bastion host (бастионный хост, jump server) — архитектурный паттерн сетевой безопасности. Все серверы инфраструктуры закрыты во внутренней сети без прямого доступа из интернета. Для администрирования используется один специально защищённый сервер с публичным IP — bastion. Администраторы сначала подключаются к bastion, затем оттуда — к внутренним серверам.
SSH ProxyJump
# Подключение через bastion одной командой
ssh -J admin@bastion.example.com user@internal-server
# ~/.ssh/config
Host bastion
HostName bastion.example.com
User admin
IdentityFile ~/.ssh/bastion_key
Host internal-*
User admin
ProxyJump bastion
IdentityFile ~/.ssh/internal_key
# Теперь просто:
ssh internal-webserver
Защита bastion host
- Только SSH-аутентификация по ключу (PasswordAuthentication no).
- 2FA для всех подключений.
- fail2ban против брутфорс-атак.
- Аудит всех SSH-сессий (auditd, tlog).
- Минимальный набор ПО (только SSH-сервер).
- Автоматическое обновление безопасности (unattended-upgrades).
Управляемые bastion: Teleport, AWS SSM
Teleport — open-source PAM (Privileged Access Management) с встроенным bastion, записью сессий, RBAC. AWS Systems Manager Session Manager — bastion без открытых входящих портов через AWS API.
История
Термин «bastion host» ввёл Маркус Рэнум (Marcus Ranum) в статье «Thinking About Firewalls» (1993). Концепция jump server стала стандартом корпоративной безопасности в 2000-х. SSH ProxyJump (OpenSSH 7.3, 2016) упростил работу с bastion. Teleport создан Gravitational Inc. в 2015 году.
Связь с хостингом
Для инфраструктуры на VDS из 3+ серверов bastion-паттерн резко снижает поверхность атаки: вместо N серверов с открытым SSH только один bastion. Hetzner Cloud и другие провайдеры позволяют создать Private Network между серверами — внутренние серверы доступны только через bastion.
История Bastion Host
Термин «bastion host» введён Маркусом Ранумом в 1992 году в публикации «Thinking About Firewalls». Концепция выросла из военной архитектуры: бастион — укреплённая точка обороны. В контексте AWS концепция Single-Access Bastion формализована в Well-Architected Framework (2015). AWS Systems Manager Session Manager (2019) предложил альтернативу без входящего SSH: доступ через SSM Agent без открытых портов. Teleport (2015) — современный open-source преемник концепции bastion с записью сессий.
Архитектурные паттерны Bastion
| Паттерн | Плюсы | Минусы |
|---|---|---|
| Классический SSH-бастион | просто, дёшево | SSH-ключи на сотрудников |
| VPN + приватная сеть | удобно | сложная настройка |
| Zero Trust (Teleport/Boundary) | аудит сессий, MFA | высокая стоимость |
| SSM Session Manager (AWS) | нет открытых портов | только AWS |
Практическое применение
Бастион-хост на отдельном VPS является единственной точкой входа в закрытую инфраструктуру. Настройка: минимальная ОС, только SSH на нестандартном порту, 2FA, строгий whitelist IP, fail2ban, полное логирование команд через auditd. Все прочие серверы принимают SSH только с IP бастиона.
Типичные ошибки
- Бастион с публичным доступом без 2FA — единственная точка входа становится единственной точкой отказа безопасности.
- Размещение secrets и credentials на бастионе — компрометация бастиона даёт доступ ко всему.
- Не ограничен список пользователей через
AllowUsersв sshd_config.