プロキシの背後でSupermicro IPMIを使用していますか?


12

これは、オンボードIPMI BMCを含むX8DT3マザーボードを備えたSuperMicroサーバーです。この場合、BMCはWinbond WPCM450です)。多くのDellサーバーがこれを同様のBMCモデルを使用していると思います。

IPMIの一般的なプラクティスは、プライベートなルーティング不可能なネットワークにIPMIを分離することです。私たちの場合、すべてのIPMIカードは192.168.1.0/24のプライベート管理LANに接続されており、外部へのルートはありません。ラップトップを192.168.1.0/24ネットワークに接続すると、リモートコンソールを含め、すべてのIPMI機能が期待どおりに機能することを確認できます。

何らかの暗号化された接続を介して、異なるネットワークからすべてのIPMI機能にアクセスする必要があります。

SSHポート転送を試しました。これは少数のサーバーでは正常に機能しますが、これらのサーバーは100台近くあり、SSHクライアント構成を維持して100台のサーバーで6ポートを転送することは実用的ではありません。

それで、SOCKSプロキシを試すと思いました。これは機能しますが、リモートコンソールアプリケーションがシステム全体のプロキシ設定に従っていないようです。

  1. SOCKSプロキシをセットアップします。詳細なログにより、ネットワークアクティビティ、およびポートが転送されているかどうかを確認できます。

    ssh -v -D 3333 stefanl@gateway.example.org
    
  2. SOCKSプロキシを使用するようにシステムを構成します。JavaがSOCKSプロキシ設定を使用していることを確認します。

  3. SOCKSプロキシが機能しています。Webブラウザを使用して、http: //192.168.1.100/ でBMCに接続します。ログインしたり、サーバーヘルスを表示したり、マシンの電源をオンまたはオフにしたりできます。SSH冗長ログが有効になっているため、進行状況を確認できます。

難しい点は次のとおりです。

  1. という名前のファイルをダウンロードする[コンソールの起動]ボタンをクリックしますjviewer.jnlpJNLPファイルはJava Web Startで開かれます。

  2. Javaウィンドウが開きます。タイトルバーには、タイトルバーに「リダイレクトビューア」と表示されます。「ビデオ」「キーボード」「マウス」などのメニューがあります。これにより、Javaがプロキシを介してアプリケーションをダウンロードし、アプリケーションを起動できることが確認されます。

  3. 60秒後、アプリケーションはタイムアウトし、「ビデオソケットを開くときにエラーが発生しました」と表示されます。これがスクリーンショットです。これがうまくいけば、VNCスタイルのウィンドウが表示されます。SSHログには、ポート5900/5901への接続試行は表示されません。これは、JavaアプリケーションがVNCアプリケーションを開始したが、VNCアプリケーションがシステム全体のプロキシ設定を無視し、リモートホストに接続できないことを示唆しています。

Javaはシステム全体のプロキシ設定に従うようですが、このVNCアプリケーションはそれを無視するようです。

このVNCアプリケーションにシステム全体のプロキシ設定を強制的に使用させる方法はありますか?

回答:


4

VPNが実際にあなたの最善策であるように思えます。非ローカルトラフィックのみがVPNを通過する必要があるように、ルーターにACLがあります。これで完了です。非常にシンプルで安全で、管理も簡単です。


1
VPNは、複数のIPMIマシンへのパイプとして私たちにとって非常に効果的です。TomatoとOpenVPNを備えた最新の(128MB、Asus RT-N16のような高速CPU)ルーターをセットアップするだけで、うまく機能します。OpenVPNの方がセットアップ簡単かもしれませんが、一度セットアップすると機能します!
ジェフアトウッド

ついに、私はSOCKSをあきらめ、VPNを使用しています。おそらくOpenVPNを使用します。
ステファンLasiewski

21

このためにソックスプロキシを使用するのではなく、ローカルホストIPで必要なすべてのポートを転送することが最善であると考えました。既存のサービスを回避するには、127.0.0.1とは異なるIPを使用します。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、仮想CD用の5120および仮想フロッピー用の5123です(後者2つはテストしませんでした)。圧縮に-Cを追加しましたが、送信されたものが圧縮に適しているかどうかはわかりません。

Linuxでのもう少し快適な(そして理論的にはパフォーマンスが向上する)もう1つの方法は、sshuttleを使用することです

sshuttle -r user @ proxy-server 192.168.1.1

ヒント:sshuttleはDebianにパッケージ化されています。

まだ転送できなかったのはUDPポート623です。これは、IPMIのCLI接続であるipmitoolに使用できます。これに いくつかのチュートリアルがあります、私にとってはうまくいきませんでした。とにかく、Java KVMで十分です。


SSHはUDPトラフィックではなくTCPトラフィックのみを転送するようです。IPMI(ポート623 / UDP)およびSerial-over-LAN(ポート6666 / UDP)はUDPのみであるため、を使用した何らかのファンキーなUDPからTCPへの変換が必要ですnetcat。イライラする。
ステファンLasiewski

1
最初のsshコマンドは機能します(WebインターフェイスとJavaリモートコンソール)。ただし、仮想cdマウントは、623(-L127.0.0.2:623:192.168.1.1:623)も転送しない限り機能しないようです。必要なポートをリストしてくれてありがとう。これは、VPNをセットアップするよりもはるかに簡単です。
-basic6

2

tsocksを試してください。すべてのサブプロセスで動作するLD_PRELOADを設定することにより、SOCKSプロキシを介して任意のプロセスを実行できます。使用例については、これを参照してください。もちろん、sshを使用してSOCKSプロキシを作成する場合、UDPの問題は引き続き発生しますが、これによりサブプロセスの問題を回避できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.