Skip to content

Sichern eines SuperMicro IPMI BMC

Unser Autorenteam hat viel Zeit damit verbracht, die Lösung für Ihre Frage zu recherchieren. Wir geben Ihnen die Lösung als Geschenk und hoffen, Ihnen damit eine große Hilfe sein zu können.

Lösung:

Lösung 1:

Idealerweise wäre Ihr Verwaltungsnetzwerk ein anderes Netzwerk als Ihr anderes Netzwerk oder zumindest ein anderes Vlan mit begrenztem geroutetem Zugriff.

Auf diesen Systemen laufen aber nicht wirklich viele Dienste:

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)

(und UDP/623 für IPMI selbst)

Die meisten dieser Dienste werden benötigt, wenn Sie irgendeine Art von Fernverwaltung durchführen wollen. Wenn Sie keine Fernverwaltung durchführen wollen, sollten Sie erwägen, den IPMI-Controller überhaupt nicht zu aktivieren oder stattdessen ein X9DTU-Board zu kaufen (das -F steht für "built-in BMC").

Wenn Sie eine vollständige Fernverwaltung durchführen möchten, Ihre IPMI-Controller nicht in einem anderen Netzwerk betreiben können und dennoch einige Zugriffe deaktivieren möchten, können Sie den IPMI-Controller immer dazu bringen, iptables-Befehle auszuführen. Sie könnten ein ssh-Login skripten, um die Befehle auszuführen, oder Supermicro um das Devkit für den BMC bitten und ein neues Image mit einem benutzerdefinierten iptables-Skript erstellen.

UPDATE

Ich habe noch einmal einen Blick auf unsere Systeme geworfen, und das /conf-Dateisystem ist rw gemountet. Keines der Init-Skripte hat irgendetwas direkt in /conf aufgerufen (das ich sehen konnte), aber es gibt eine crontab-Datei. Man könnte also ein iptables-Skript hineinkopieren und /conf/crontab so bearbeiten, dass es in einem geeigneten Intervall aufgerufen wird. Sie möchten, dass es so schnell wie möglich beim BMC-Init ausgeführt wird, aber Sie möchten nicht unbedingt, dass es jede Minute läuft. Oder vielleicht ist es Ihnen egal.

Lösung 2:

verwenden. /conf/crontabklingt für mich, wie dlawson sagte, nach einer ausgezeichneten Idee. Damit kann ich einmal pro Minute ein Skript ausführen, das sicherstellt, dass alles außer http und ssh
heruntergefahren wird:

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

Damit habe ich immer noch einen Webserver mit passwortbasierten Zugangskontrolle (ich sehe keine Möglichkeit, ihn Client-Zertifikate überprüfen zu lassen) und wer weiß, welche entfernten Sicherheitslücken. Ihn auszuschalten, wenn ich ihn nicht benutze (was die meiste Zeit der Fall ist), scheint eine vernünftige Lösung zu sein; einen crontab-Eintrag hinzuzufügen, um ihn alle fünf oder zehn Minuten herunterzufahren, würde die Fälle abfangen, in denen jemand vergisst, ihn herunterzufahren, wenn er fertig ist.

Der ssh-Daemon ist eine Version von dropbear, die ziemlich stark modifiziert zu sein scheint. Er liest Benutzernamen und Klartextpasswörter von /conf/PMConfig.dat (der auch vom Webserver verwendet wird), meldet sich mit jedem gültigen Namen und Passwort als Root-User an und ignoriert die ~/.ssh/authorized_keys Datei. Dieses letzte Problem ist ärgerlich; es zwingt Sie dazu, die Anmeldung mit Kennwort zuzulassen und eröffnet die Möglichkeit von Hintertüren, je nachdem, woher es seine Namen und Kennwörter bezieht.

Das ist also das Dilemma, vor dem Sie stehen: Wie viel Vertrauen haben Sie wirklich in diesen modifizierten ssh-Daemon, der auf einem System installiert ist, das ganz offensichtlich von sicherheits-naiven Entwicklern entworfen wurde? Nicht viel, wenn man die Anzahl der Fehler in den Shell-Skripten bedenkt, die ich gesehen habe. Es gibt ungewöhnliche Namenskonventionen (/etc/rc?.d/sshd ist ein Symlink zu /etc/init.d/ssh), riesige Mengen an Code, die unbenutzt zu sein scheinen, und Funktionen nur im ssh-Startskript, wie die /conf/portcfg_ssh Datei und sogar die restart Befehl sind völlig kaputt. (Versuchen Sie nicht, den Befehle; sshd wird nicht neu gestartet und Sie sind aufgeschmissen, es sei denn, Sie haben eine bestehende Anmeldung. Wir haben den BMC neu gestartet und mussten ihn schließlich neu flashen.)

Die beste Option, die mir einfällt, wenn man das Ding überhaupt benutzen will, ist, ssh auf einem alternativen Port mit einem Cron-Job zu starten, so dass es zumindest weniger wahrscheinlich ist, dass es in einem Portscan auftaucht.

Die letzte Komponente sind die IPMI-Netzwerkmanagement-Ports; ich kann nicht erkennen, wie man diese abschalten kann.


Lösung 3:

Eine Sache, die man bei der Absicherung eines Supermicro IPMI berücksichtigen sollte, ist der ssh-Server. Ältere Versionen des X8SIL-F IPMI-Codes akzeptierten ssh-Verbindungen, egal welches Passwort angegeben wurde. Die Software prüfte dann das Passwort und lehnte die Verbindung ab oder akzeptierte sie, aber es gab ein kurzes Fenster, um ssh-Port-Weiterleitungen zu erstellen. Die Leute bekamen deswegen Spam-/Missbrauchsbeschwerden für ihre IPMI-IPs. Für die X8SIL-F-Hauptplatine wurde das Problem mit der IPMI-Firmware-Version 2.60 behoben (vielleicht wurde es auch schon früher behoben, der Changelog-Eintrag von 2.54 sieht danach aus).

Ein zweites Problem ist ein anonymer Benutzer mit einem Standardpasswort. Der anonyme Benutzer scheint in der Firmware-Version 2.22 behoben zu sein.


Lösung 4:

Es gibt einen kleinen Trick, um den anonymen Benutzer zu aktivieren. HTTPS für die Webschnittstelle von IPMI zu aktivieren.

Wenn deine IPMI-Firmware das unterstützt (meine 2.04-Firmware für X8DTH-iF unterstützt das), könntest du zunächst den HTTPS-Zugang aktivieren, indem du zu Konfiguration -> SSL gehst, zwei PEM-Dateien (Zertifikat und privater Schlüssel) hochlädst und anschließend dein IPMI-Modul manuell neu startest.

Schließlich können Sie auf die IPMI-Webschnittstelle über https://bmc-ip-or-hostname/ zugreifen. Ich kann nicht sagen, dass HTTPS langsamer arbeitet als HTTP.

Kommentare und Bewertungen des Beitrags

Wir würden uns freuen, wenn Sie dieses Schreiben mitteilen könnten, wenn es Ihr Problem löst.



Nutzen Sie unsere Suchmaschine

Suche
Generic filters

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.