Ini adalah server SuperMicro dengan motherboard X8DT3 yang berisi On-board IPMI BMC. Dalam hal ini, BMC adalah Winbond WPCM450 ). Saya percaya banyak server Dell menggunakan model BMC serupa.
Praktik umum dengan IPMI adalah mengisolasinya ke jaringan pribadi yang tidak dapat dialihkan. Dalam kasus kami, semua kartu IPMI dicolokkan ke LAN manajemen pribadi di 192.168.1.0/24 yang tidak memiliki rute ke dunia luar. Jika saya mencolokkan laptop saya ke jaringan 192.168.1.0/24, saya dapat memverifikasi bahwa semua fitur IPMI berfungsi seperti yang diharapkan, termasuk konsol jarak jauh.
Saya perlu mengakses semua fitur IPMI dari jaringan yang berbeda, melalui semacam koneksi terenkripsi.
Saya mencoba penerusan port SSH. Ini berfungsi dengan baik untuk beberapa server, namun, kami memiliki hampir 100 server ini dan mempertahankan konfigurasi klien SSH untuk meneruskan 6 port pada 100 server tidak praktis.
Jadi saya pikir saya akan mencoba proxy SOCKS . Ini berfungsi, tetapi tampaknya aplikasi Remote Console tidak mematuhi pengaturan proxy seluruh sistem saya.
Saya menyiapkan proxy SOCKS. Logging Verbose memungkinkan saya untuk melihat aktivitas jaringan, dan jika port sedang diteruskan.
ssh -v -D 3333 [email protected]
Saya mengkonfigurasi sistem saya untuk menggunakan proxy SOCKS. Saya mengonfirmasi bahwa Java menggunakan pengaturan proxy SOCKS.
Proxy SOCKS berfungsi. Saya terhubung ke BMC di http://192.168.1.100/ menggunakan browser web saya. Saya bisa masuk, melihat Server Health, menghidupkan atau mematikan mesin, dll. Karena SSH verbose logging diaktifkan, saya bisa melihat perkembangannya.
Di sinilah rumitnya:
Saya mengklik tombol "Luncurkan Konsol" yang mengunduh file yang disebut
jviewer.jnlp
. File JNLP dibuka dengan Java Web Start.Jendela Java terbuka. Bilah judul bertuliskan "Redirection Viewer" di bilah judul. Ada menu untuk "Video" "Keyboard" "Mouse", dll. Ini mengkonfirmasi bahwa Java dapat mengunduh aplikasi melalui proxy, dan memulai aplikasi.
60 detik kemudian, aplikasi mati dan hanya mengatakan "Kesalahan membuka soket video". Ini screenshotnya . Jika ini berhasil, saya akan melihat jendela gaya VNC. Log SSH saya tidak menunjukkan upaya koneksi ke port 5900/5901. Ini menunjukkan bahwa aplikasi Java memulai aplikasi VNC, tetapi aplikasi VNC mengabaikan pengaturan proksi seluruh sistem dan karenanya tidak dapat terhubung ke host jarak jauh.
Java tampaknya mematuhi pengaturan proxy sistemwide saya, tetapi aplikasi VNC ini tampaknya mengabaikannya.
Apakah ada cara bagi saya untuk memaksa aplikasi VNC ini menggunakan pengaturan proxy seluruh sistem saya?
sumber
Saya menemukan yang terbaik adalah tidak menggunakan proxy kaus kaki untuk ini, tetapi alih-alih meneruskan semua port yang diperlukan pada IP host lokal. Untuk menghindari layanan apa pun yang ada, saya menggunakan IP berbeda dari 127.0.0.1. Dengan asumsi Anda memilih 127.0.0.2, dan server Anda di belakang proxy adalah 192.168.1.1, ini adalah perintah ssh untuk menggunakan:
Kemudian Anda dapat menelusuri https://127.0.0.2 dan menggunakan KVM seperti biasa.
Port TCP yang diteruskan adalah 5900 dan 5901 untuk kontrol dan video, 5120 untuk CD virtual dan 5123 untuk disket virtual (saya tidak menguji dua yang terakhir). Ditambahkan -C untuk kompresi, meskipun saya tidak tahu apakah sesuatu yang dikirim cocok untuk kompresi.
Metode lain, sedikit lebih nyaman (dan, secara teori, berkinerja lebih baik) di linux, adalah dengan menggunakan sshuttle , yang secara transparan meneruskan semua koneksi TCP melalui ssh menggunakan iptables dan interpreter python pada proxy-server.
Petunjuk: sshuttle sedang dikemas dalam bahasa Debian.
Apa yang saya tidak bisa teruskan adalah port UDP 623, yang dapat digunakan untuk ipmitool, koneksi CLI untuk IPMI. Ada yang beberapa tutorial tentang ini, tetapi tidak bekerja untuk saya. Bagaimanapun, Java KVM cukup baik.
sumber
netcat
. Sangat frustasi.-L127.0.0.2:623:192.168.1.1:623
). Terima kasih telah mendaftar port yang diperlukan. Ini jauh lebih mudah daripada mengatur VPN.Coba tsocks , ini akan memungkinkan Anda menjalankan proses apa pun melalui proxy SOCKS dengan mengatur LD_PRELOAD yang seharusnya bekerja di semua subproses, lihat ini sebagai contoh penggunaan. Tentu saja, jika Anda menggunakan ssh untuk membuat proksi SOCKS, Anda masih akan memiliki masalah UDP, tetapi ini harus mengatasi masalah subproses.
sumber