Это сервер SuperMicro с материнской платой X8DT3, которая содержит встроенный BMC IPMI. В этом случае BMC - это Winbond WPCM450 ). Я считаю, что многие серверы Dell используют эту похожую модель BMC.
Обычной практикой в IPMI является его изоляция в частной, не маршрутизируемой сети. В нашем случае все карты IPMI подключены к частной локальной сети управления по адресу 192.168.1.0/24, которая не имеет маршрута к внешнему миру. Если я подключу свой ноутбук к сети 192.168.1.0/24, я смогу убедиться, что все функции IPMI работают должным образом, включая удаленную консоль.
Мне нужно получить доступ ко всем функциям IPMI из другой сети через какое-то зашифрованное соединение.
Я пробовал переадресацию портов SSH. Это отлично работает для нескольких серверов, однако у нас есть около 100 таких серверов, и нецелесообразно поддерживать конфигурацию клиента SSH для пересылки 6 портов на 100 серверов.
Поэтому я подумал, что попробую SOCKS прокси . Это работает, но кажется, что приложение Remote Console не подчиняется моим общесистемным настройкам прокси.
Я настроил SOCKS прокси. Подробное ведение журнала позволяет мне видеть сетевую активность и переадресацию портов.
ssh -v -D 3333 stefanl@gateway.example.org
Я настраиваю свою систему для использования прокси SOCKS. Я подтверждаю, что Java использует настройки прокси-сервера SOCKS.
SOCKS прокси работает. Я подключаюсь к BMC по адресу http://192.168.1.100/, используя свой веб-браузер. Я могу войти в систему, просмотреть состояние сервера, включить или выключить компьютер и т. Д. Поскольку подробное ведение журнала SSH включено, я вижу прогресс.
Вот где это получается сложно:
Я нажимаю кнопку «Запустить консоль», которая загружает файл с именем
jviewer.jnlp
. Файлы JNLP открываются с помощью Java Web Start.Откроется окно Java. В строке заголовка написано «Просмотр перенаправления». Существуют меню для «Видео», «Клавиатура», «Мышь» и т. Д. Это подтверждает, что Java способна загрузить приложение через прокси-сервер и запустить приложение.
Через 60 секунд приложение отключается и просто говорит «Ошибка при открытии видео-сокета». Вот скриншот . Если бы это сработало, я бы увидел окно в стиле VNC. В моих журналах SSH нет попыток подключения к портам 5900/5901. Это говорит о том, что приложение Java запустило приложение VNC, но приложение VNC игнорирует общесистемные настройки прокси и, следовательно, не может подключиться к удаленному хосту.
Java, кажется, подчиняется моим общесистемным настройкам прокси, но это приложение VNC, похоже, игнорирует его.
Могу ли я заставить это приложение VNC использовать мои общесистемные настройки прокси-сервера?
источник
Я понял, что для этого лучше не использовать прокси-сервер socks, а вместо этого перенаправлять все порты, необходимые для локального IP-адреса. Чтобы избежать любых существующих сервисов, я использую IP, отличный от 127.0.0.1. Предполагая, что вы выбрали 127.0.0.2, а ваш сервер за прокси - 192.168.1.1, используйте команду ssh:
Затем вы можете просмотреть https://127.0.0.2 и использовать KVM как обычно.
Перенаправленные порты TCP: 5900 и 5901 для управления и видео, 5120 для виртуального CD и 5123 для виртуальной дискеты (последние два я не тестировал). Добавлен -C для сжатия, хотя я не знаю, подходит ли что-нибудь отправленное для сжатия.
Другой, немного более удобный (и теоретически более эффективный) метод в linux, это использование sshuttle , который прозрачно пересылает все TCP-соединения через ssh с использованием iptables и интерпретатора python на прокси-сервере.
Подсказка: sshuttle упаковывается в Debian.
То, что я пока не мог переслать, это UDP-порт 623, который можно использовать для ipmitool, CLI-соединения для IPMI. Там являются несколько учебников по этому вопросу , но никто не работал для меня. В любом случае, Java KVM достаточно хорош.
источник
netcat
. Как расстраивает.-L127.0.0.2:623:192.168.1.1:623
). Спасибо за перечисление необходимых портов. Это намного проще, чем настроить VPN.Попробуйте tsocks , это должно позволить вам запустить любой процесс через прокси-сервер SOCKS, установив LD_PRELOAD, который должен работать во всех подпроцессах, посмотрите это, например, для использования. Конечно, если вы используете ssh для создания прокси-сервера SOCKS, у вас все еще будет проблема UDP, но это должно обойти проблему подпроцесса.
источник