Hetzner - DokuWiki

IPMI
(Aktuelle Bedrohungen)
(Sicherheitslücken)
(45 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
{{Languages|IPMI}}
 
{{Languages|IPMI}}
  
= IPMI Konfiguration =
+
== IPMI Informationen ==
 
+
== Allgemeine Informationen ==
+
  
 
Das IPMI (Intelligent Platform Management Interface) ist eine Schnittstelle zur Verwaltung und Administration von Servern. Diese wird durch einen BMC (Baseboard Management Controller) eines Mainboards implementiert. Auf diese Schnittstelle kann via Kommandozeilen-Programm (z.B. ipmitool) oder über ein Webinterface zugegriffen werden. Darüber können Administrationsaufgaben durchgeführt werden. Zum Beispiel kann ein Reset durchgeführt, eine KVM gestartet oder die auf dem Mainboard befindlichen Sensoren ausgelesen werden.
 
Das IPMI (Intelligent Platform Management Interface) ist eine Schnittstelle zur Verwaltung und Administration von Servern. Diese wird durch einen BMC (Baseboard Management Controller) eines Mainboards implementiert. Auf diese Schnittstelle kann via Kommandozeilen-Programm (z.B. ipmitool) oder über ein Webinterface zugegriffen werden. Darüber können Administrationsaufgaben durchgeführt werden. Zum Beispiel kann ein Reset durchgeführt, eine KVM gestartet oder die auf dem Mainboard befindlichen Sensoren ausgelesen werden.
Alle Modelle der PX-Serie besitzen ein aktives BMC-Modul, dessen Netzwerkkonfiguration standardmäßig deaktiviert ist. Nach Bestellung einer kostenpflichtigen Zusatz-IP können Fernwartungsfunktionen via IPMI inklusive Serial over LAN genutzt werden.
+
 
Eine vollständige KVM-Funktionalität inklusive Virtual-Media Support ist bei den Modellen PX90 und PX120 nach Aktivierung des Netzwerks ebenso nutzbar.
+
=== Modellübersicht ===
Bei den PX60 und PX70 Modellen kann diese Funktion über ein kostenpflichtiges Addon freigeschaltet werden.
+
 
 +
* PX60(-SSD)/PX70(-SSD) - BMC inkl. IPMI (KVM-over-IP als kostenpflichtiges optionales Modul)
 +
* PX90(-SSD)/PX120(-SSD)- BMC inkl. IPMI und KVM
 +
* PX91(-SSD)/PX121(-SSD)- kostenpflichtiges optionales BMC-Modul mit IPMI/KVM
  
 
=== Aktivierung der Netzwerkschnittstelle ===
 
=== Aktivierung der Netzwerkschnittstelle ===
  
Im Auslieferungszustand ist der BMC nur über lokale Schnittstellen erreichbar.
+
Einige PX-Servermodelle besitzen einen integrierten BMC, bei anderen kann dieser als Modul nachgerüstet werden.
Für die Nutzung der Fernwartungsfunktionen ist eine zusätzliche kostenpflichtige IP-Adresse nötig, welche über den Hetzner Robot bestellt werden kann.  
+
Bei integrierten BMC ist die Netzwerkkonfiguration standardmäßig deaktiviert.
 +
Für die Nutzung der IPMI bzw. Serial over LAN und/oder KVM Funktionalität ist die Bestellung einer kostenpflichtigen [[IP-Adressen|Zusatz-IP]] notwendig, welche über den Hetzner [[Robot]] bestellt werden kann.
  
'''Wichtig''': Die MAC-Adresse des BMC muß bei der Bestellung der zusätzlichen IP-Adresse angegeben werden.  
+
'''Wichtig''': Die MAC-Adresse des BMC muß bei der Bestellung der zusätzlichen IP-Adresse angegeben werden.
  
 
Diese kann mittels ipmitool ausgelesen werden (siehe [[#Netzwerk|Netzwerk]]).
 
Diese kann mittels ipmitool ausgelesen werden (siehe [[#Netzwerk|Netzwerk]]).
 
Nach Zuteilung der IP-Adresse kann diese statisch konfiguriert oder per DHCP dem BMC zugewiesen werden.
 
Nach Zuteilung der IP-Adresse kann diese statisch konfiguriert oder per DHCP dem BMC zugewiesen werden.
  
=== Freischalten der KVM-Funktionalität ===
+
=== Nachrüstung eines BMC-Moduls / Freischalten der KVM-Funktionalität ===
  
Zur Freischaltung der KVM-Option inkl. Virtual Media bei den PX60 und PX70 Modellen muss über den Hetzner Robot das KVM-Zusatzmodul geordert werden. Zum Einbau des Zusatzmoduls muss der Server heruntergefahren werden. Die Downtime dafür beträgt nur wenige Minuten.
+
Zur Nachrüstung des BMC-Moduls (inkl. IPMI und KVM) bei den PX91 und PX121 Modellen oder zur Freischaltung der KVM-Option (inkl. Virtual Media) bei den PX60 und PX70 Modellen muss über den Hetzner Robot das KVM-Zusatzmodul geordert werden. Zum Einbau des Zusatzmoduls muss der Server heruntergefahren werden. Die Downtime dafür beträgt nur wenige Minuten.
  
 
== Sicherheitshinweise ==
 
== Sicherheitshinweise ==
Zeile 28: Zeile 30:
 
Wird der BMC durch Zuweisung einer öffentliche IP erreichbar gemacht, kann  dieser darüber attackiert und unter Umständen auch missbraucht werden, wodurch möglicherweise der Server kompromittiert werden kann.
 
Wird der BMC durch Zuweisung einer öffentliche IP erreichbar gemacht, kann  dieser darüber attackiert und unter Umständen auch missbraucht werden, wodurch möglicherweise der Server kompromittiert werden kann.
 
Daher sollten Maßnahmen durchgeführt werden, die den bereits bekannten Angriffsszenarien entgegenwirken. Mit der bekannten Penetrations-Toolsammlung Metasploit können einige Angriffe durchgeführt werden (https://community.rapid7.com/community/metasploit/blog/2013/07/02/a-penetration-testers-guide-to-ipmi).
 
Daher sollten Maßnahmen durchgeführt werden, die den bereits bekannten Angriffsszenarien entgegenwirken. Mit der bekannten Penetrations-Toolsammlung Metasploit können einige Angriffe durchgeführt werden (https://community.rapid7.com/community/metasploit/blog/2013/07/02/a-penetration-testers-guide-to-ipmi).
 +
 
Das in den Modellen PX60 und PX70 verwendete Mainboard ist mit den beschriebenen Möglichkeiten nicht angreifbar, da einige Schutzmechanismen schon per default eingebaut sind. Generell sollten Standardpasswörter geändert und bereits vorhanden Nutzer deaktiviert oder umbenannt werden. Der anonyme Zugriff ist bei allen Modellen standardmäßig deaktviert. Die weiteren Angriffsvektoren und deren Verhinderung werden in den folgenden Punkten beschrieben.
 
Das in den Modellen PX60 und PX70 verwendete Mainboard ist mit den beschriebenen Möglichkeiten nicht angreifbar, da einige Schutzmechanismen schon per default eingebaut sind. Generell sollten Standardpasswörter geändert und bereits vorhanden Nutzer deaktiviert oder umbenannt werden. Der anonyme Zugriff ist bei allen Modellen standardmäßig deaktviert. Die weiteren Angriffsvektoren und deren Verhinderung werden in den folgenden Punkten beschrieben.
  
Zeile 34: Zeile 37:
 
==== Sicherheitslücken ====
 
==== Sicherheitslücken ====
  
Da es sich bei dem BMC der die IPMI Funktionalität auch nur um Software handelt, können hierbei ebenfalls Sicherheitslücken enthalten sein.
+
Da es sich bei dem BMC, der die IPMI Funktionalität bereitstellt, auch nur um Software handelt, können hierbei ebenfalls Sicherheitslücken enthalten sein.
 
+
Hinweis: Für das Mainboard der Modelle PX90/120 (Supermicro X9SRi-F) wurde eine Sicherheitlücke in der Firmwareversion 2.14 entdeckt, die das Auslesen von Nutzern und Passwörtern im Klartext erlaubt.
+
Falls Ihr System diese Firmware aufweist, ist vor Aktivierung der Netzwerkschnittstelle ein Firmwareupdate notwendig.
+
  
 
Die Firmwareversion kann mittels IPMItool ausgelesen werden:
 
Die Firmwareversion kann mittels IPMItool ausgelesen werden:
Zeile 43: Zeile 43:
 
  # ipmitool mc info
 
  # ipmitool mc info
 
  ...
 
  ...
  Firmware Revision        : 3.28
+
  Firmware Revision        : 3.50
  
Falls Sie das Netzwerk der IPMI bereits aktiviert haben, können Sie das Update auch über die Weboberfläche durchführen. Sie finden dazu das Update auf
+
===== PX90/PX120 =====
[http://download.hetzner.de/tools/Supermicro/tools/SMT_X9_328.bin download.hetzner.de]
+
  
Alternativ ist ein Update auch mit inaktivem Netzwerk der IPMI unter Linux möglich
+
Für das Mainboard der Modelle ''PX90/PX120'' (Supermicro X9SRi-F) wurde eine Sicherheitslücke in der Firmwareversion 2.14 entdeckt, die das Auslesen von Nutzern und Passwörtern im Klartext erlaubt.
 +
Falls Ihr System diese Firmware aufweist, ist vor Aktivierung der Netzwerkschnittstelle ein Firmwareupdate notwendig.
  
  wget http://mirror.hetzner.de/tools/Supermicro/tools/SMT_X9_328.tgz
+
Falls Sie das Netzwerk der IPMI bereits aktiviert haben, können Sie das Update auch über die Weboberfläche durchführen. Sie finden dazu die aktuelle Version unter [http://download.hetzner.de/tools/Supermicro/tools download.hetzner.de]
  tar -xzf SMT_X9_328.tgz
+
 
  cd SMT_X9_328
+
Alternativ ist ein Update auch mit inaktivem Netzwerk der IPMI unter Linux möglich:
  ./lUpdate -f SMT_X9_328.bin
+
 
 +
  wget http://mirror.hetzner.de/tools/Supermicro/tools/SMT_X9_350.tgz
 +
  tar -xzf SMT_X9_350.tgz
 +
  cd SMT_X9_350
 +
  ./lUpdate -f SMT_X9_350.bin
 +
 
 +
Dieses Update bezieht sich ausschließlich auf den PX90 oder PX120.
 +
 
 +
===== PX91/PX121 =====
 +
 
 +
Das zusätzliche KVM-Modul für die Modelle ''PX91/PX121'' (Asus Z10PA-U8) verwendet unsichere SSL-Protokolle und ein abgelaufenes SSL-Zertifikat in den Versionen vor 1.11.
 +
 
 +
Daher sind je nach Browser gegebenenfalls keine gesicherten (HTTPS) Verbindungen möglich bevor das Update durchgeführt wurde.
 +
 
 +
Das Update kann über die Weboberfläche durchgeführt. Sie finden dazu die aktuelle Firmware unter [http://download.hetzner.de/tools/Asus/tools download.hetzner.de]
  
 
==== Cipher-0-Angriff ====
 
==== Cipher-0-Angriff ====
Zeile 63: Zeile 77:
 
In der IPMI-Spzifikation ist die Authentifizierung des Nutzers nur nutzerseitig möglich. Daher wird ein Hash des Passworts an jeden anfragenden Nutzer übermittelt. Da genau spezifiziert ist, was dieser Hash enthält kann daraus via Brute-Force-Attacke das Passwort ermittelt werden.
 
In der IPMI-Spzifikation ist die Authentifizierung des Nutzers nur nutzerseitig möglich. Daher wird ein Hash des Passworts an jeden anfragenden Nutzer übermittelt. Da genau spezifiziert ist, was dieser Hash enthält kann daraus via Brute-Force-Attacke das Passwort ermittelt werden.
 
Aufgrund der Verankerung in der IPMI-Spezifikation ist dieses Problem über alle BMC's vorhanden und kann erst bei Änderung des Protokolls behoben werden. Daher gibt es dafür lediglich den Hinweis, ein sehr starkes und langes Passwort für das BMC zu verwenden um es den Angreifern schwer zu machen. Wird ein kurzes oder einfach zu erratendes Passwort gewählt kann das BMC innerhalb weniger Minuten oder Stunden kompromitiert sein.
 
Aufgrund der Verankerung in der IPMI-Spezifikation ist dieses Problem über alle BMC's vorhanden und kann erst bei Änderung des Protokolls behoben werden. Daher gibt es dafür lediglich den Hinweis, ein sehr starkes und langes Passwort für das BMC zu verwenden um es den Angreifern schwer zu machen. Wird ein kurzes oder einfach zu erratendes Passwort gewählt kann das BMC innerhalb weniger Minuten oder Stunden kompromitiert sein.
Folgender Tipp für ein sicheres Passwort:
+
 
Soll man sich das Passwort merken können ist es sinnvoll mehrere Wörter aneinander zu reihen, die keinerlei Zusammenhang haben (http://correcthorsebatterystaple.net/). Diese schützen durch ihre Länge und sind trotzdem einfach zu merken.
+
Folgender Tipp für ein sicheres Passwort:<br>
 +
Soll man sich das Passwort merken können ist es sinnvoll mehrere Wörter aneinander zu reihen, die keinerlei Zusammenhang haben (http://correcthorsebatterystaple.net/). Diese schützen durch ihre Länge und sind trotzdem einfach zu merken.<br>
 
Wird das Passwort in einer Datenbank gespeichert und muss nicht merkbar sein, dann können zufällige Zahlen-, Buchstaben- und Umlautkombinationen in einer sinnvollen Länge (> 30 Zeichen) ausreichend schützen.
 
Wird das Passwort in einer Datenbank gespeichert und muss nicht merkbar sein, dann können zufällige Zahlen-, Buchstaben- und Umlautkombinationen in einer sinnvollen Länge (> 30 Zeichen) ausreichend schützen.
 +
 +
==== SNMP Reflection ====
 +
 +
Einige IPMI Module (z.B. ASMB8-iKVM der PX91/121) bieten eine Möglichkeit diese per SNMP abzufragen. Hierdurch können große Datenmengen durch eine kleine Anfrage ausgelöst werden, die bei gefälschten Absenderadressen zu Angriffen mißbraucht werden kann. Falls SNMP genutzt werden soll, muß sichergestellt werden, daß dies durch ein starkes Passwort (d.h. SNMP Community String) abgesichert ist. Falls SNMP nicht benötigt wird, bietet das ASMB8-iKVM Modul der PX91/121 auch die Möglichkeit diesen Port per Firewall zu blocken.
 +
Beides ist über das jeweilige Webinterface möglich.
  
 
== Erklärung der einzelnen Funktionen ==
 
== Erklärung der einzelnen Funktionen ==
Zeile 91: Zeile 111:
  
 
== Konfiguration ==
 
== Konfiguration ==
 +
 
In diesem Abschnitt werden einige grundlegende Konfigurationsmöglichkeiten aufgezeigt. Dafür kann in den meisten Fällen das Webinterface des BMC verwendet werden. Zu empfehlen ist aber die Installation von „ipmitool“, welches in allen gängigen Distributionen über die Paketverwaltung installiert werden kann. Darüber sind Funktionen verfügbar, die nicht über das Webinterface konfiguriert werden können.
 
In diesem Abschnitt werden einige grundlegende Konfigurationsmöglichkeiten aufgezeigt. Dafür kann in den meisten Fällen das Webinterface des BMC verwendet werden. Zu empfehlen ist aber die Installation von „ipmitool“, welches in allen gängigen Distributionen über die Paketverwaltung installiert werden kann. Darüber sind Funktionen verfügbar, die nicht über das Webinterface konfiguriert werden können.
  
Zeile 96: Zeile 117:
  
 
Installation über die Paketverwaltung:
 
Installation über die Paketverwaltung:
 +
 
  apt-get install ipmitool
 
  apt-get install ipmitool
  
 
Damit ipmitool funktionieren kann müssen folgende Module via „modprobe“ geladen werden:
 
Damit ipmitool funktionieren kann müssen folgende Module via „modprobe“ geladen werden:
 +
 
  modprobe ipmi_devintf
 
  modprobe ipmi_devintf
 
  modprobe ipmi_si
 
  modprobe ipmi_si
  
 
Ob alles wichtige korrekt geladen und installiert wurde kann über einen Beispielbefehl getestet werden, welcher alle verfügbaren Sensordaten anzeigt:
 
Ob alles wichtige korrekt geladen und installiert wurde kann über einen Beispielbefehl getestet werden, welcher alle verfügbaren Sensordaten anzeigt:
 +
 
  ipmitool sensor list
 
  ipmitool sensor list
  
Zeile 116: Zeile 140:
  
 
In der Regel sind bereits ein oder mehrere Nutzer vorhanden. Eine Übersicht der vorhandenen Nutzer-IDs und Logins erhält man mittels:
 
In der Regel sind bereits ein oder mehrere Nutzer vorhanden. Eine Übersicht der vorhandenen Nutzer-IDs und Logins erhält man mittels:
 +
 
  ipmitool user list 1
 
  ipmitool user list 1
  
 
Bei den PX90/PX120 Modellen ist ein aktiver Nutzer mit Administrator-Rechten vorhanden:
 
Bei den PX90/PX120 Modellen ist ein aktiver Nutzer mit Administrator-Rechten vorhanden:
  
 +
#
 
  ID  Name            Callin  Link Auth  IPMI Msg  Channel Priv Limit
 
  ID  Name            Callin  Link Auth  IPMI Msg  Channel Priv Limit
 
  2  ADMIN            false  false      true      ADMINISTRATOR
 
  2  ADMIN            false  false      true      ADMINISTRATOR
 +
 +
Bei den BMC/KVM-Modulen der PX91/PX121 Modellen sind zwei aktive Nutzer mit Administrator-Rechten vorhanden:
 +
 +
ID  Name            Callin  Link Auth  IPMI Msg  Channel Priv Limit
 +
1                    false  false      true      ADMINISTRATOR
 +
2  admin            false  false      true      ADMINISTRATOR
  
 
Bei den Modellen PX60/PX70 existieren fünf inaktive Standardnutzer, die mit Ausnahme des ersten verändert werden können.
 
Bei den Modellen PX60/PX70 existieren fünf inaktive Standardnutzer, die mit Ausnahme des ersten verändert werden können.
Zeile 135: Zeile 167:
  
 
Die Änderung des Login-Namens erfolgt via ipmitool
 
Die Änderung des Login-Namens erfolgt via ipmitool
 +
 
  ipmitool user set name 2 john-doe
 
  ipmitool user set name 2 john-doe
  
 
Um einen neuen Nutzer anzulegen, genügt es einer bisher nicht verwendeten ID einen Namen zuzuweisen. Das Vorgehen ist hierbei identisch zur Änderung des Logins einer ID. Ein Löschen von IDs ist nur durch Zurücksetzen des BMC auf Werkseinstellungen möglich.
 
Um einen neuen Nutzer anzulegen, genügt es einer bisher nicht verwendeten ID einen Namen zuzuweisen. Das Vorgehen ist hierbei identisch zur Änderung des Logins einer ID. Ein Löschen von IDs ist nur durch Zurücksetzen des BMC auf Werkseinstellungen möglich.
  
Anlegen eines neuen Nutzers
+
Anlegen eines neuen Nutzers:
 +
 
 
  ipmitool user set name 6 max+meier
 
  ipmitool user set name 6 max+meier
  
 
Danach sollte ein Passwort gesetzt werden:
 
Danach sollte ein Passwort gesetzt werden:
 +
 
  ipmitool user set password 6 Correct-Battery-Horse-Staple
 
  ipmitool user set password 6 Correct-Battery-Horse-Staple
  
 
Nun muss noch der Zugriff für diesen Nutzer aktiviert werden:
 
Nun muss noch der Zugriff für diesen Nutzer aktiviert werden:
 +
 
  ipmitool channel setaccess 1 6 link=on ipmi=on callin=on privilege=4
 
  ipmitool channel setaccess 1 6 link=on ipmi=on callin=on privilege=4
 +
# Hinweis: Bei PX91/121 muß Channel 8 (Shared-LAN) verwendet werden, d.h.:
 +
ipmitool channel setaccess 8 6 link=on ipmi=on callin=on privilege=4
  
 
Ebenso muss der Nutzer selbst aktiviert werden:
 
Ebenso muss der Nutzer selbst aktiviert werden:
 +
 
  ipmitool user enable 6
 
  ipmitool user enable 6
  
 
Um das Passwort eines Nutzers zu ändern genügt folgender Befehl:
 
Um das Passwort eines Nutzers zu ändern genügt folgender Befehl:
 +
 
  ipmitool user set password 6 Battery+Staple-Horse$Correct
 
  ipmitool user set password 6 Battery+Staple-Horse$Correct
  
Abschließend wird der Standard-Admin-User deaktiviert
+
Abschließend wird der Standard-Admin-User deaktiviert:
 +
 
 
  ipmitool user disable 2
 
  ipmitool user disable 2
  
Zeile 163: Zeile 204:
 
Aktuell ist die Nutzung von IPv6 noch nicht möglich. Die Konfiguration hierfür ist später dann ausschließlich über das Webinterface möglich.
 
Aktuell ist die Nutzung von IPv6 noch nicht möglich. Die Konfiguration hierfür ist später dann ausschließlich über das Webinterface möglich.
  
Die Erstkonfiguration erfolgt via ipmitool. Um die aktuelle Konfiguration und die MAC-Adresse des BMC anzuzeigen, genügt folgender Befehl:
+
Die Erstkonfiguration erfolgt via ipmitool. Die dazugehörige IPMI Channel ist abhängig vom jeweiligen Mainboard und welches Inferface konfiguriert werden soll.
  
  ipmitool lan print
+
Shared-LAN Port der Haupt-IP
 +
* PX60/70/90/120 und SX131/291: Channel 1
 +
* PX91/121: Channel 8
 +
 
 +
Um die aktuelle Konfiguration und die MAC-Adresse des in der Regel verwendeten Shared-LAN Ports anzuzeigen, ergibt sich daher folgender Befehl:
 +
 
 +
* PX60/70/90/120 und SX131/291:
 +
  ipmitool lan print 1
 +
* PX91/121:
 +
ipmitool lan print 8
 +
 
 +
Analog ist für die PX91/121 bei allen weiteren Kommandos statt "set 1" ein "set 8" zu verwenden.
  
 
Um die IP über DHCP zu beziehen
 
Um die IP über DHCP zu beziehen
 +
 
  ipmitool lan set 1 ipsrc dhcp
 
  ipmitool lan set 1 ipsrc dhcp
  
 
Um wieder die statische Konfiguration zu nutzen (default):
 
Um wieder die statische Konfiguration zu nutzen (default):
 +
 
  ipmitool lan set 1 ipsrc static
 
  ipmitool lan set 1 ipsrc static
  
 
IP-Adresse setzen:
 
IP-Adresse setzen:
 +
 
  ipmitool lan set 1 ipaddr <ip_address>
 
  ipmitool lan set 1 ipaddr <ip_address>
  
 
Netzmaske setzen:
 
Netzmaske setzen:
 +
 
  ipmitool lan set 1 netmask <netmask>
 
  ipmitool lan set 1 netmask <netmask>
  
 
Gateway IP festlegen
 
Gateway IP festlegen
 +
 
  ipmitool lan set 1 defgw ipaddr <gw_ip_address>
 
  ipmitool lan set 1 defgw ipaddr <gw_ip_address>
  
 
== Serial-Over-LAN ==
 
== Serial-Over-LAN ==
 +
 
Um SOL (Serial-Over-LAN) über ipmitool zu verwenden ist folgender Befehl notwendig:
 
Um SOL (Serial-Over-LAN) über ipmitool zu verwenden ist folgender Befehl notwendig:
 +
 
  ipmitool -C 3 -I lanplus -H <ipaddr> -U <user> -P <pass> sol activate
 
  ipmitool -C 3 -I lanplus -H <ipaddr> -U <user> -P <pass> sol activate
  
Zeile 189: Zeile 248:
  
 
Falls folgende Fehlermeldung erscheint, muß noch SoL für den Nutzer aktiviert werden:
 
Falls folgende Fehlermeldung erscheint, muß noch SoL für den Nutzer aktiviert werden:
 +
 
  $ ipmitool -C 3 -I lanplus -H <ipaddr> -U <user> -P <pass> sol activate
 
  $ ipmitool -C 3 -I lanplus -H <ipaddr> -U <user> -P <pass> sol activate
 
  Info: SOL payload disabled
 
  Info: SOL payload disabled
  
 
  $ ipmitool -C 3 -I lanplus -H <ipaddr> -U <user> -P <pass> sol payload enable <channel> <user-id>
 
  $ ipmitool -C 3 -I lanplus -H <ipaddr> -U <user> -P <pass> sol payload enable <channel> <user-id>
$ ipmitool -C 3 -I lanplus -H <ipaddr> -U <user> -P <pass> sol payload enable 1 6
 
  
 
Damit kann man schon die BIOS Ausgabe sehen. Um auch Zugriff zum Bootloader und/oder dem gebooteten System zu erhalten, sind weitere Einstellungen nötig.
 
Damit kann man schon die BIOS Ausgabe sehen. Um auch Zugriff zum Bootloader und/oder dem gebooteten System zu erhalten, sind weitere Einstellungen nötig.
  
Für GRUB2 genügt es /etc/default/grub wie folgt zu ändern und anschließend die Konfiguration neu zu generieren:
+
=== GRUB2 ===
 +
 
 +
Für GRUB2 genügt es /etc/default/grub wie folgt zu ändern und anschließend die Konfiguration neu zu generieren
 +
 
 +
Bei PX90/120 (Supermicro X9SRi-F) ist die serielle Konsole auf ttyS2/unit=2, bei den PX91/121 (Asus Z10PA-U8) auf ttyS1/unit=1 und bei den PX60/70 (Intel S1200V3RPL) auf ttyS0/unit=0. Dazu ist noch zu beachten, dass die Baudrate bei den PX91/121 auf 57600 gesetzt wird und bei allen anderen auf 115200.
 +
 
 +
==== PX60/70 ====
 +
 
 
  GRUB_CMDLINE_LINUX_DEFAULT="nomodeset console=tty0 console=ttyS0,115200n8"
 
  GRUB_CMDLINE_LINUX_DEFAULT="nomodeset console=tty0 console=ttyS0,115200n8"
 
  GRUB_TERMINAL=serial
 
  GRUB_TERMINAL=serial
 
  GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
 
  GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
 +
 +
==== PX90/120, SX131/291 ====
 +
 +
GRUB_CMDLINE_LINUX_DEFAULT="nomodeset console=tty0 console=ttyS2,115200n8"
 +
GRUB_TERMINAL=serial
 +
GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=2 --word=8 --parity=no --stop=1"
 +
 +
==== PX91/121 ====
 +
 +
GRUB_CMDLINE_LINUX_DEFAULT="nomodeset console=tty0 console=ttyS1,57600n8"
 +
GRUB_TERMINAL=serial
 +
GRUB_SERIAL_COMMAND="serial --speed=57600 --unit=1 --word=8 --parity=no --stop=1"
 +
 +
=== GRUB (grub-legacy) ===
  
 
Für GRUB1 (grub-legacy) muß die Konfigurationsdatei /boot/grub/menu.lst bzw. /boot/grub/grub.conf (CentOS) wie folgt erweitert werden:
 
Für GRUB1 (grub-legacy) muß die Konfigurationsdatei /boot/grub/menu.lst bzw. /boot/grub/grub.conf (CentOS) wie folgt erweitert werden:
 +
 +
==== PX60/70 ====
  
 
  serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1
 
  serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1
 
  terminal --timeout=5 serial console
 
  terminal --timeout=5 serial console
  
An die Bootoptionen des Kernels wird analog angehängt
+
==== PX90/120, SX131/291 ====
 +
 
 +
serial --unit=2 --speed=57600 --word=8 --parity=no --stop=1
 +
terminal --timeout=5 serial console
 +
 
 +
==== PX91/121 ====
 +
 
 +
serial --unit=1 --speed=115200 --word=8 --parity=no --stop=1
 +
terminal --timeout=5 serial console
 +
 
 +
An die Bootoptionen des Kernels muß analog der gleiche Serial Port angehängt werden. d.h. ttyS0 bei PX60/70, ttyS1 bei PX91/121 und ttyS2 bei PX90/120.
 +
 
 
  console=tty0 console=ttyS0,115200n8
 
  console=tty0 console=ttyS0,115200n8
  
Dadurch wird dem Kernel mitgeteilt seine Ausgaben auch auf der ersten seriellen Schnittstelle auszugeben. Durch die Umstellung des GRUB_TERMINALS auf serial wird jegliche Ein/Ausgabe auf die serielle Schnittstelle umgeleitet. Lokal wird damit kein Bootmenü mehr angezeigt, d.h. die Auswahl des Booteintrages ist via LARA oder KVM nicht mehr möglich. Nach dem Start des Kernels erfolgt die Ausgabe dann wieder parallel lokal und seriell.
+
Dadurch wird dem Kernel mitgeteilt seine Ausgaben auch auf der ersten seriellen Schnittstelle auszugeben. Durch die Umstellung des GRUB_TERMINALS auf serial wird jegliche Ein/Ausgabe auf die serielle Schnittstelle umgeleitet. Lokal wird damit kein Bootmenü mehr angezeigt, d.h. die Auswahl des Booteintrages ist via KVM-Konsole oder KVM nicht mehr möglich. Nach dem Start des Kernels erfolgt die Ausgabe dann wieder parallel lokal und seriell.
  
 
Schlußendlich muß im System auch noch ein Terminal für die serielle Schnittstelle aktiviert werden.
 
Schlußendlich muß im System auch noch ein Terminal für die serielle Schnittstelle aktiviert werden.
  
Hinweis: Auf dem Supermicro X9SRi-F Mainboard muss ttyS2 anstatt ttyS0 verwendet werden.
+
=== Debian 7.x (wheezy) / Debian 8 mit Sys-V Init ===
 +
 
 +
Dazu muß der Datei /etc/inittab folgende Zeile hinzugefügt werden. Auch hier wieder: ttyS0 mit 115200 Baud bei PX60/70, ttyS2 mit 115200 Baud bei PX90/120 und ttyS1 mit 57600 Baud bei PX91/121:
  
* '''Debian '''
 
Dazu muß der Datei /etc/inittab folgende Zeile hinzugefügt werden:
 
 
  T0:2345:respawn:/sbin/getty -L ttyS0 115200 vt100
 
  T0:2345:respawn:/sbin/getty -L ttyS0 115200 vt100
  
 
Anschließend kann das Terminal via 'init q' aktiviert werden.
 
Anschließend kann das Terminal via 'init q' aktiviert werden.
  
* ''' Ubuntu '''
+
=== Ubuntu (bis 14.10 mit Upstart) ===
Bei Ubuntu erstellt man eine Datei /etc/init/ttyS0.conf mit folgendem Inhalt:
+
 
 +
Bei Ubuntu erstellt man eine Datei /etc/init/ttyS0.conf mit folgendem Inhalt (bzw. ttyS2.conf mit ttyS2 und 115200 Baud bei PX90/120 oder ttyS1.conf mit ttyS1 und 57600 Baud bei PX91/121):
 +
 
  
 
<pre>
 
<pre>
Zeile 240: Zeile 335:
 
Anschließend kann das Terminal via 'start ttyS0' aktiviert werden.
 
Anschließend kann das Terminal via 'start ttyS0' aktiviert werden.
  
* ''' CentOS '''
+
=== CentOS ===
Bei CentOS gestaltet sich die Konfiguration ähnlich wie Ubuntu. Zunächst wird ebenfalls eine Datei /etc/init/ttyS0.conf erstellt:
+
  
<pre>
+
Bei CentOS 6.x gestaltet sich die Konfiguration prinzipiell ähnlich wie Ubuntu. Es existiert jedoch ein Automatismus durch /etc/init/serial.conf gibt, wodurch automatisch ein getty auf dem seriellen Port gestartet und der Port /etc/securetty hinzugefügt wird. Es genügt daher in der grub.conf die serielle Konsole zu konfigurieren und die entsprechende Kerneloption anzuhängen.
# ttyS0 - agetty
+
#
+
# This service maintains a agetty on ttyS0.
+
  
stop on runlevel [S016]
+
=== Debian 8 / OpenSuSE / Fedora ===
start on runlevel [23]
+
  
respawn
+
Bei Debian 8 (jessie), OpenSuSE und anderen Distributionen wie Fedora die systemd und grub2 verwenden, genügt es die genannten Anpassungen an der /etc/default/grub vorzunehmen und die Konfiguration z.B. mittels grub2-mkconfig zu erneuern.
exec agetty -h -L -w /dev/ttyS0 115200 vt102
+
</pre>
+
 
+
Anschließend kann das Terminal via 'start ttyS0' aktiviert werden.
+
Möchte man sich als root auf diesem Terminal anmelden, so muß dies ebenso noch erlaubt werden:
+
 
+
echo "ttyS0" >> /etc/securetty
+
 
+
* ''' OpenSuSE / Fedora '''
+
 
+
Bei OpenSuSE und anderen Distributionen wie Fedora die systemd und grub2 verwenden, genügt es die genannten Anpassungen an der /etc/default/grub vorzunehmen und die Konfiguration mittels grub2-mkconfig zu erneuern.
+
 
Bei nächsten Boot übernimmt systemd automatisch die serielle Schnittstelle von grub2.
 
Bei nächsten Boot übernimmt systemd automatisch die serielle Schnittstelle von grub2.
  
* ''' Serielle Konsole '''
+
=== Serielle Konsole ===
  
 
Nun erhält man bei der Verbindung via ipmitool auch den Login Prompt:
 
Nun erhält man bei der Verbindung via ipmitool auch den Login Prompt:
 +
 
<pre>
 
<pre>
 
  $ ipmitool -C 3 -I lanplus -H <ipaddr> -U <user> -P <pass> sol activate
 
  $ ipmitool -C 3 -I lanplus -H <ipaddr> -U <user> -P <pass> sol activate

Version vom 9. Januar 2018, 07:58 Uhr

Inhaltsverzeichnis

IPMI Informationen

Das IPMI (Intelligent Platform Management Interface) ist eine Schnittstelle zur Verwaltung und Administration von Servern. Diese wird durch einen BMC (Baseboard Management Controller) eines Mainboards implementiert. Auf diese Schnittstelle kann via Kommandozeilen-Programm (z.B. ipmitool) oder über ein Webinterface zugegriffen werden. Darüber können Administrationsaufgaben durchgeführt werden. Zum Beispiel kann ein Reset durchgeführt, eine KVM gestartet oder die auf dem Mainboard befindlichen Sensoren ausgelesen werden.

Modellübersicht

  • PX60(-SSD)/PX70(-SSD) - BMC inkl. IPMI (KVM-over-IP als kostenpflichtiges optionales Modul)
  • PX90(-SSD)/PX120(-SSD)- BMC inkl. IPMI und KVM
  • PX91(-SSD)/PX121(-SSD)- kostenpflichtiges optionales BMC-Modul mit IPMI/KVM

Aktivierung der Netzwerkschnittstelle

Einige PX-Servermodelle besitzen einen integrierten BMC, bei anderen kann dieser als Modul nachgerüstet werden. Bei integrierten BMC ist die Netzwerkkonfiguration standardmäßig deaktiviert. Für die Nutzung der IPMI bzw. Serial over LAN und/oder KVM Funktionalität ist die Bestellung einer kostenpflichtigen Zusatz-IP notwendig, welche über den Hetzner Robot bestellt werden kann.

Wichtig: Die MAC-Adresse des BMC muß bei der Bestellung der zusätzlichen IP-Adresse angegeben werden.

Diese kann mittels ipmitool ausgelesen werden (siehe Netzwerk). Nach Zuteilung der IP-Adresse kann diese statisch konfiguriert oder per DHCP dem BMC zugewiesen werden.

Nachrüstung eines BMC-Moduls / Freischalten der KVM-Funktionalität

Zur Nachrüstung des BMC-Moduls (inkl. IPMI und KVM) bei den PX91 und PX121 Modellen oder zur Freischaltung der KVM-Option (inkl. Virtual Media) bei den PX60 und PX70 Modellen muss über den Hetzner Robot das KVM-Zusatzmodul geordert werden. Zum Einbau des Zusatzmoduls muss der Server heruntergefahren werden. Die Downtime dafür beträgt nur wenige Minuten.

Sicherheitshinweise

Wird der BMC durch Zuweisung einer öffentliche IP erreichbar gemacht, kann dieser darüber attackiert und unter Umständen auch missbraucht werden, wodurch möglicherweise der Server kompromittiert werden kann. Daher sollten Maßnahmen durchgeführt werden, die den bereits bekannten Angriffsszenarien entgegenwirken. Mit der bekannten Penetrations-Toolsammlung Metasploit können einige Angriffe durchgeführt werden (https://community.rapid7.com/community/metasploit/blog/2013/07/02/a-penetration-testers-guide-to-ipmi).

Das in den Modellen PX60 und PX70 verwendete Mainboard ist mit den beschriebenen Möglichkeiten nicht angreifbar, da einige Schutzmechanismen schon per default eingebaut sind. Generell sollten Standardpasswörter geändert und bereits vorhanden Nutzer deaktiviert oder umbenannt werden. Der anonyme Zugriff ist bei allen Modellen standardmäßig deaktviert. Die weiteren Angriffsvektoren und deren Verhinderung werden in den folgenden Punkten beschrieben.

Aktuelle Bedrohungen

Sicherheitslücken

Da es sich bei dem BMC, der die IPMI Funktionalität bereitstellt, auch nur um Software handelt, können hierbei ebenfalls Sicherheitslücken enthalten sein.

Die Firmwareversion kann mittels IPMItool ausgelesen werden:

# ipmitool mc info
...
Firmware Revision         : 3.50
PX90/PX120

Für das Mainboard der Modelle PX90/PX120 (Supermicro X9SRi-F) wurde eine Sicherheitslücke in der Firmwareversion 2.14 entdeckt, die das Auslesen von Nutzern und Passwörtern im Klartext erlaubt. Falls Ihr System diese Firmware aufweist, ist vor Aktivierung der Netzwerkschnittstelle ein Firmwareupdate notwendig.

Falls Sie das Netzwerk der IPMI bereits aktiviert haben, können Sie das Update auch über die Weboberfläche durchführen. Sie finden dazu die aktuelle Version unter download.hetzner.de

Alternativ ist ein Update auch mit inaktivem Netzwerk der IPMI unter Linux möglich:

wget http://mirror.hetzner.de/tools/Supermicro/tools/SMT_X9_350.tgz
tar -xzf SMT_X9_350.tgz
cd SMT_X9_350
./lUpdate -f SMT_X9_350.bin

Dieses Update bezieht sich ausschließlich auf den PX90 oder PX120.

PX91/PX121

Das zusätzliche KVM-Modul für die Modelle PX91/PX121 (Asus Z10PA-U8) verwendet unsichere SSL-Protokolle und ein abgelaufenes SSL-Zertifikat in den Versionen vor 1.11.

Daher sind je nach Browser gegebenenfalls keine gesicherten (HTTPS) Verbindungen möglich bevor das Update durchgeführt wurde.

Das Update kann über die Weboberfläche durchgeführt. Sie finden dazu die aktuelle Firmware unter download.hetzner.de

Cipher-0-Angriff

Cipher-0 bedeutet, dass keinerlei Verschlüsselung verwendet wird und damit auch jegliche Authentifizierung umgangen wird. Standardmäßig ist die Ciper-0 bei dem verwendeten Mainboard nur für Callback aktiviert. Es kann sich darüber also nicht angemeldet werden. Lediglich eine Rückmeldung des BMC ob vorhanden oder nicht erhalten werden. Um sicherzugehen, dass auch damit kein Missbrauch stattfindet wird die Cipher-0 bei der Auslieferung standardmäßig deaktiviert und kann somit nicht mehr verwendet werden.

Hash-Übermittlung des Passworts

In der IPMI-Spzifikation ist die Authentifizierung des Nutzers nur nutzerseitig möglich. Daher wird ein Hash des Passworts an jeden anfragenden Nutzer übermittelt. Da genau spezifiziert ist, was dieser Hash enthält kann daraus via Brute-Force-Attacke das Passwort ermittelt werden. Aufgrund der Verankerung in der IPMI-Spezifikation ist dieses Problem über alle BMC's vorhanden und kann erst bei Änderung des Protokolls behoben werden. Daher gibt es dafür lediglich den Hinweis, ein sehr starkes und langes Passwort für das BMC zu verwenden um es den Angreifern schwer zu machen. Wird ein kurzes oder einfach zu erratendes Passwort gewählt kann das BMC innerhalb weniger Minuten oder Stunden kompromitiert sein.

Folgender Tipp für ein sicheres Passwort:
Soll man sich das Passwort merken können ist es sinnvoll mehrere Wörter aneinander zu reihen, die keinerlei Zusammenhang haben (http://correcthorsebatterystaple.net/). Diese schützen durch ihre Länge und sind trotzdem einfach zu merken.
Wird das Passwort in einer Datenbank gespeichert und muss nicht merkbar sein, dann können zufällige Zahlen-, Buchstaben- und Umlautkombinationen in einer sinnvollen Länge (> 30 Zeichen) ausreichend schützen.

SNMP Reflection

Einige IPMI Module (z.B. ASMB8-iKVM der PX91/121) bieten eine Möglichkeit diese per SNMP abzufragen. Hierdurch können große Datenmengen durch eine kleine Anfrage ausgelöst werden, die bei gefälschten Absenderadressen zu Angriffen mißbraucht werden kann. Falls SNMP genutzt werden soll, muß sichergestellt werden, daß dies durch ein starkes Passwort (d.h. SNMP Community String) abgesichert ist. Falls SNMP nicht benötigt wird, bietet das ASMB8-iKVM Modul der PX91/121 auch die Möglichkeit diesen Port per Firewall zu blocken. Beides ist über das jeweilige Webinterface möglich.

Erklärung der einzelnen Funktionen

Webinterface

Über das Webinterface kann das BMC einfach und sicher ausgelesen werden. Es werden alle Sensoren angezeigt, Nutzer können hinzugefügt und geändert werden, die Netzwerkkonfiguration des BMC kann vorgenommen werden und die KVM, sofern vorhanden, kann gestartet werden.

System Information: Auf dieser Seite können einige Informationen zum Server ausgelesen werden (BIOS-Version, aktueller Status, Informationen zur CPU und zum RAM) und die aktuell angemeldeten Nutzer angezeigt werden.

Server Health: Hier werden alle Ausgaben der einzelnen Sensoren des Mainboards und der CPU ausgelesen und angezeigt. Falls es thermische Probleme geben sollte können diese hier erkannt werden. Desweiteren gibt es einen Event-Log. Darin werden Systemereignisse festgehalten, wie z.B. hohe Temperaturwerte, Neustarts und CPU-Drosselung. Dies kann helfen mögliche Ursachen für ein Fehlverhalten des Servers zu finden. Die Seite „Power Statistics“ funktioniert bei diesem Model nicht, da das Netzteil nicht über die dafür notwendige PMBUS-Schnittstelle verfügt.

Configuration: Hier können viele Punkte des BMC's konfiguriert werden. An den Netzwerkeinstellungen muss normalerweise nichts geändert werden, da die Konfiguration automatisch über DHCP für IPv4 erhalten wird. IPv6 kann konfiguriert werden, jedoch wird die Nutzung des Hetzner Default-Gateways fe80::1 erst in einer zukünftigen Firmwareversion möglich sein. Neue Nutzer können ebenso hinzugefügt werden wie auch bereits bestehende geändert oder gelöscht. Ebenso können in dem Punkt „Alerts“ Benachrichtungen via SNMP oder Email gesendet werden, wenn bestimmte Ereignisse auf dem Server eintreten. Dies kann beim Monitoring des Systems helfen.

Remote Control: In dieser Seite können die KVM-Funktionalitäten des BMC verwendet werden. Der Punkt „Console Redirection“ ist aber lediglich bei Freischaltung via Zusatzmodul möglich. „Server Power Control“ kann immer verwendet werden. Damit lässt sich ein Hardreset oder ein Softreset durchführen, ebenso kann der Server heruntergefahren oder gestartet werden.

Konfiguration

In diesem Abschnitt werden einige grundlegende Konfigurationsmöglichkeiten aufgezeigt. Dafür kann in den meisten Fällen das Webinterface des BMC verwendet werden. Zu empfehlen ist aber die Installation von „ipmitool“, welches in allen gängigen Distributionen über die Paketverwaltung installiert werden kann. Darüber sind Funktionen verfügbar, die nicht über das Webinterface konfiguriert werden können.

Beispiel für Debian:

Installation über die Paketverwaltung:

apt-get install ipmitool

Damit ipmitool funktionieren kann müssen folgende Module via „modprobe“ geladen werden:

modprobe ipmi_devintf
modprobe ipmi_si

Ob alles wichtige korrekt geladen und installiert wurde kann über einen Beispielbefehl getestet werden, welcher alle verfügbaren Sensordaten anzeigt:

ipmitool sensor list

Benutzer

Auf dem BMC können mehrere Nutzer mit unterschiedlichen Rechten angelegt werden. Nach dem Anlegen eines neuen Nutzers mit administrativen Rechten via ipmitool, können weitere Nutzer auch über das Webinterface verwaltet werden. Es gibt 4 unterschiedliche Berechtigungslevel:

  • Callback (1): Dieser kann nur einen Callback initiieren
  • User (2): Dieser kann nur lesende Anfragen stellen und keinerlei Konfigurationsänderungen durchführen
  • Operator (3) - Dieser kann alle Konfigurationen durchführen bis auf Channel deaktivieren oder Berechtigungen ändern
  • Administrator (4): Dieser kann alle Konfigurationen durchführen

In der Regel sind bereits ein oder mehrere Nutzer vorhanden. Eine Übersicht der vorhandenen Nutzer-IDs und Logins erhält man mittels:

ipmitool user list 1

Bei den PX90/PX120 Modellen ist ein aktiver Nutzer mit Administrator-Rechten vorhanden:

#
ID  Name             Callin  Link Auth  IPMI Msg   Channel Priv Limit
2   ADMIN            false   false      true       ADMINISTRATOR

Bei den BMC/KVM-Modulen der PX91/PX121 Modellen sind zwei aktive Nutzer mit Administrator-Rechten vorhanden:

ID  Name             Callin  Link Auth  IPMI Msg   Channel Priv Limit
1                    false   false      true       ADMINISTRATOR
2   admin            false   false      true       ADMINISTRATOR

Bei den Modellen PX60/PX70 existieren fünf inaktive Standardnutzer, die mit Ausnahme des ersten verändert werden können.

ID  Name             Callin  Link Auth  IPMI Msg   Channel Priv Limit
1                    true    false      true       ADMINISTRATOR
2   root             false   true       true       ADMINISTRATOR
3   test1            true    false      true       ADMINISTRATOR
4   test2            true    false      true       ADMINISTRATOR
5   test3            true    false      true       ADMINISTRATOR

Die root bzw. ADMIN Nutzer-ID sollte nach dem Anlegen eines eigenen Nutzers vor Aktivierung der Netzwerkkonfiguration deaktiviert und falls möglich umbenannt werden.

Die Änderung des Login-Namens erfolgt via ipmitool

ipmitool user set name 2 john-doe

Um einen neuen Nutzer anzulegen, genügt es einer bisher nicht verwendeten ID einen Namen zuzuweisen. Das Vorgehen ist hierbei identisch zur Änderung des Logins einer ID. Ein Löschen von IDs ist nur durch Zurücksetzen des BMC auf Werkseinstellungen möglich.

Anlegen eines neuen Nutzers:

ipmitool user set name 6 max+meier

Danach sollte ein Passwort gesetzt werden:

ipmitool user set password 6 Correct-Battery-Horse-Staple

Nun muss noch der Zugriff für diesen Nutzer aktiviert werden:

ipmitool channel setaccess 1 6 link=on ipmi=on callin=on privilege=4
# Hinweis: Bei PX91/121 muß Channel 8 (Shared-LAN) verwendet werden, d.h.:
ipmitool channel setaccess 8 6 link=on ipmi=on callin=on privilege=4

Ebenso muss der Nutzer selbst aktiviert werden:

ipmitool user enable 6

Um das Passwort eines Nutzers zu ändern genügt folgender Befehl:

ipmitool user set password 6 Battery+Staple-Horse$Correct

Abschließend wird der Standard-Admin-User deaktiviert:

ipmitool user disable 2

Netzwerk

Damit das BMC auch über das Internet erreichbar ist, muss über den Hetzner Robot eine kostenpflichtige Zusatz-IP für das BMC bestellt werden. Die IPv4-Konfiguration des BMC kann entweder händisch oder via DHCP mittels ipmitool erfolgen. Änderungen an der Konfiguration sind auch später im Webinterface unter „Configuration / IPv4 Network“ möglich. Aktuell ist die Nutzung von IPv6 noch nicht möglich. Die Konfiguration hierfür ist später dann ausschließlich über das Webinterface möglich.

Die Erstkonfiguration erfolgt via ipmitool. Die dazugehörige IPMI Channel ist abhängig vom jeweiligen Mainboard und welches Inferface konfiguriert werden soll.

Shared-LAN Port der Haupt-IP

  • PX60/70/90/120 und SX131/291: Channel 1
  • PX91/121: Channel 8

Um die aktuelle Konfiguration und die MAC-Adresse des in der Regel verwendeten Shared-LAN Ports anzuzeigen, ergibt sich daher folgender Befehl:

  • PX60/70/90/120 und SX131/291:
ipmitool lan print 1
  • PX91/121:
ipmitool lan print 8

Analog ist für die PX91/121 bei allen weiteren Kommandos statt "set 1" ein "set 8" zu verwenden.

Um die IP über DHCP zu beziehen

ipmitool lan set 1 ipsrc dhcp

Um wieder die statische Konfiguration zu nutzen (default):

ipmitool lan set 1 ipsrc static

IP-Adresse setzen:

ipmitool lan set 1 ipaddr <ip_address>

Netzmaske setzen:

ipmitool lan set 1 netmask <netmask>

Gateway IP festlegen

ipmitool lan set 1 defgw ipaddr <gw_ip_address>

Serial-Over-LAN

Um SOL (Serial-Over-LAN) über ipmitool zu verwenden ist folgender Befehl notwendig:

ipmitool -C 3 -I lanplus -H <ipaddr> -U <user> -P <pass> sol activate

Wichtig ist hierbei die Cipher-Suite 3 (falls nicht default), da sonst keine Kommunikation über lanplus mit Verschlüsselung möglich ist.

Falls folgende Fehlermeldung erscheint, muß noch SoL für den Nutzer aktiviert werden:

$ ipmitool -C 3 -I lanplus -H <ipaddr> -U <user> -P <pass> sol activate
Info: SOL payload disabled
$ ipmitool -C 3 -I lanplus -H <ipaddr> -U <user> -P <pass> sol payload enable <channel> <user-id>

Damit kann man schon die BIOS Ausgabe sehen. Um auch Zugriff zum Bootloader und/oder dem gebooteten System zu erhalten, sind weitere Einstellungen nötig.

GRUB2

Für GRUB2 genügt es /etc/default/grub wie folgt zu ändern und anschließend die Konfiguration neu zu generieren

Bei PX90/120 (Supermicro X9SRi-F) ist die serielle Konsole auf ttyS2/unit=2, bei den PX91/121 (Asus Z10PA-U8) auf ttyS1/unit=1 und bei den PX60/70 (Intel S1200V3RPL) auf ttyS0/unit=0. Dazu ist noch zu beachten, dass die Baudrate bei den PX91/121 auf 57600 gesetzt wird und bei allen anderen auf 115200.

PX60/70

GRUB_CMDLINE_LINUX_DEFAULT="nomodeset console=tty0 console=ttyS0,115200n8"
GRUB_TERMINAL=serial
GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"

PX90/120, SX131/291

GRUB_CMDLINE_LINUX_DEFAULT="nomodeset console=tty0 console=ttyS2,115200n8"
GRUB_TERMINAL=serial
GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=2 --word=8 --parity=no --stop=1"

PX91/121

GRUB_CMDLINE_LINUX_DEFAULT="nomodeset console=tty0 console=ttyS1,57600n8"
GRUB_TERMINAL=serial
GRUB_SERIAL_COMMAND="serial --speed=57600 --unit=1 --word=8 --parity=no --stop=1"

GRUB (grub-legacy)

Für GRUB1 (grub-legacy) muß die Konfigurationsdatei /boot/grub/menu.lst bzw. /boot/grub/grub.conf (CentOS) wie folgt erweitert werden:

PX60/70

serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1
terminal --timeout=5 serial console

PX90/120, SX131/291

serial --unit=2 --speed=57600 --word=8 --parity=no --stop=1
terminal --timeout=5 serial console

PX91/121

serial --unit=1 --speed=115200 --word=8 --parity=no --stop=1
terminal --timeout=5 serial console

An die Bootoptionen des Kernels muß analog der gleiche Serial Port angehängt werden. d.h. ttyS0 bei PX60/70, ttyS1 bei PX91/121 und ttyS2 bei PX90/120.

console=tty0 console=ttyS0,115200n8

Dadurch wird dem Kernel mitgeteilt seine Ausgaben auch auf der ersten seriellen Schnittstelle auszugeben. Durch die Umstellung des GRUB_TERMINALS auf serial wird jegliche Ein/Ausgabe auf die serielle Schnittstelle umgeleitet. Lokal wird damit kein Bootmenü mehr angezeigt, d.h. die Auswahl des Booteintrages ist via KVM-Konsole oder KVM nicht mehr möglich. Nach dem Start des Kernels erfolgt die Ausgabe dann wieder parallel lokal und seriell.

Schlußendlich muß im System auch noch ein Terminal für die serielle Schnittstelle aktiviert werden.

Debian 7.x (wheezy) / Debian 8 mit Sys-V Init

Dazu muß der Datei /etc/inittab folgende Zeile hinzugefügt werden. Auch hier wieder: ttyS0 mit 115200 Baud bei PX60/70, ttyS2 mit 115200 Baud bei PX90/120 und ttyS1 mit 57600 Baud bei PX91/121:

T0:2345:respawn:/sbin/getty -L ttyS0 115200 vt100

Anschließend kann das Terminal via 'init q' aktiviert werden.

Ubuntu (bis 14.10 mit Upstart)

Bei Ubuntu erstellt man eine Datei /etc/init/ttyS0.conf mit folgendem Inhalt (bzw. ttyS2.conf mit ttyS2 und 115200 Baud bei PX90/120 oder ttyS1.conf mit ttyS1 und 57600 Baud bei PX91/121):


# ttyS0 - getty
#
# This service maintains a getty on ttyS0 from the point the system is
# started until it is shut down again.

start on stopped rc RUNLEVEL=[2345]
stop on runlevel [!2345]

respawn
exec /sbin/getty -L ttyS0 115200 vt100

Anschließend kann das Terminal via 'start ttyS0' aktiviert werden.

CentOS

Bei CentOS 6.x gestaltet sich die Konfiguration prinzipiell ähnlich wie Ubuntu. Es existiert jedoch ein Automatismus durch /etc/init/serial.conf gibt, wodurch automatisch ein getty auf dem seriellen Port gestartet und der Port /etc/securetty hinzugefügt wird. Es genügt daher in der grub.conf die serielle Konsole zu konfigurieren und die entsprechende Kerneloption anzuhängen.

Debian 8 / OpenSuSE / Fedora

Bei Debian 8 (jessie), OpenSuSE und anderen Distributionen wie Fedora die systemd und grub2 verwenden, genügt es die genannten Anpassungen an der /etc/default/grub vorzunehmen und die Konfiguration z.B. mittels grub2-mkconfig zu erneuern. Bei nächsten Boot übernimmt systemd automatisch die serielle Schnittstelle von grub2.

Serielle Konsole

Nun erhält man bei der Verbindung via ipmitool auch den Login Prompt:

 $ ipmitool -C 3 -I lanplus -H <ipaddr> -U <user> -P <pass> sol activate
 [SOL Session operational.  Use ~? for help]

 Debian GNU/Linux 7 Debian-70-wheezy-64-minimal ttyS0

 Debian-70-wheezy-64-minimal login:


© 2019. Hetzner Online GmbH. Alle Rechte vorbehalten.