web-dev-qa-db-fra.com

Utiliser Supermicro IPMI derrière un proxy?

Il s'agit d'un serveur SuperMicro avec une carte mère X8DT3 qui contient une BMC IPMI intégrée. Dans ce cas, le BMC est un WinBond WPCM45 ). Je crois que de nombreux serveurs Dell utilisent cela un modèle BMC similaire.

Une pratique courante avec IPMI est de l'isoler à un réseau privé et non routable. Dans notre cas, toutes les cartes IPMI sont branchées dans un réseau local de gestion privé au 192.168.1.0/24 qui n'a aucun itinéraire vers le monde extérieur. Si je branche mon ordinateur portable dans le réseau de 192.168.1.0/24, je peux vérifier que toutes les fonctionnalités IPMI fonctionnent comme prévu, y compris la console distante.

J'ai besoin d'accéder à toutes les fonctionnalités IPMI à partir d'un réseau différent, sur une sorte de connexion cryptée.

J'ai essayé le transfert de port SSH. Cela fonctionne bien pour quelques serveurs, cependant, nous disposons de près de 100 de ces serveurs et de la maintenance d'une configuration client SSH pour transférer 6 ports sur 100 serveurs sont irréalistes.

Je pensais donc que j'essaierais un chaussettes proxy . Cela fonctionne, mais il semble que l'application de la console distante n'obéit pas à mes paramètres de proxy SystemWide.

  1. Je configurais un proxy de chaussettes. La journalisation verbeuse me permet de voir l'activité réseau et si des ports sont en cours de transmission.

    ssh -v -D 3333 [email protected]
    
  2. Je configure mon système pour utiliser le proxy de chaussettes. Je confirme que Java utilise les paramètres de proxy Socks.

  3. Le proxy Socks travaille. Je me connecte au BMC à http://192.168.1.100/ à l'aide de mon WebBrowser. Je peux vous connecter, voir la santé du serveur, alimenter la machine sur ou désactiver la machine, etc. Puisque la journalisation SSH Verbose est activée, je peux voir la progression.

Voici où il est délicat:

  1. Je clique sur le bouton "Lancement de la console" qui télécharge un fichier appelé jviewer.jnlp. fichiers JnLP sont ouverts avec Java Start.

  2. A Java fenêtre s'ouvre. La barre de titres dit indique "Visionneuse de redirection" dans la barre de titre. Il y a des menus pour "vidéo" "clavier" "souris", etc. Cela confirme que Java est capable de télécharger l'application via le proxy et de démarrer l'application.

  3. 60 secondes plus tard, les moments de l'application et indiquent simplement "Erreur d'ouverture de la prise vidéo". Voici A Screenshot . Si cela a fonctionné, je verrais une fenêtre de style VNC. Mes journaux SSH ne montrent aucune tentative de connexion des ports 5900/5901. Cela suggère que le Java Application a démarré l'application VNC, mais que l'application VNC ignore les paramètres de proxy SystemWide et est donc incapable de se connecter à l'hôte distant.

Java semble obéir à mes paramètres de proxy SystemWide, mais cette application VNC semble l'ignorer.

Y a-t-il un moyen pour moi de forcer cette application VNC à utiliser mes paramètres de proxy SystemWide?

12
Stefan Lasiewski

Cela ressemble à un VPN pourrait réellement être votre meilleur choix. Avoir une ACL sur le routeur afin que le seul trafic non local doive traverser le VPN et que vous avez terminé. Très simple et sécurisé ainsi que facile à gérer.

4
MDMarra

J'ai compris qu'il est préférable de ne pas utiliser de proxy de chaussettes pour cela, mais de transférer tous les ports nécessaires sur une adresse IP localeHost. Pour éviter tout service existant, j'utilise une adresse IP différente de 127.0.0.1. En supposant que vous avez choisi 127.0.0.2 et votre serveur derrière le proxy est le 192.168.1.1, il s'agit de la commande SSH à utiliser:

sSH User @ proxy-serveur -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.0.2: 5123: 192.168.1.1: 5123 -C

Ensuite, vous pouvez parcourir https://127.0.0.0.2 et utilisez le KVM comme d'habitude.

Le transfert TCP Les ports sont 5900 et 5901 pour la commande et la vidéo, 5120 pour CD virtuel et 5123 pour la disquette virtuelle (je n'ai pas testé ces deux derniers). Ajout de la compression, bien que je Je ne sais pas si quelque chose envoyé convient à la compression.

Un autre, légèrement plus confortable (et, en théorie, la méthode de meilleure performance) sur Linux, est d'utiliser Sshuttle , qui transparent Transférer tout TCP Connexions via SSH à l'aide d'iptables et d'un python Interprète sur le serveur proxy.

sshuttle -r Utilisateur @ proxy-serveur 192.168.1.1

Astuce: Sshuttle est emballé à Debian.

Ce que je ne pouvais pas en avant, c'est le port UDP 623, qui peut être utilisé pour IPMITOOL, une connexion CLI pour IPMI. sontplusieurs tutoriels à ce sujet, mais aucun n'a fonctionné pour moi. Quoi qu'il en soit, Java KVM est assez bien.

21
korkman

Essayez Tsocks , il devrait vous laisser exécuter n'importe quel processus via un proxy de chaussettes en définissant LD_PRéload, qui devrait fonctionner dans toutes les sous-processus, voir Ceci par exemple l'utilisation. Bien sûr, si vous utilisez SSH pour créer un proxy de chaussettes, vous aurez toujours le problème UDP, mais cela devrait contourner le problème des sous-traductions.

2
Mike