[Информационная безопасность, Системное администрирование, IT-инфраструктура, Серверное администрирование] Как настроить SSH-Jump Server
Автор
Сообщение
news_bot ®
Стаж: 6 лет 11 месяцев
Сообщений: 27286
Для работы с облачной инфраструктурой рекомендуется создавать SSH Jumpstation. Это позволяет повысить безопасность и удобство администрирования серверов. В этой статье мы расскажем, как настроить единую точку входа для подключений по ssh – SSH Jump Server. Для реализации выбраны два проекта с открытым исходным кодом.
- Традиционный подход с использованием OpenSSH. Преимущество в том, что на ваших Linux-серверах уже предустановлены необходимые пакеты OpenSSH
- Использование альтернативного opensource-проекта Teleport
Оба этих сервера просты в установке и настройке, бесплатны, имеют открытый исходный код и представляют собой демоны Linux с одним бинарником.Что такое SSH Jump Server?SSH Jump Server — это обычный сервер Linux, доступный из интернета, который используется в качестве шлюза для доступа к другим машинам Linux в частной сети с использованием протокола SSH. Иногда SSH Jump Server также называют jump host или bastion host. Назначение SSH Jump Server — быть единственным шлюзом для доступа к вашей инфраструктуре, уменьшая размер потенциальной поверхности атаки. Наличие выделенной точки доступа SSH также упрощает ведение сводного журнала аудита всех SSH подключений.Почему бы не использовать термин SSH-proxy? Отчасти по историческим причинам. В первые дни использования SSH пользователям приходилось подключаться по SSH к Jump Server, а оттуда им приходилось снова вводить ssh, чтобы «перейти» к хосту назначения. Сегодня это делается автоматически, и Teleport фактически использует термин SSH-proxy для описания этой функции.Настройка SSH Jump ServerОдной из хороших практик информационной безопасности будет использование выделенного SSH Jump-сервера, то есть отказаться от размещения на нём какое-либо другого общедоступного программного обеспечения. Кроме того, нужно запретить пользователям напрямую входить на jump-сервер. Вот парочка причин:
- Чтобы предотвратить непреднамеренное обновление конфигурации jump-сервера
- Чтобы исключить возможность использования jump-сервера для других задач
Также неплохо изменить порт TCP по умолчанию на сервере перехода SSH с 22 на другой.Давайте рассмотрим настройку сервера перехода SSH с использованием двух проектов с открытым исходным кодом. Начнём с OpenSSH, самого распространённого варианта.Но сначала давайте введём некоторые имена, которые будут использоваться в примерах ниже:
- Домен организации: example.com
- DNS-имя jump-сервера организации будет proxy.example.com
Также предполагается, что proxy.example.com — это единственная машина в локальной сети организации, доступная из Интернета.OpenSSHЭтот пакет SSH-сервера по умолчанию входит в состав большинства дистрибутивов Linux, и есть почти 100% вероятность, что он у вас уже установлен. Если у вас есть доступ к jump-серверу proxy.example.com, вы можете получить доступ к другим серверам в локальной сети за этим NAT с помощью -J флага в командной строке:$ ssh -J proxy.example.com 10.3.3.1В приведённом примере 10.3.3.1 – это адрес конечной станции в локальной сети, к которой вы подключаетесь. Выглядит довольно просто. Чтобы не печатать в командной строке параметры -J proxy.example.com, вы можете обновить конфигурацию SSH на вашем клиенте в файле ~/.ssh/config следующим образом:
Host 10.2.2.*
ProxyJump proxy.example.com
Теперь, когда пользователь вводит ssh 10.3.3.1, SSH-клиент даже не пытается разрешить адрес 10.3.3.1 локально, а вместо этого устанавливает соединение c proxy.example.com, которое перенаправляет его на 10.3.3.1 в своем локальном сегменте.Теперь нужно немного усилить конфигурацию безопасности jump-сервера, отключив интерактивные сеансы SSH на jump-сервере для обычных пользователей, но оставив их включёнными для администраторов. Для этого необходимо обновить конфигурацию sshd, обычно она лежит в файле /etc/ssh/sshd_configсо:
# Do not let SSH clients do anything except be forwarded to the destination:
PermitTTY no
X11Forwarding no
PermitTunnel no
GatewayPorts no
ForceCommand /sbin/nologin
Приведённый выше пример будет работать для Debian и его производных, советуем проверить наличие файла /sbin/nologin.Это конфигурация будет работать, если на jump-сервере есть учётные записи для всех пользователей SSH, что не очень удобно. Вместо этого рассмотрите возможность создания отдельной учётной записи на jump-сервере, предназначенной для перенаправляемых пользователей ssh. Назовём эту учётную запись jumpuser и обновим конфигурацию ssh-сервера:
Match User jumpuser
PermitTTY no
X11Forwarding no
PermitTunnel no
GatewayPorts no
ForceCommand /usr/sbin/nologin
И пользователям нужно будет обновить конфигурацию своего клиента SSH в файле ~/.ssh/config:
Host 10.2.2.*
ProxyJump jumpuser@proxy.example.com
Для получения дополнительной информации по конфигурированию SSH для вашей конкретной ситуации, обратитесь к man ssh_config и man sshd_config.Надо заметить, что описанная выше настройка работает только когда общедоступные ключи SSH правильно распределены не только между клиентами и jump-сервером, но также между клиентами и серверами назначения.Teleport Teleport — это SSH-сервер и клиент, который был выпущен в 2016 году. Teleport ориентирован на работу с кластерами и большим количеством узлов.
- Он настаивает на использовании прокси-сервера SSH по умолчанию, а его прокси-сервер SSH имеет веб-интерфейс, позволяющий пользователям подключаться к SSH с помощью браузера.
- В отличие от традиционных серверов SSH, Teleport устраняет необходимость в ведении «инвентаризации» серверов, поскольку предлагает оперативный самоанализ, то есть вы можете увидеть все онлайн-серверы за прокси, как показано на скриншоте:
Помимо современных функций прокси, Teleport предлагает несколько преимуществ по сравнению с традиционным SSH:
- Teleport не использует SSH-ключи и вместо этого по умолчанию использует более безопасные и гибкие сертификаты SSH. Это устраняет необходимость в управлении ключами и сильно упрощает настройку SSH-серверов.
- Teleport поддерживает другие протоколы в дополнение к SSH, поэтому тот же jump-сервер можно использовать для доступа к другим ресурсам за NAT, таким как кластеры Kubernetes или даже внутренние приложения через HTTP(s).
- Teleport не полагается на пользователей Linux для аутентификации. Вместо этого он поддерживает отдельную базу данных пользователей или может интегрироваться с помощью единого входа с другими поставщиками аутентификации, такими как Github, Google Apps, или корпоративными опциями, такими как Okta и Active Directory.
Teleport всегда поставляется с прокси (то есть то же самое, что и jump-сервер), и нет необходимости в специальных инструкциях по его настройке. Скачать его можно здесь.Другие особенности Teleport:
- Помимо традиционного интерфейса командной строки имеется возможность входа через HTTPS с эмуляцией терминала в web-браузере
- Поддержка функций аудита и повторения типовых операций. Содержимое SSH-сеансов может записываться и при необходимости воспроизводиться на других хостах
- Режим совместного решения проблем, при котором несколько человек могут совместно использовать один сеанс SSH
- Автоматическое определение доступных рабочих серверов и контейнеров Docker в кластерах с динамическим присвоением имён хостам
- Поддержка обратного туннелирования для подключения к кластерам, ограждённым межсетевым экраном
- Возможность определения меток для наглядного разделения узлов кластера
- Поддержка блокировки доступа после нескольких неудачных попыток входа
- Сопоставление пользователей с логинами на конечных узлах осуществляется через специальные списки маппинга
- Для подсоединения к хосту требуется указать два имени — имя кластера и имя узла в кластере. Teleport ориентирован на управление кластерами, а не отдельными серверами. Для каждого пользователя и хоста определяется принадлежность к кластеру
- Узлы подключаются к кластеру через определение статичестких или генерацию динамических токенов, которые при желании можно отозвать для запрета входа на данный узел
- Для подсоединения к серверам Teleport внутри кластера можно использовать обычный клиент OpenSSH (требуется копирование ключей)
- Успешно пройден аудит безопасности кода, заказанный в независимой проверяющей компании
ЗаключениеИтак, мы рассказали, как настроить SSH-jump сервер с помощью двух проектов с открытым исходным кодом: OpenSSH и Teleport. Но какой же выбрать?Используйте OpenSSH, если:
- Количество серверов и/или пользователей в вашей организации невелико
- Вам нужна быстрая настройка jump-сервера, и у вас не так много времени, чтобы изучить новые технологии
Используйте Teleport, если:
- Ваш парк серверов или размер вашей команды растёт
- Вам необходимо подключиться к серверам, расположенным «в дикой природе», то есть не ограничиваться только локальной сетью.
- У вас есть пара часов, чтобы поиграться изучить новый инструмент
Что ещё интересного есть в блоге Cloud4Y→ В тюрьму за приложение→ Детям о Кубернете, или приключения Фиппи в космосе→ Определённо не Windows 95: какие операционные системы поддерживают работу в космосе?→ Рассказываем про государственные защищенные сервисы и сети→ Внутри центра обработки данных Bell Labs, 1960-еПодписывайтесь на наш Telegram-канал, чтобы не пропустить очередную статью. Пишем не чаще двух раз в неделю и только по делу.
===========
Источник:
habr.com
===========
Похожие новости:
- [Анализ и проектирование систем, IT-инфраструктура] Когда Cron подводит
- [Высокая производительность, Системное администрирование, Apache, Big Data] Почему Kafka такая быстрая (перевод)
- [Open source, *nix] FOSS News №44 – дайджест новостей и других материалов о свободном и открытом ПО за 23-29 ноября 2020 года
- [Информационная безопасность] Что там с P2P-соцсетями: поиск альтернативных решений или еще одна мишень для регуляторов
- [Информационная безопасность, Законодательство в IT] Персональные данные 16 млн пациентов из Бразилии были скомпрометированы из-за таблицы с паролями, размещенной на GitHub
- [Программирование, .NET, C#, Разработка под Linux, Разработка под Windows] Генерация типизированных ссылок на элементы управления Avalonia с атрибутом x:Name с помощью C# SourceGenerator
- [Информационная безопасность] Уязвимость Crosstalk
- Доступен ELKS 0.4, вариант ядра Linux для старых 16-разрядных процессоров Intel
- Основатель Void Linux убрал ограничение на использование своих разработок
- [Информационная безопасность, IT-компании] Canon официально подтвердила факт атаки вируса-вымогателя на сервера компании
Теги для поиска: #_informatsionnaja_bezopasnost (Информационная безопасность), #_sistemnoe_administrirovanie (Системное администрирование), #_itinfrastruktura (IT-инфраструктура), #_servernoe_administrirovanie (Серверное администрирование), #_openssh, #_teleport, #_linux, #_ssh, #_blog_kompanii_cloud4y (
Блог компании Cloud4Y
), #_informatsionnaja_bezopasnost (
Информационная безопасность
), #_sistemnoe_administrirovanie (
Системное администрирование
), #_itinfrastruktura (
IT-инфраструктура
), #_servernoe_administrirovanie (
Серверное администрирование
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 31-Янв 09:26
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 11 месяцев |
|
Для работы с облачной инфраструктурой рекомендуется создавать SSH Jumpstation. Это позволяет повысить безопасность и удобство администрирования серверов. В этой статье мы расскажем, как настроить единую точку входа для подключений по ssh – SSH Jump Server. Для реализации выбраны два проекта с открытым исходным кодом.
Host 10.2.2.*
ProxyJump proxy.example.com # Do not let SSH clients do anything except be forwarded to the destination:
PermitTTY no X11Forwarding no PermitTunnel no GatewayPorts no ForceCommand /sbin/nologin Match User jumpuser
PermitTTY no X11Forwarding no PermitTunnel no GatewayPorts no ForceCommand /usr/sbin/nologin Host 10.2.2.*
ProxyJump jumpuser@proxy.example.com
Помимо современных функций прокси, Teleport предлагает несколько преимуществ по сравнению с традиционным SSH:
=========== Источник: habr.com =========== Похожие новости:
Блог компании Cloud4Y ), #_informatsionnaja_bezopasnost ( Информационная безопасность ), #_sistemnoe_administrirovanie ( Системное администрирование ), #_itinfrastruktura ( IT-инфраструктура ), #_servernoe_administrirovanie ( Серверное администрирование ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 31-Янв 09:26
Часовой пояс: UTC + 5