ใช้ Supermicro IPMI หลังพรอกซีหรือไม่


12

นี่คือเซิร์ฟเวอร์ SuperMicro ที่มีมาเธอร์บอร์ด X8DT3 ซึ่งมี On-board IPMI BMC ในกรณีนี้ BMC คือWinbond WPCM450 ) ฉันเชื่อว่าเซิร์ฟเวอร์ Dell หลายเครื่องใช้รุ่น BMC ที่คล้ายกันนี้

การปฏิบัติทั่วไปกับ IPMI คือการแยกมันออกเป็นเครือข่ายส่วนตัวที่ไม่สามารถกำหนดเส้นทางได้ ในกรณีของเราการ์ด IPMI ทั้งหมดเสียบเข้ากับ LAN การจัดการส่วนตัวที่ 192.168.1.0/24 ซึ่งไม่มีเส้นทางไปสู่โลกภายนอก หากฉันเสียบแล็ปท็อปของฉันเข้ากับเครือข่าย 192.168.1.0/24 ฉันสามารถตรวจสอบว่าคุณสมบัติ IPMI ทั้งหมดทำงานได้ตามที่คาดไว้รวมถึงคอนโซลระยะไกล

ฉันต้องเข้าถึงคุณสมบัติ IPMI ทั้งหมดจากเครือข่ายอื่นผ่านการเชื่อมต่อที่เข้ารหัสบางประเภท

ฉันลองส่งต่อพอร์ต SSH วิธีนี้ใช้ได้ดีสำหรับเซิร์ฟเวอร์ไม่กี่แห่งอย่างไรก็ตามเรามีเซิร์ฟเวอร์เหล่านี้เกือบ 100 แห่งและยังคงการกำหนดค่าไคลเอนต์ SSH เพื่อส่งต่อ 6 พอร์ตบนเซิร์ฟเวอร์ 100 เซิร์ฟเวอร์ไม่สามารถใช้งานได้

ดังนั้นผมจึงคิดว่าฉันจะลองพร็อกซี่ถุงเท้า ใช้งานได้ แต่ดูเหมือนว่าแอปพลิเคชั่น Remote Console จะไม่เชื่อฟังการตั้งค่าพร็อกซีทั้งระบบของฉัน

  1. ฉันตั้งค่าพร็อกซี SOCKS การบันทึกอย่างละเอียดช่วยให้ฉันเห็นกิจกรรมเครือข่ายและหากมีการส่งต่อพอร์ต

    ssh -v -D 3333 stefanl@gateway.example.org
    
  2. ฉันกำหนดค่าระบบของฉันเพื่อใช้พร็อกซี SOCKS ฉันยืนยันว่า Java กำลังใช้การตั้งค่าพร็อกซี SOCKS

  3. พร็อกซี SOCKS ใช้งานได้ ฉันเชื่อมต่อ BMC ที่http://192.168.1.100/โดยใช้เว็บเบราว์เซอร์ของฉัน ฉันสามารถเข้าสู่ระบบดูสถานะเซิร์ฟเวอร์เปิดหรือปิดเครื่องเป็นต้นตั้งแต่การบันทึก SSH verbose ถูกเปิดใช้งานฉันสามารถดูความคืบหน้าได้

นี่คือสิ่งที่มันยุ่งยาก

  1. ฉันคลิกที่ปุ่ม "เปิดตัวคอนโซล" jviewer.jnlpที่ดาวน์โหลดไฟล์ที่เรียกว่า ไฟล์ JNLPถูกเปิดด้วย Java Web Start

  2. หน้าต่าง Java จะเปิดขึ้น แถบหัวเรื่องระบุว่า "Redirection Viewer" ในแถบชื่อเรื่อง มีเมนูสำหรับ "วิดีโอ" "คีย์บอร์ด" "เมาส์" เป็นต้นซึ่งเป็นการยืนยันว่า Java สามารถดาวน์โหลดแอปพลิเคชันผ่านพร็อกซีและเริ่มแอปพลิเคชันได้

  3. 60 วินาทีต่อมาแอปพลิเคชันหมดเวลาและเพียงแค่พูดว่า "เกิดข้อผิดพลาดในการเปิดซ็อกเก็ตวิดีโอ" นี่เป็นภาพหน้าจอ หากทำงานได้ฉันจะเห็นหน้าต่างสไตล์ VNC บันทึก SSH ของฉันไม่พยายามเชื่อมต่อกับพอร์ต 5900/5901 สิ่งนี้ชี้ให้เห็นว่าแอปพลิเคชัน Java เริ่มต้นแอปพลิเคชัน VNC แต่แอปพลิเคชัน VNC จะเพิกเฉยต่อการตั้งค่าพร็อกซีทั้งระบบและไม่สามารถเชื่อมต่อกับโฮสต์ระยะไกลได้

Java ดูเหมือนว่าจะเชื่อฟังการตั้งค่าพร็อกซีทั้งระบบของฉัน แต่แอปพลิเคชัน VNC นี้ดูเหมือนว่าจะไม่สนใจ

มีวิธีใดบ้างที่ฉันจะบังคับให้แอปพลิเคชั่น VNC นี้ใช้การตั้งค่าพร็อกซีทั้งระบบของฉัน

คำตอบ:


4

ดูเหมือนว่า VPN อาจเป็นทางออกที่ดีที่สุดของคุณ มี ACL บนเราเตอร์เพื่อให้ทราฟฟิกที่ไม่ได้ใช้งานในเครื่องเท่านั้นต้องสำรวจ VPN และคุณก็เสร็จแล้ว ง่ายมากและปลอดภัยรวมทั้งง่ายต่อการจัดการ


1
VPN ใช้งานได้ดีเยี่ยมสำหรับเราในฐานะที่เป็นท่อสำหรับเครื่อง IPMI หลายเครื่อง เพียงแค่ติดตั้งเราเตอร์ที่ทันสมัย ​​(128mb, CPU ความเร็วสูงเช่น Asus RT-N16) ด้วย Tomato และ OpenVPN และทำงานได้ดี OpenVPN อาจจะง่ายกว่าในการตั้งค่าใช่ แต่เมื่อตั้งค่าแล้วก็ใช้งานได้!
Jeff Atwood

ในที่สุดฉันก็เลิก SOCKS และใช้ VPN ฉันอาจจะไปกับ OpenVPN
Stefan Lasiewski

21

ฉันคิดว่าดีที่สุดที่จะไม่ใช้พร็อกซีถุงเท้าสำหรับสิ่งนี้ แต่แทนที่จะส่งต่อพอร์ตทั้งหมดที่จำเป็นใน localhost IP ในการหลีกเลี่ยงบริการที่มีอยู่ฉันใช้ 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 สำหรับซีดีเสมือนและ 5123 สำหรับฟลอปปี้เสมือน (ฉันไม่ได้ทดสอบสองหลัง) เพิ่ม -C สำหรับการบีบอัดแม้ว่าฉันจะไม่รู้ว่าสิ่งใดที่ส่งมานั้นเหมาะสำหรับการบีบอัด

อีกวิธีที่สะดวกสบายกว่าเล็กน้อย (และในทางทฤษฎี, การทำงานที่ดีกว่า) บน linux คือการใช้sshuttleซึ่งจะส่งต่อการเชื่อมต่อ TCP ทั้งหมดผ่าน ssh โดยใช้ iptables และ python interpreter บนพร็อกซีเซิร์ฟเวอร์

sshuttle -r user @ proxy-server 192.168.1.1

คำแนะนำ: sshuttle กำลังได้รับการบรรจุใน Debian

สิ่งที่ฉันยังไม่สามารถส่งต่อได้คือพอร์ต UDP 623 ซึ่งสามารถใช้สำหรับ ipmitool ซึ่งเป็นการเชื่อมต่อ CLI สำหรับ IPMI มี อยู่ หลายบทเรียนเกี่ยวกับเรื่องนี้ แต่ไม่มีผู้ใดทำงานออกสำหรับฉัน อย่างไรก็ตาม Java KVM ก็ดีพอ


ฉันเห็นว่า SSH ส่งต่อการรับส่งข้อมูล TCP ไม่ใช่การรับส่งข้อมูล UDP IPMI (พอร์ต 623 / UDP) และอนุกรม-over-LAN (พอร์ต 6666 / UDP) เป็น UDP เท่านั้นจึงจำเป็นต้องมีการจัดเรียงของขี้ขลาดแปลง UDP ต่อ TCP netcatโดยใช้ น่าผิดหวังแค่ไหน
Stefan Lasiewski

1
คำสั่ง ssh แรกใช้งานได้ (เว็บอินเตอร์เฟสและคอนโซลรีโมต Java) ยกเว้นการติดตั้ง cd เสมือนดูเหมือนว่าจะไม่ทำงานจนกว่าคุณจะส่งต่อ 623 ( -L127.0.0.2:623:192.168.1.1:623) ขอขอบคุณที่แสดงรายการพอร์ตที่ต้องการ นี่ง่ายกว่าการตั้งค่า VPN
พื้นฐาน 6

2

ลองtsocksก็ควรช่วยให้คุณสามารถเรียกใช้กระบวนการใด ๆ ผ่านพร็อกซี่ถุงเท้าโดยการตั้งค่า LD_PRELOAD ซึ่งควรจะทำงานในกระบวนการย่อยทั้งหมดให้ดูนี้สำหรับการใช้งานตัวอย่างเช่น แน่นอนถ้าคุณใช้ ssh เพื่อสร้าง SOCKS proxy คุณจะยังคงมีปัญหา UDP แต่สิ่งนี้ควรแก้ไขปัญหา subprocess

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.