Ich habe kürzlich ein SuperMicro X8DTU-F-Motherboard erworben, das über einen integrierten BMC verfügt, auf dem im Grunde das IPMI-System ausgeführt wird. Es stellt sich heraus, dass es sich um ein kleines Linux-System handelt, das auf einem ARM-Prozessor ausgeführt wird.
Leider läuft hier eine Menge Software, von der ich viele nicht benötige und die ich nicht in der Lage bin, sie hinter eine Firewall zu stellen. Ich möchte jedoch die IPMI-Funktionalität. Hat jemand, der eines davon benutzt hat, konkrete Vorschläge, wie man das Ding sichert? Es bootet von einem im Grunde genommen ROM-Dateisystem, und es scheint nicht einmal irgendwelche Haken zu geben, um einen der verschiedenen Server, die es ausführt, auszuschalten.
Mich würde auch interessieren, wie ich die Liste der Namen und Kennwörter überprüfen kann, die für den Zugriff auf das System über alle verschiedenen Dienste verwendet werden können. Die Standardeinstellung ist ADMIN
/ ADMIN
, aber in keiner der Dateien in / conf oder / etc ist 'ADMIN' enthalten, was mich eher beunruhigt. Es gibt /conf/shadow
und /conf/webshadow
Dateien mit mysteriösen 'Test'-IDs, die mich auch nicht besonders wohl fühlen lassen.
quelle
Antworten:
Im Idealfall ist Ihr Verwaltungsnetzwerk ein anderes Netzwerk als Ihr anderes Netzwerk oder zumindest ein anderes VLAN mit eingeschränktem Routing-Zugriff.
Auf diesen Systemen werden jedoch nicht so viele Dienste ausgeführt:
(und UDP / 623 für IPMI selbst)
Die meisten davon werden benötigt, wenn Sie eine Remoteverwaltung durchführen möchten. Wenn Sie keine Fernverwaltung durchführen möchten, sollten Sie erwägen, den IPMI-Controller überhaupt nicht zu aktivieren oder stattdessen eine X9DTU-Karte zu kaufen (-F steht für "Built-in BMC").
Wenn Sie eine vollständige Remoteverwaltung durchführen möchten, Ihre IPMI-Controller nicht in einem anderen Netzwerk ausführen können und dennoch einen gewissen Zugriff deaktivieren möchten, können Sie den IPMI-Controller jederzeit zur Ausführung von iptables-Befehlen auffordern. Sie können ein ssh-Login skripten, um die Befehle auszuführen, oder Supermicro nach dem Devkit für den BMC fragen und ein neues Image mit einem benutzerdefinierten iptables-Skript erstellen.
AKTUALISIEREN
Ich habe mir unsere Systeme hier noch einmal angesehen und das / conf-Dateisystem ist rw gemountet. Keines der Init-Skripte hat irgendetwas direkt in / conf aufgerufen (was ich sehen konnte), aber es gibt eine crontab-Datei. Also, ich denke, Sie könnten in einem Iptables-Skript kopieren und / conf / crontab bearbeiten, um es in einem geeigneten Intervall aufzurufen. Sie möchten, dass es so schnell wie möglich auf BMC init ausgeführt wird, aber Sie möchten nicht, dass es jede Minute ausgeführt wird. Oder ist es dir egal?
quelle
Unter Verwendung
/conf/crontab
, als dlawson wies darauf hin, klingt wie eine gute Idee zu mir. Dadurch kann ich einmal pro Minute ein Skript ausführen, das sicherstellt, dass alles außer http und ssh heruntergefahren wird:Dadurch habe ich immer noch einen Webserver mit passwortbasierter Zugriffskontrolle (ich sehe keine Möglichkeit, Client-Zertifikate überprüfen zu lassen) und wer weiß, welche Sicherheitslücken in der Ferne bestehen. Das Ausschalten, wenn ich es nicht benutze (was die meiste Zeit der Fall ist), scheint eine vernünftige Lösung zu sein. Das Hinzufügen eines Crontab-Eintrags, um ihn alle fünf oder zehn Minuten herunterzufahren, würde die Fälle erfassen, 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. Es liest Benutzernamen und Klartext-Passwörter
/conf/PMConfig.dat
(die auch vom Webserver verwendet werden), meldet einen gültigen Namen und ein gültiges Passwort als Root-Benutzer an und ignoriert die~/.ssh/authorized_keys
Datei. Dieses letzte Problem ist ärgerlich; Sie werden gezwungen, Kennwortanmeldungen zuzulassen, und die Möglichkeit von Hintertüren wird geöffnet, je nachdem, woher die Namen und Kennwörter stammen.Das ist also das Dilemma, vor dem Sie stehen: Wie sehr vertrauen Sie diesem modifizierten ssh-Daemon, der auf einem System installiert ist, das offensichtlich von sicherheitsnaiven Entwicklern entwickelt wurde? Überhaupt nicht viel, angesichts der Anzahl gebrochener Cruft-Teile, die ich in ihren Shell-Skripten gesehen habe. Es gibt ungewöhnliche Namenskonventionen (/etc/rc?.d/sshd ist ein Symlink zu /etc/init.d/ssh), eine große Menge Code, die offenbar nicht verwendet wird, und Funktionen, die nur im ssh-Startskript enthalten sind, z Die
/conf/portcfg_ssh
Datei und sogar derrestart
Befehl sind völlig kaputt. (Versuchen Sie nicht, diese zu verwenden. Sshd wird nicht neu gestartet, und Sie werden fertig, es sei denn, Sie haben bereits eine Anmeldung. Wir haben den BMC neu gestartet und mussten ihn erneut flashen.)Die beste Option, die ich mir vorstellen kann, ist, ssh auf einem alternativen Port mit einem Cron-Job zu starten, wenn man das Ding überhaupt verwenden möchte. Es ist also weniger wahrscheinlich, dass es in einem Portscan erscheint.
Die letzte Komponente sind die IPMI-Netzwerkverwaltungsports. Ich kann nicht sehen, wie ich diese ausschalten kann.
quelle
Eine Sache, die bei der Sicherung eines Supermicro IPMI zu beachten ist, ist der ssh-Server. Ältere Versionen des X8SIL-F IPMI-Codes akzeptierten SSH-Verbindungen, unabhängig davon, welches Kennwort angegeben wurde. Die Software überprüfte dann das Passwort und lehnte die Verbindung ab oder akzeptierte sie. Es gab jedoch ein kurzes Fenster, in dem der SSH-Port für die Weiterleitung erstellt werden konnte. Die Leute bekamen aus diesem Grund Spam- / Missbrauchsbeschwerden für ihre IPMI-IPs . Für das X8SIL-F-Motherboard hat die IPMI-Firmwareversion 2.60 das Problem behoben (möglicherweise wurde sie früher behoben, der Eintrag im Änderungsprotokoll von 2.54 sieht möglicherweise so aus).
Ein zweites Problem ist ein anonymer Benutzer mit einem Standardkennwort. Der anonyme Benutzer scheint in Firmware-Version 2.22 behoben zu sein.
quelle
Es gibt einen kleinen Trick, um HTTPS für die Webschnittstelle von IPMI zu aktivieren .
Wenn Ihre IPMI-Firmware dies unterstützt (meine 2.04-Firmware für X8DTH-iF unterstützt), können Sie zunächst den HTTPS-Zugriff aktivieren, indem Sie zu Konfiguration -> SSL wechseln, zwei PEM-Dateien (Zertifikat und privater Schlüssel) hochladen und dann manuell Starten Sie Ihr IPMI-Modul neu.
Schließlich können Sie über https: // bmc-ip-or-hostname / auf die IPMI-Weboberfläche zugreifen . Ich kann nicht sagen, dass HTTPS langsamer als HTTP arbeitet.
quelle
Hat jemand von euch versucht, das Ding mit Iptables zu sichern? Es scheint, dass iptables installiert ist, und ich möchte einen Regelsatz erstellen, der alles akzeptiert, von ein paar vertrauenswürdigen IPs, um es ein bisschen sicherer zu machen ... Aber wie ich oben gelesen habe, werden keine Skripte aus / config gelesen. Ist Crontab die einzige Option? Und was ist, wenn Sie iptables durcheinander gebracht haben?
quelle
Wie haben Sie das Dateisystem angesehen? Wenn ich auf Port 22 telnete, kann ich sehen, dass Dropbear ausgeführt wird. Wenn ich jedoch versuche, SSH mit verschiedenen Benutzernamen auszuführen, wird kein Kennwort abgefragt. Ich habe einen neuen Benutzer mit Administratorrechten hinzugefügt, aber SSH antwortet auch nicht für diesen Benutzer. Ich verwende ein Supermicro X7SPA-HF-Motherboard mit einem Winbond Hermon IPMI 2.0-Chip, Firmware-Version 01.29, Erstellungszeit 31.12.2009.
quelle