Поиск по сайту:

Как настроить сервер перехода SSH в Linux


хост перехода (также известный как сервер перехода) – это промежуточный хост или SSH-шлюз к удаленной сети, через который можно установить соединение с другим хостом в другая зона безопасности, например, демилитаризованная зона (DMZ). Он соединяет две разные зоны безопасности и обеспечивает контролируемый доступ между ними.

Переходный хост должен быть надежно защищен и контролироваться, особенно если он охватывает частную сеть и демилитаризованную зону с серверами, предоставляющими услуги пользователям в Интернете.

Классический сценарий — подключение вашего настольного компьютера или ноутбука из внутренней сети вашей компании, которая надежно защищена межсетевыми экранами, к DMZ. Чтобы легко управлять сервером в демилитаризованной зоне, вы можете получить к нему доступ через хост перехода.

В двух словах, сервер SSH Jump — это сервер Linux, который используется в качестве шлюза к другим серверам Linux в частной сети по протоколу SSH.

В этой статье мы покажем, как получить доступ к удаленному серверу Linux через хост перехода, а также настроим необходимые параметры в конфигурациях SSH-клиента для каждого пользователя.

Настройка сервера перехода SSH

Рассмотрим следующий сценарий.

Для большей ясности ниже приведена простая настройка, демонстрирующая роль сервера SSH Jump.

Причины настройки сервера перехода SSH

Сервер Jump обеспечивает шлюз к вашей инфраструктуре и уменьшает потенциальную поверхность атаки на ваши ресурсы. Он также обеспечивает прозрачное управление устройствами, а также единую точку доступа к вашим ресурсам.

Имейте в виду, что при включении сервера перехода в свою инфраструктуру убедитесь, что сервер защищен, иначе было бы все равно, что не использовать его. Мы вернемся к этому позже в этом уроке.

Как создать простой сервер перехода SSH

Давайте теперь сосредоточимся на том, как создать простой сервер SSH Jump. Вот наша простая установка.

  • Исходный IP: 105.68.76.85.
  • IP-адрес сервера перехода (назовем его хост-переходом): 173.82.232.55.
  • IP-адрес назначения (назовем его host_destination): 173.82.227.89.

В приведенном выше сценарии вы хотите подключиться к HOST 2 (173.82.227.89), но вам нужно пройти через HOST 1 (173.82.232.55) из-за брандмауэра. маршрутизация и права доступа. Существует ряд веских причин, по которым необходимы переходные хосты.

Динамический список Jumphost

Самый простой способ подключиться к целевому серверу через хост перехода — использовать флаги -A и -J в командной строке. Это указывает ssh установить соединение с хостом перехода, а затем установить пересылку TCP на целевой сервер оттуда (убедитесь, что у вас есть вход по SSH без пароля между компьютерами).

ssh -A -J user@jump-server  user@destination server

Например, в нашей настройке у нас есть пользователь по имени james, настроенный на сервере перехода, и tecmint, настроенный на целевой или целевой системе.

Команда будет выглядеть следующим образом с исходного IP-адреса.

ssh -A -J [email  [email 

Команда запросит у вас пароль пользователя сервера перехода, а затем пароль целевой системы, по которому вам будет предоставлен доступ к целевой системе.

Если имена пользователей или порты на компьютерах различаются, укажите их на терминале, как показано.

ssh -J username@host1:port username@host2:port	  

Список нескольких Jumphosts

Тот же синтаксис можно использовать для перехода через несколько серверов.

ssh -J username@host1:port,username@host2:port username@host3:port

Статический список Jumphost

Статический список Jumphost означает, что вы знаете Jumphost или Jumphosts, необходимые для подключения машины. Поэтому вам необходимо добавить следующую статическую маршрутизацию jumphost в файл ~/.ssh/config и указать псевдонимы хостов, как показано.

### First jumphost. Directly reachable
Host vps1
  HostName vps1.example.org

### Host to jump to via jumphost1.example.org
Host contabo
  HostName contabo.example.org
  ProxyJump vps1

Теперь попробуйте подключиться к целевому серверу через хост перехода, как показано.

ssh -J vps1 contabo

Второй метод — использовать параметр ProxyCommand для добавления конфигурации jumphost в ваш ~.ssh/config или $HOME/. ssh/config, как показано.

В этом примере целевой хост — contabo, а jumphostvps1.

Host vps1
	HostName vps1.example.org
	IdentityFile ~/.ssh/vps1.pem
	User ec2-user

Host contabo
	HostName contabo.example.org	
	IdentityFile ~/.ssh/contabovps
	Port 22
	User admin	
	Proxy Command ssh -q -W %h:%p vps1

Сохраните изменения и выйдите из файла. Чтобы применить изменения, перезапустите демон SSH.

sudo systemctl restart ssh

Давайте рассмотрим параметры, используемые в файле конфигурации:

  • -q – означает тихий режим. Он подавляет предупреждения и диагностические сообщения.
  • -W — запрашивает пересылку стандартного ввода и вывода клиента на HOST на PORT по защищенному каналу.
  • %h — указывает хост, к которому необходимо подключиться.
  • %p — указан порт для подключения на удаленном хосте.

Чтобы «перейти» к системе назначения с исходного IP-адреса через сервер перехода, просто выполните следующую команду:

ssh contabo

Приведенная выше команда сначала откроет ssh-соединение с vps1 в фоновом режиме, на которое влияет ProxyCommand, а затем запустит ssh-сеанс с целевым сервером contabo . .

Повышение безопасности сервера перехода SSH

Один из способов сделать эту настройку более безопасной — скопировать общедоступный ключ SSH из исходной системы на сервер перехода, а затем, наконец, в целевую систему, а затем отключить аутентификацию по паролю. Ознакомьтесь с нашим руководством о том, как включить аутентификацию без пароля SSH.

Кроме того, ознакомьтесь с советами по усилению защиты сервера SSH.

Кроме того, убедитесь, что на сервере Jump не хранятся конфиденциальные данные, поскольку это может привести к утечке учетных данных доступа, таких как имена пользователей и пароли, что приведет к нарушению целостности системы.

Для получения дополнительной информации посетите справочную страницу ssh или обратитесь к: OpenSSH/Cookbxook/Proxies and Jump Hosts.

На данный момент это все! В этой статье мы продемонстрировали, как получить доступ к удаленному серверу через переходный хост. Используйте форму обратной связи ниже, чтобы задать нам любые вопросы или поделиться своими мыслями.