Аутентифицировать пользователя (группу) и зашифровать порт 8078 на сервере, используя ключи SSH2?

Я хочу зашифровать и аутентифицировать порт 8078 на сервере под управлением Jenkins с использованием ключей SSH (я передам наш открытый или закрытый ключ по мере необходимости) и не допускать доступа к 8078 со стороны чего-либо, кроме SSH. У меня есть всего несколько разработчиков, которые сейчас используют машину.

Вопросы: A/ Мне нужен брандмауэр, чтобы завершить это, чтобы заблокировать 8078 от доступа без SSH? B/ Будет ли брандмауэр видеть дешифрованный запрос через порт 22 при перенаправлении на порт 8078? B/ Какой IP/ порт увидит брандмауэр, когда сервер SSH перенаправит незашифрованный запрос с порта 22 на порт 8078? C/ Является ли это хорошим долгосрочным решением как для шифрования, так и для аутентификации приложения, не являющегося веб-сервером? D/ Будет ли решение VPN лучше для этой цели?

1 ответ

Решение

A) Как только сервер SSH прослушивает 8078 на сервере, никакое другое приложение не может, включая Дженкинса. Б) Я запутался: SSH не перенаправляет незашифрованные запросы. C) Я предполагаю, что вы хотите сделать следующее:

  1. Настройте Jenkins для работы на порте 8078, в незашифрованном виде, но на локальном IP-адресе 127.0.0.1. Брандмауэр не нужен, так как никто снаружи не может подключить этот IP. Только если Jenkins не может быть настроен для привязки к 127.0.0.1, вам нужен брандмауэр.
  2. Создайте специальную учетную запись пользователя с пользовательской оболочкой, которая действует как клиент telnet для 127.0.0.1:8078. Вы можете сделать это с помощью очень простого скрипта bash. Авторизуйте все открытые ключи для использования этой учетной записи.
  3. Как обычно, подключитесь к SSH через порт 22 с помощью специального пользователя. Соединение откроет специальную оболочку telnet.

Сценарий будет выглядеть так:

#! /bin/bash
telnet localhost 8078

Сохраните в /usr/local/bin/jenkins-ssh и

chmod a+x /usr/local/bin/jenkins-ssh
useradd jenkins-ssh
passwd jenkins-ssh (or don't, use pubkey only)
chsh jenkins-ssh -s /usr/local/bin/jenkins-ssh

D) VPN-решение было бы лучше в том смысле, что его можно использовать для более чем одной услуги. Но вам придется привязать службу к внутреннему IP-адресу, который может стать доступным только после запуска службы VPN, что усложнит последовательность запуска.

Другие вопросы по тегам