การรักษาความปลอดภัย SuperMicro IPMI BMC


17

เมื่อเร็ว ๆ นี้ฉันได้รับมาเธอร์บอร์ด SuperMicro X8DTU-F ซึ่งมี BMC ในตัวซึ่งโดยทั่วไปใช้งานระบบ IPMI ดูเหมือนจะเป็นระบบ Linux ขนาดเล็กที่ทำงานบนโปรเซสเซอร์ ARM

น่าเสียดายที่มันใช้งานซอฟแวร์จำนวนมากซึ่งส่วนใหญ่ฉันไม่ต้องการและฉันไม่มีความสามารถในการวางไฟร์วอลล์ไว้ด้านหลัง อย่างไรก็ตามฉันต้องการฟังก์ชั่น IPMI ใครบ้างที่เคยใช้สิ่งเหล่านี้มีคำแนะนำเฉพาะเกี่ยวกับการรักษาความปลอดภัยของสิ่งนั้นหรือไม่? มันบูทจากสิ่งที่เป็นระบบไฟล์ ROM และดูเหมือนจะไม่มีตะขอใด ๆ ที่จะปิดเซิร์ฟเวอร์ต่าง ๆ ที่รัน ....

ฉันยังสนใจที่จะตรวจสอบรายชื่อและรหัสผ่านที่สามารถใช้เพื่อเข้าถึงระบบผ่านบริการต่าง ๆ ทั้งหมด ค่าเริ่มต้นคือADMIN/ ADMINแต่ไม่มีไฟล์ใดใน / conf หรือ / etc ที่มี 'ADMIN' อยู่ในไฟล์ซึ่งค่อนข้างทำให้ฉันเป็นกังวล มี/conf/shadowและ/conf/webshadowไฟล์พร้อมรหัส 'ทดสอบ' ลึกลับในตัวพวกเขาซึ่งไม่ทำให้ฉันรู้สึกสบายใจเป็นพิเศษเช่นกัน


ฉันยังไม่พบความสัมพันธ์ระหว่างเนื้อหาของเงา, webshadow และผู้ใช้ที่ถูกต้องจริงๆ ผู้ใช้ใหม่ที่เพิ่มผ่านการจัดการ BMC ไม่ปรากฏในไฟล์เหล่านี้ นอกจากนี้ผู้ใช้ "anonymous", "test1", "test2" มีเชลล์ที่ไม่มีอยู่ในระบบไฟล์
Daniel Lawson

2
ยังเห็นคู่มือแดนของชาวนาที่IPMI การรักษาความปลอดภัยปฏิบัติที่ดีที่สุด เขาเปิดตัวกระดาษที่ผ่านมารายละเอียดปัญหาด้านความปลอดภัยบาง signifigant กับ IPMI บรรดาศักดิ์IPMI: รถไฟบรรทุกสินค้าไปยังนรก
Stefan Lasiewski

1
ขอบคุณสำหรับลิงค์ที่ดี สรุปสั้น ๆ ของปัญหาด้านความปลอดภัยอยู่ที่fish2.com/ipmi/itrain-gz.htmlและสรุปสั้น ๆ ก็คือ "คุณกำลังเมาอย่างเต็มที่" ถอนหายใจ
Curt J. Sampson

คำตอบ:


6

การใช้/conf/crontabดังที่ลอว์สันชี้ให้เห็นดูเหมือนว่าความคิดที่ยอดเยี่ยมสำหรับฉัน สิ่งนี้ทำให้ฉันสามารถเรียกใช้สคริปต์หนึ่งครั้งต่อนาทีที่รับรองทุกอย่าง แต่ http และ ssh ถูกปิดลง:

/etc/init.d/cdserver stop
/etc/init.d/fdserver stop
/etc/init.d/cim_sfcb stop
/etc/init.d/webgo stop

ยังคงทิ้งฉันไว้กับเว็บเซิร์ฟเวอร์ที่มีการควบคุมการเข้าถึงโดยใช้รหัสผ่าน (ฉันไม่สามารถตรวจสอบใบรับรองไคลเอ็นต์ได้) และใครจะรู้ว่ามีช่องโหว่ระยะไกลใดบ้าง ปิดใช้งานเมื่อฉันไม่ได้ใช้งาน (ซึ่งเป็นส่วนใหญ่) ดูเหมือนโซลูชันที่สมเหตุสมผล การเพิ่มรายการ crontab เพื่อปิดมันทุกห้าหรือสิบนาทีจะจับกรณีที่มีคนลืมปิดเมื่อเขาทำ

ssh daemon เป็นเวอร์ชันของdropbearที่ดูเหมือนว่าจะมีการปรับเปลี่ยนอย่างมาก มันอ่านชื่อผู้ใช้และรหัสผ่านธรรมดาจาก/conf/PMConfig.dat(ซึ่งยังใช้โดยเว็บเซิร์ฟเวอร์), บันทึกในชื่อและรหัสผ่านที่ถูกต้องใด ๆ ในฐานะผู้ใช้รูทและละเว้น~/.ssh/authorized_keysไฟล์ ปัญหาสุดท้ายนี้น่ารำคาญ มันบังคับให้คุณอนุญาตให้ใช้รหัสผ่านในการเข้าสู่ระบบและเปิดโอกาสการเข้าถึงของแบ็คดอร์ขึ้นอยู่กับว่าได้รับชื่อและรหัสผ่านจากที่ไหน

นั่นคือปัญหาที่คุณเผชิญอยู่: คุณเชื่อใจ ssh daemon ที่ถูกดัดแปลงที่ติดตั้งบนระบบที่ได้รับการออกแบบโดยนักพัฒนาด้านความปลอดภัยหรือไม่ ไม่มากเลยเพราะจำนวนบิตของ cruft ที่ฉันเคยเห็นในเชลล์สคริป มีแบบแผนการตั้งชื่อที่ผิดปกติ (/etc/rc?.d/sshd เป็น symlink ไปยัง /etc/init.d/ssh), โค้ดจำนวนมากที่ดูเหมือนจะไม่ได้ใช้งานและคุณสมบัติในสคริปต์เริ่มต้น ssh เช่น/conf/portcfg_sshไฟล์และแม้กระทั่งrestartคำสั่งจะแตกทั้งหมด (อย่าลองใช้สิ่งเหล่านี้; sshd จะไม่รีสตาร์ทและคุณจะเมาจนกว่าคุณจะมีการเข้าสู่ระบบที่มีอยู่เรารีบูต BMC และจบลงด้วยการ reflash มัน)

ตัวเลือกที่ดีที่สุดที่ฉันนึกได้ถ้าใครจะใช้ของทุกอย่างคือเริ่มต้น ssh บนพอร์ตอื่นโดยใช้งาน cron ดังนั้นอย่างน้อยก็มีโอกาสน้อยที่จะปรากฏในพอร์ตสแกน

ส่วนประกอบสุดท้ายคือพอร์ตการจัดการเครือข่าย IPMI ฉันไม่เห็นวิธีปิดการทำงานเหล่านี้


ความกังวลส่วนใหญ่ของคุณเกี่ยวกับการแก้ไขอาจไม่ใช่ปัญหา Dropbear ใช้ pam ซึ่งใช้ libpamipmi สำหรับรับรองความถูกต้อง - ฉันไม่เคยเห็นหลักฐานใด ๆ ว่าจริง ๆ แล้วมันอ่านรหัสผ่าน cleartext โดยตรง Libpamipmi จะทำการเรียก ipmi ไปที่ ipmi stack และนั่นอาจเป็นการอ่านรหัสผ่านที่ชัดเจน แต่จุดของฉันคือว่ามันดูไม่เหมือนภูต dropbear ที่ถูกเมา ฉันสนใจที่จะฟังหลักฐานที่ชัดเจนว่าคุณต้องตรงกันข้าม
Daniel Lawson

เรารู้ว่ามันใช้งานไม่ได้ก) ใช้คีย์แทนรหัสผ่านและ b) ปิดใช้งานการพิสูจน์ตัวตนด้วยรหัสผ่าน
Curt J. Sampson

6

ตามหลักการแล้วเครือข่ายการจัดการของคุณจะเป็นเครือข่ายอื่นกับเครือข่ายอื่นของคุณหรืออย่างน้อย vlan อื่นที่มีการเข้าถึงที่ จำกัด เส้นทาง

ระบบเหล่านี้ไม่ได้ใช้บริการที่หลากหลายเช่น:

PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
443/tcp  open  https
555/tcp  open  dsf
5120/tcp open  unknown
5900/tcp open  vnc
5988/tcp open  unknown
MAC Address: 00:30:48:D9:3A:71 (Supermicro Computer)

(และ UDP / 623 สำหรับ IPMI เอง)

สิ่งเหล่านี้ส่วนใหญ่มีความจำเป็นหากคุณต้องการทำการจัดการระยะไกลชนิดใดก็ได้ หากคุณไม่ต้องการทำการจัดการระยะไกลคุณควรพิจารณาไม่เปิดใช้งานตัวควบคุม IPMI เลยหรือซื้อบอร์ด X9DTU แทน (-F หมายถึง "BMC ในตัว")

หากคุณต้องการจัดการจากระยะไกลเต็มรูปแบบไม่สามารถเรียกใช้ตัวควบคุม IPMI ของคุณบนเครือข่ายที่แตกต่างกันและยังคงต้องการที่จะปิดการเข้าถึงบางส่วนจากนั้นคุณสามารถรับตัวควบคุม IPMI เพื่อดำเนินการคำสั่ง iptables คุณสามารถสคริปต์การเข้าสู่ระบบ ssh เพื่อดำเนินการคำสั่งหรือขอ Supermicro สำหรับ devkit สำหรับ BMC และสร้างภาพใหม่ด้วยสคริปต์ iptables ที่กำหนดเอง

UPDATE

ฉันได้ดูระบบของเราที่นี่อีกครั้งและระบบไฟล์ / conf ติดตั้งอยู่กับ rw ไม่มีสคริปต์ init ใด ๆ ที่เรียกว่าโดยตรงใน / conf (ที่ฉันเห็น) แต่มีไฟล์ crontab ดังนั้นฉันคิดว่าคุณสามารถคัดลอกในสคริปต์ iptables และแก้ไข / conf / crontab เพื่อโทรหาในช่วงเวลาที่เหมาะสม คุณต้องการให้มันรัน ASAP บน BMC init แต่คุณไม่ต้องการให้มันรันทุกนาที หรือบางทีคุณไม่แคร์


ฉันชอบที่จะมีเครือข่ายแยกต่างหากสำหรับการจัดการ แต่น่าเสียดายที่นี่กำลังเข้าสู่ศูนย์ข้อมูลของคนอื่นและฉันไม่มีมัน สำหรับการจัดการสิ่งที่ฉันต้องการคือ https และ ssh
Curt J. Sampson

คุณจะไม่มีวันต้องการ KVM ผ่านทาง LAN หรือไม่?
Daniel Lawson

คุณอาจมีหน่วยไฟร์วอลล์แยกต่างหากต่อหน้าโฮสต์ของคุณที่ DC ที่ค่อนข้างจะแก้ไขปัญหา คุณได้ขอความช่วยเหลือจาก Supermicro ในเรื่องนี้หรือไม่? ฉันได้พบว่าพวกเขาจะค่อนข้างตอบสนอง
แดเนียลลอว์สัน

ไม่ฉันไม่จำเป็นต้องใช้ KVM ผ่าน LAN เนื่องจาก BIOS, Grub และ Linux kernel ทั้งหมดสนับสนุนคอนโซลอนุกรม
Curt J. Sampson

4

สิ่งหนึ่งที่ควรพิจารณาเมื่อรักษาความปลอดภัย Supermicro IPMI คือเซิร์ฟเวอร์ ssh X8SIL-F IPMI code เวอร์ชั่นเก่ายอมรับการเชื่อมต่อ ssh ไม่ว่าจะให้รหัสผ่านแบบใดก็ตาม ซอฟต์แวร์จะตรวจสอบรหัสผ่านและปฏิเสธหรือยอมรับการเชื่อมต่อ แต่มีหน้าต่างสั้น ๆ เพื่อสร้างพอร์ต ssh ไปข้างหน้า ผู้คนกำลังได้รับการร้องเรียนสแปม / การละเมิดสำหรับ IPMI IP ของพวกเขาเพราะเหตุนี้ของพวกเขาเพราะเรื่องนี้ สำหรับมาเธอร์บอร์ด X8SIL-F เวอร์ชั่นเฟิร์มแวร์ 2.60 IPMI จะแก้ไขปัญหา (อาจได้รับการแก้ไขก่อนหน้านี้รายการบันทึกการเปลี่ยนแปลงของ 2.54 ดูเหมือนจะเป็นไปได้)

ปัญหาที่สองคือผู้ใช้ที่ไม่ระบุชื่อด้วยรหัสผ่านเริ่มต้น ดูเหมือนว่าผู้ใช้ที่ไม่ระบุชื่อจะได้รับการแก้ไขในเฟิร์มแวร์เวอร์ชั่น 2.22


2

มีเคล็ดลับเล็กน้อยในการเปิดใช้งานHTTPSสำหรับเว็บอินเตอร์เฟสของ IPMI

หากเฟิร์มแวร์ IPMI ของคุณรองรับนั้น (เฟิร์มแวร์ 2.04 ของฉันสำหรับ X8DTH-iF รองรับ) ในตอนแรกคุณสามารถเปิดใช้งานการเข้าถึง HTTPS โดยไปที่การกำหนดค่า -> SSL อัปโหลดไฟล์ PEM สองไฟล์ (ใบรับรองและคีย์ส่วนตัว) รีบูตโมดูล IPMI ของคุณ

สุดท้ายคุณสามารถเข้าถึง IPMI เว็บอินเตอร์เฟซโดยhttps: // BMC-IP หรือชื่อโฮสต์ / ฉันไม่สามารถพูดได้ว่า HTTPS ทำงานช้ากว่า HTTP


0

คุณเคยพยายามที่จะรักษาความปลอดภัยด้วย iptables บ้างไหม? ดูเหมือนว่ามีการติดตั้ง iptables และฉันต้องการสร้าง ruleset ซึ่งปฏิเสธทุกสิ่งที่ยอมรับจาก IP ที่เชื่อถือได้เพียงไม่กี่เครื่องเพื่อให้ปลอดภัยยิ่งขึ้น ... แต่เมื่อฉันอ่านข้างต้นไม่มีสคริปต์ใดถูกอ่าน / config crontab เป็นตัวเลือกเดียวหรือไม่? แล้วถ้าคุณทำ iptables ล่ะ


1
ดังที่ฉันได้กล่าวไว้ก่อนหน้านี้มันจะดีกว่าที่จะรักษาความปลอดภัยตัวควบคุม IPMI ของคุณจากภายนอก: โดยการใช้มันใน vlan หรือเครือข่ายทางกายภาพที่แยกจากกันอย่างสมบูรณ์หรือรักษาความปลอดภัยด้วยไฟร์วอลล์ชายแดน IPMI / BMC คอนโทรลเลอร์รุ่นนี้เกิดขึ้นโดยเฉพาะกับการเรียกใช้ linux ซึ่งจะแจ้งให้คุณทราบว่าคุณสามารถรักษาความปลอดภัยด้วย iptables อย่างไรก็ตามความจริงก็คือว่าส่วนใหญ่ของ BMC / IPMI / สิ่งที่พวกเขามีไม่มากหรืออะไรก็ตามในวิธีการไฟร์วอลล์และดังนั้นคุณไม่ควรพึ่งพามัน ช่วยตัวคุณเองให้ยุ่งยากและจัดการกับเครือข่าย IPMI ของคุณอย่างเป็นส่วนตัวปลอดภัยและไม่ติดขัด
Daniel Lawson

1
ฉันไม่เห็นด้วยที่จะ "ดีกว่า" เพื่อรักษาความปลอดภัยตัวควบคุม IPMI ของคุณจากภายนอก ไฟร์วอลและสิ่งที่คล้ายกันมีแนวโน้มที่จะเกิดความล้มเหลวด้านความปลอดภัยมากกว่าโฮสต์ที่ปลอดภัยอย่างถูกต้องตั้งแต่แรก อย่างไรก็ตามหากคุณมีความสามารถในการใช้เครือข่ายแยกต่างหากนั่นเป็นสิ่งที่ดีและในกรณีของอุปกรณ์ IPMI เช่นนี้ดูเหมือนว่าจะมีความสำคัญเกือบ
Curt J. Sampson

0

คุณดูระบบไฟล์ได้อย่างไร? ถ้าฉัน telnet ไปยังพอร์ต 22 ฉันสามารถเห็น dropbear กำลังทำงานอยู่ แต่ถ้าฉันลอง SSH ด้วยชื่อผู้ใช้ที่หลากหลายมันจะไม่ถามรหัสผ่าน ฉันได้เพิ่มผู้ใช้ใหม่ด้วยสิทธิ์ผู้ดูแลระบบ แต่ SSH จะไม่ตอบสนองผู้ใช้รายนั้น ฉันใช้มาเธอร์บอร์ด Supermicro X7SPA-HF ที่มีชิป Winbond Hermon IPMI 2.0, การแก้ไขเฟิร์มแวร์ 01.29, เวลาสร้าง 2009-12-31


2
ฉันทำ ssh -v เพื่อดูว่าเกิดอะไรขึ้นเห็นว่ามันกำลังพยายามพิสูจน์ตัวตนกุญแจสาธารณะ ฉันได้มันมาทำงานโดยปิดการใช้งาน

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