Використовуючи Supermicro IPMI за проксі?


12

Це сервер SuperMicro з материнською платою X8DT3, який містить вбудований IPMI BMC. У цьому випадку 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 . Це працює, але, здається, програма віддаленої консолі не підпорядковується моїм системним налаштуванням проксі.

  1. Я встановлюю проксі-сервер SOCKS. Докладний журнал дозволяє мені бачити мережеву діяльність та перенаправлення портів.

    ssh -v -D 3333 stefanl@gateway.example.org
    
  2. Я налаштовую свою систему на використання проксі-сервера SOCKS. Я підтверджую, що Java використовує налаштування проксі-сервера SOCKS.

  3. Проксі-сервер SOCKS працює. Я підключаюсь до BMC за адресою http://192.168.1.100/ за допомогою свого веб-браузера. Я можу увійти, переглянути стан здоров'я сервера, увімкнути або вимкнути машину тощо. Оскільки ввімкнено протокол журналу SSH, я можу побачити прогрес.

Ось де це складно:

  1. Я натискаю кнопку "Запустити консоль", яка завантажує файл з назвою jviewer.jnlp. Файли JNLP відкриваються за допомогою Java Web Start.

  2. Відкриється вікно Java. У заголовку на панелі заголовка написано: "Переглядач перенаправлення". Існують меню для "Відео", "Клавіатури", "Миші" і т. Д. Це підтверджує, що Java може завантажити додаток через проксі і запустити програму.

  3. Через 60 секунд програма закінчується та просто каже "Помилка відкриття відеорозетки". Ось скріншот . Якби це спрацювало, я побачив би вікно в стилі VNC. У моїх журналах SSH немає спроб підключення до портів 5900/5901. Це говорить про те, що програма Java запустила додаток VNC, але що програма VNC ігнорує загальносистемні настройки проксі і, таким чином, не в змозі підключитися до віддаленого хоста.

Здається, Java підкоряється моїм системним параметрам проксі, але ця програма VNC, здається, ігнорує її.

Чи є мені спосіб змусити цей додаток VNC використовувати мої налаштування проксі для всієї системи?

Відповіді:


4

Здається, VPN може бути справді найкращою ставкою. Майте ACL на маршрутизаторі, щоб єдиний не локальний трафік мав пройти VPN, і ви закінчили. Дуже простий і безпечний, а також простий в управлінні.


1
VPN працює для нас чудово, як трубопровід для декількох машин IPMI. Просто встановіть сучасний (128 Мб, швидкий процесор, як Asus RT-N16) маршрутизатор з помідорами та OpenVPN, і це буде пригощати. Так, налаштування OpenVPN може бути простішою , але, як тільки налаштувати, вона працює!
Джефф Етвуд

Нарешті, я відмовляюся від SOCKS і використовую VPN. Я, мабуть, поїду з OpenVPN.
Стефан Ласевський

21

Я зрозумів, що краще не використовувати для цього проксі-шкарпетки, а натомість переадресувати всі порти, необхідні для IP-адреси localhost. Щоб ухилитися від будь-яких існуючих служб, я використовую IP-адресу, відмінну від 127.0.0.1. Якщо припустити, що ви вибрали 127.0.0.2, а ваш сервер за проксі - 192.168.1.1, це команда ssh для використання:

ssh user @ proxy-server -L127.0.0.2: 443: 192.168.1.1: 443 -L127.0.0.2: 5900: 192.168.1.1: 5900 -L127.0.0.2: 5901: 192.168.1.1: 5901 -L127 .0.0.2: 5120: 192.168.1.1: 5120 -L127.0.0.2: 5123: 192.168.1.1: 5123 -C

Потім ви можете переглянути https://127.0.0.2 і використовувати KVM як завжди.

Передані порти TCP - це 5900 та 5901 для управління та відео, 5120 - для віртуальної CD та 5123 - для віртуальної дискети (останні два не тестував). Додано -С для стиснення, хоча я не знаю, чи що-небудь відправлене підходить для стиснення.

Інший, трохи зручніший (і теоретично, більш ефективний) метод на Linux - це використання sshuttle , який прозоро пересилає всі TCP-з'єднання через ssh за допомогою iptables та інтерпретатора python на проксі-сервері.

sshuttle -r user @ proxy-сервер 192.168.1.1

Підказка: sshuttle упаковується в Debian.

Що я поки не міг переслати, це порт UDP 623, який можна використовувати для ipmitool, підключення CLI для IPMI. З цього приводу є декілька навчальних посібників, але жоден для мене не вийшов. У будь-якому випадку, Java KVM досить добре.


Я бачу, що SSH передає лише TCP-трафік, а не UDP-трафік. IPMI (порт 623 / UDP) і послідовна передача через локальну мережу (порт 6666 / UDP) є лише UDP, і тому потрібне якесь фанкічне перетворення UDP в TCP з використанням netcat. Як засмучує.
Стефан Ласевський

1
Перша команда ssh працює (веб-інтерфейс та віддалена консоль Java), за винятком того, що віртуальне встановлення компакт-диска не працює, якщо ви також не пересилаєте 623 ( -L127.0.0.2:623:192.168.1.1:623). Дякуємо, що перерахували потрібні порти. Це набагато простіше, ніж налаштування VPN.
базовий6

2

Спробуйте tsocks , він повинен дозволити вам запустити будь-який процес через проксі-сервер SOCKS, встановивши LD_PRELOAD, який повинен працювати у всіх підпроцесах, див. Це, наприклад, використання. Звичайно, якщо ви використовуєте ssh для створення проксі-сервера SOCKS, ви все одно матимете проблему з UDP, але це має усунути проблему підпроцесу.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.