SuperMicro IPMI BMC Güvenliğini Sağlama


17

Son zamanlarda temelde IPMI sistemini çalıştıran yerleşik bir BMC'ye sahip bir SuperMicro X8DTU-F anakart aldım. Bir ARM işlemcide çalışan küçük bir Linux sistemi olduğu ortaya çıktı.

Ne yazık ki, çoğu ihtiyacım olmayan bir tekne yükü yazılımı çalıştırıyor ve bir güvenlik duvarının arkasına koyma yeteneğim yok. Ancak, IPMI işlevselliğini istiyorum. Bunlardan birini kullanan herhangi birinin, bu şeyin nasıl güvence altına alınacağı konusunda bazı önerileri var mı? Aslında bir ROM dosya sisteminden önyükleme yapar ve hatta çalıştığı çeşitli sunuculardan herhangi birini kapatmak için herhangi bir kanca görünmüyor.

Ayrıca, çeşitli hizmetler aracılığıyla sisteme erişmek için kullanılabilecek adların ve parolaların listesini nasıl doğrulayabileceğimi de merak ediyorum. Varsayılan ADMIN/ şeklindedir ADMIN, ancak / conf veya / etc içindeki dosyaların hiçbirinde 'ADMIN' yoktur, bu da beni endişelendirir. Orada /conf/shadowve /conf/webshadowben ya özellikle rahat yapmaz onları gizemli 'test' kimlikleri ile dosyaları.


Henüz gölge, webshadow içeriği ve gerçekte geçerli kullanıcılar arasında bir ilişki bulamadım. BMC yönetimi aracılığıyla eklenen yeni kullanıcılar bu dosyalarda görünmez. Ayrıca, "anonim", "test1", "test2" kullanıcılarının dosya sisteminde bulunmayan bir kabuğu vardır.
Daniel Lawson

2
Ayrıca Dan Farmer'ın IPMI Güvenlik En İyi Uygulamaları kılavuzuna bakın . IPMI ile ilgili bazı önemli güvenlik sorunlarını ayrıntılarıyla açıklayan yeni bir makale yayınladı : ipmi: yük treni cehenneme .
Stefan Lasiewski

1
Bu harika bağlantı için teşekkürler. Güvenlik sorunlarının kısa özeti fish2.com/ipmi/itrain-gz.html adresinde ve çok kısa özeti ise "tamamen mahvoldunuz." İç çekmek.
Curt J. Sampson

Yanıtlar:


6

Kullanılması /conf/crontabdlawson belirttiği gibi, benim için mükemmel bir fikir gibi geliyor. Bu, http ve ssh dışında her şeyin kapatılmasını sağlayan bir komut dosyasını dakikada bir çalıştırmamı sağlıyor:

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

Bu hala beni şifre tabanlı erişim kontrolü olan bir web sunucusuna bırakıyor (istemci sertifikalarını doğrulatmanın bir yolunu göremiyorum) ve hangi uzak güvenlik açıklarını bilen. Kullanmadığımda kapatmak (çoğu zaman) makul bir çözüm gibi görünüyor; beş veya on dakikada bir kapatmak için bir crontab girişi eklemek, birisinin bittiğinde kapatmayı unuttuğu durumları yakalar.

Ssh arka plan programı, oldukça yoğun bir şekilde değiştirilmiş gibi görünen bir dropbear sürümüdür . Kullanıcı adını ve düz metin parolaları /conf/PMConfig.dat(web sunucusu tarafından da kullanılır) okur , kök kullanıcı olarak geçerli herhangi bir ad ve parolayla oturum açar ve ~/.ssh/authorized_keysdosyayı yok sayar . Bu son sorun sinir bozucu; sizi şifre girişlerine izin vermeye zorlar ve adlarını ve şifrelerini nereden aldığına bağlı olarak arka kapı olasılığını açar.

Yani karşılaştığınız ikilem bu: Güvenlik açısından saf geliştiriciler tarafından oldukça açık bir şekilde tasarlanmış bir sisteme kurulmuş olan bu modifiye ssh daemon'a gerçekten ne kadar güveniyorsunuz? Çok fazla değil, kabuk senaryolarında gördüğüm kırık parça bitleri göz önüne alındığında. Olağandışı adlandırma kuralları (/etc/rc?.d/sshd, /etc/init.d/ssh) için bir simge bağlantısı, kullanılmayan büyük miktarda kod ve yalnızca ssh başlangıç ​​komut dosyasında bulunan özellikler gibi /conf/portcfg_sshdosya ve hatta restartkomut tamamen kırılır. (Bunları kullanmayı denemeyin; sshd yeniden başlatılmaz ve mevcut bir girişiniz yoksa vidalanırsınız. BMC'yi yeniden başlattık ve yeniden yanıtlamak zorunda kaldık.)

Düşünebileceğim en iyi seçenek, eğer bir şey hiç kullanacaksa, bir cron işi kullanarak alternatif bir bağlantı noktasında ssh'yi başlatmaktır, bu yüzden en azından bir Portscan'da görünme olasılığı daha azdır.

Son bileşen IPMI ağ yönetimi bağlantı noktalarıdır; Bunları nasıl kapatacağımı göremiyorum.


Değişikliklerle ilgili endişelerinizin çoğu muhtemelen bir sorun değildir. Dropbear, kimlik doğrulaması için libpamipmi kullanan pam kullanıyor - aslında doğrudan açık metin şifrelerini okuduğuna dair bir kanıt görmedim. Libpamipmi, ipmi yığınına bir ipmi çağrısı yapacak ve bu da açık metin şifrelerini okuyabilir, ancak benim açımdan, açık saçma arka plan programının berbat olduğu gibi görünmemesi. Bununla birlikte, aksi yönde herhangi bir kesin kanıt duymak isterim.
Daniel Lawson

Eh, a) parola yerine anahtar kullanmanın ve b) parola kimlik doğrulamasını devre dışı bırakmanın bir yolu olmadığı için bozulduğunu biliyoruz.
Curt J. Sampson

6

İdeal olarak, yönetim ağınız diğer ağınızdan farklı bir ağ veya en azından yönlendirilmiş erişimi sınırlı farklı bir vlan olacaktır.

Bu sistemler bu kadar çok hizmeti gerçekten çalıştırmıyor:

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)

(ve IPMI'nın kendisi için UDP / 623)

Herhangi bir uzaktan yönetim yapmak istiyorsanız, bunların çoğu gereklidir. Uzaktan yönetim yapmak istemiyorsanız, IPMI denetleyicisini hiç etkinleştirmemeyi veya bunun yerine bir X9DTU kartı almamayı düşünmelisiniz (-F, "yerleşik BMC" anlamına gelir)

Tam uzaktan yönetim yapmak istiyorsanız, IPMI denetleyicilerinizi farklı bir ağda çalıştıramazsanız ve yine de bazı erişimi devre dışı bırakmak istiyorsanız, IPMI denetleyicisinin her zaman iptables komutlarını çalıştırmasını sağlayabilirsiniz. Komutları yürütmek için bir ssh oturum açma komut dosyası yazabilir veya Supermicro'dan BMC için devkit'i isteyebilir ve özel bir iptables komut dosyasıyla yeni bir görüntü oluşturabilirsiniz.

GÜNCELLEME

Burada sistemlerimize bir kez daha baktım ve / conf dosya sistemi rw. İnit komut dosyalarının hiçbiri doğrudan / conf içinde (görebildiğim) bir şey çağırmadı, ancak bir crontab dosyası var. Yani, bir iptables betiğinde kopyalayabilir ve bazı uygun aralıklarla çağırmak için / conf / crontab'ı düzenleyebilirsiniz. BMC init'te ASAP çalıştırılmasını istersiniz, ancak her dakika çalışmasını istemezsiniz. Ya da belki umrumda değil.


Yönetim için ayrı bir ağa sahip olmak isterdim, ancak maalesef bu başka birinin veri merkezine giriyor ve buna sahip olamıyorum. Yönetim gelince, tek istediğim https ve ssh.
Curt J. Sampson

Asla, hiç KVM'yi lan üzerinden istemeyeceksin?
Daniel Lawson

DC'de ana makinenizin önünde ayrı bir güvenlik duvarı biriminiz olabilir. Bu bir şekilde sorunu çözecektir. Bu konuda Supermicro'dan yardım istediniz mi? Oldukça duyarlı olduklarını gördüm
Daniel Lawson

Hayır. BIOS, Grub ve Linux çekirdeğinin tümü seri bir konsolu desteklediğinden LAN üzerinden KVM'ye ihtiyacım yok.
Curt J. Sampson

4

Supermicro IPMI güvenliğini göz önüne alırken dikkat edilmesi gereken bir şey ssh sunucusudur. X8SIL-F IPMI kodunun eski sürümleri, hangi parola verilirse verilsin ssh bağlantılarını kabul etti. Yazılım daha sonra parolayı kontrol eder ve bağlantıyı reddeder veya kabul eder, ancak ssh portunu ileriye doğru oluşturmak için kısa bir pencere vardı. İnsanlar bu nedenle IPMI IP'leri için spam / kötüye kullanım şikayetleri alıyordu . X8SIL-F anakart için, 2.60 IPMI ürün yazılımı sürümü sorunu düzeltti (daha önce düzeltilmiş olabilir, 2.54'ün changelog girişi olması muhtemel gibi görünüyor).

İkinci sorun, varsayılan şifresi olan anonim bir kullanıcıdır. Anonim kullanıcı, ürün yazılımı sürüm 2.22'de düzeltilmiş gibi görünüyor.


2

IPMI'nin web arayüzü için HTTPS'yi etkinleştirmenin küçük bir hilesi var .

IPMI ürün yazılımınız bunu destekliyorsa (X8DTH-iF için 2.04 ürün yazılımım destekliyorsa), öncelikle Yapılandırma -> SSL'ye gidip iki PEM dosyası (sertifika ve özel anahtar) yükleyerek ve ikinci olarak manuel olarak HTTPS erişimini etkinleştirebilirsiniz IPMI modülünüzü yeniden başlatın.

Son olarak, IPMI'nın web arayüzüne https: // bmc-ip-veya-hostname / ile erişebilirsiniz . HTTPS'nin HTTP'den daha yavaş çalıştığını söyleyemem.


0

Herhangi biriniz iptables ile şeyi güvence altına almaya çalıştınız mı? IPtables yüklü gibi görünüyor, ve ben her şeyi biraz daha güvenli hale getirmek için birkaç güvenilir IP kabul kabul bir kural kümesi yapmak istiyorum ... Ama yukarıda okuduğum gibi hiçbir komut / config okunuyor. Crontab tek seçenek midir? Peki ya iptables'ı batırdıysanız?


1
Daha önce de söylediğim gibi, IPMI denetleyicinizi harici olarak güvenceye almak çok daha iyidir: ya tamamen ayrı bir vlan veya fiziksel ağda bulunarak veya bir sınır güvenlik duvarı ile korunur. IPMI / BMC denetleyicisinin bu özel modeli linux'u çalıştırır ve bu da iptables ile güvende tutabileceğinizi söyler. Bununla birlikte, gerçek şu ki, BMC / IPMI / onların büyük çoğunluğunun güvenlik duvarı yolunda çok fazla bir şeye veya hiçbir şeye sahip olmaması ve buna güvenmemelisiniz. Güçlükten kurtulun ve IPMI ağınızı özel, güvenli ve yönlendirilmemiş olarak ele alın.
Daniel Lawson

1
IPMI denetleyicinizi harici olarak korumanın "daha iyi" olduğuna katılmıyorum; güvenlik duvarları ve benzerleri, güvenlik arızalarına karşı ilk etapta güvenli bir şekilde korunan bir ana bilgisayardan daha eğilimlidir. Ancak, ayrı bir ağ kullanma yeteneğiniz varsa, bu iyi bir şeydir ve böyle bir IPMI cihazı durumunda, neredeyse gerekli gibi görünmektedir.
Curt J. Sampson

0

Dosya sistemini nasıl görüntülediniz? Bağlantı noktası 22'ye telnet yaparsam, dropbear'ın çalıştığını görebiliyorum, ancak çeşitli kullanıcı adlarıyla SSH'ye çalışırsam, bir şifre istemez. Yönetici ayrıcalıklarına sahip yeni bir kullanıcı ekledim, ancak SSH bu kullanıcı için de yanıt vermeyecek. Winbond Hermon IPMI 2.0 yongası, ürün yazılımı revizyonu 01.29, inşa süresi 2009-12-31 olan bir Supermicro X7SPA-HF anakart kullanıyorum.


2
Neler olduğunu görmek için ssh -v yaptım ve bunun Ortak Anahtar Kimlik Doğrulaması girişiminde bulunduğunu gördüm. Bunu devre dışı bırakarak işe aldım.

Şimdi ATEN SMASH-CLP Sistem Yönetimi Kabuğu'ndayım, sürüm 1.00
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.