Konfiguracja IPMI pod Linuksem
Komenda ipmitool
(http://ipmitool.sourceforge.net/) może zostać wykorzystana w Linuksie miedzy innymi do konfiguracji modułu IPMI serwera.
Wymagania sprzętowe i programowe
Następujący przykład pokazuje konfigurację IPMI w sewerze z systemem Linuks. Do przeprowadzenia konfiguracji konieczny jest Devicefile /dev/ipmi0. Jeżeli on jeszcze nie istnieje, to można go w następujący sposób utworzyć:
- SuSE/Red Hat/CentOS:
/etc/init.d/ipmi start
(wymagany pakiet OpenIPMI, pakiet OpenIPMI-tools jest potrzebny również póżniej). - Debian 4:
/usr/share/ipmitool/ipmi.init.basic
(w przypadku wystąpienia błędu ipmi_kcs_drv not found należy w skrypcie wykomentować zapytanie if przy pomocy odpowiednich znaczników, por. [1]) - Debian 5:
modprobe ipmi_devintf; modprobe ipmi_si
Poniżej opisana procedura została przetestowana (ipmitool w wersji 1.8.7) na serwerze Intel SR2500 pod systemem CentOS 4. Konfiguracja na innych systemach ze wsparciem IPMI powinna funkcjonować podobnie.
Konfiguracja sieciowa
Konfiguracja pierwszego połączenia sieciowego - w ten sposób skonfigurowany adres IP jest osiągalny na pierwszym porcie karty sieciowej serwera. Standardgateway wymaga obok konfiguracji adresu IP również adresu MAC.
[root@sr2500 ~]# ipmitool lan set 1 ipsrc static [root@sr2500 ~]# ipmitool lan set 1 ipaddr 192.168.1.211 Setting LAN IP Address to 192.168.1.211 [root@sr2500 ~]# ipmitool lan set 1 netmask 255.255.255.0 Setting LAN Subnet Mask to 255.255.255.0 [root@sr2500 ~]# ipmitool lan set 1 defgw ipaddr 192.168.1.254 Setting LAN Default Gateway IP to 192.168.1.254 [root@sr2500 ~]# ipmitool lan set 1 defgw macaddr 00:0e:0c:aa:8e:13 Setting LAN Default Gateway MAC to 00:0e:0c:aa:8e:13 [root@sr2500 ~]# ipmitool lan set 1 arp respond on Enabling BMC-generated ARP responses [root@sr2500 ~]# ipmitool lan set 1 auth ADMIN MD5
W konfiguracji sieciowej status Set in Progress nie jest automatycznie zmieniany w Set Complete. Może to zostać przeprowadzone za pośrednictwem komendy raw (por. http://www.mail-archive.com/ipmitool-devel@lists.sourceforge.net/msg00095.html)
[root@sr2500 ~]# ipmitool lan print 1 Set in Progress : Set In Progress [...] [root@sr2500 ~]# ipmitool raw 0x0c 1 1 0 0 [root@sr2500 ~]# ipmitool lan print 1 Set in Progress : Set Complete Auth Type Support : NONE MD5 PASSWORD Auth Type Enable : Callback : : User : : Operator : : Admin : MD5 : OEM : IP Address Source : Static Address IP Address : 192.168.1.211 Subnet Mask : 255.255.255.0 MAC Address : 00:0e:0c:ea:92:a2 SNMP Community String : IP Header : TTL=0x40 Flags=0x40 Precedence=0x00 TOS=0x10 BMC ARP Control : ARP Responses Enabled, Gratuitous ARP Disabled Gratituous ARP Intrvl : 2.0 seconds Default Gateway IP : 192.168.1.254 Default Gateway MAC : 00:0e:0c:aa:8e:13 Backup Gateway IP : 0.0.0.0 Backup Gateway MAC : 00:00:00:00:00:00 RMCP+ Cipher Suites : None Cipher Suite Priv Max : XXXXXXXXXXXXXXX : X=Cipher Suite Unused : c=CALLBACK : u=USER : o=OPERATOR : a=ADMIN : O=OEM [root@sr2500 ~]#
Konta użytkowników
Tworzenie konta użytkownika z uprawnieniami administratora.
[root@sr2500 ~]# ipmitool user set name 2 admin [root@sr2500 ~]# ipmitool user set password 2 Password for user 2: Password for user 2: [root@sr2500 ~]# ipmitool channel setaccess 1 2 link=on ipmi=on callin=on privilege=4 [root@sr2500 ~]# ipmitool user enable 2 [root@sr2500 ~]#
Teraz serwer za pośrednictwem tego konta może być zarządzany zdalnie, jak opisano w art. wykorzystanie Ipmitool do zdalnego zarządzania serwerem.
Użytkownik z uprawnieniami USER privilege level
W przypadku kiedy konto użytkownika ma być wykorzystywane jedynie do odczytu wartości sensorów, może do tego zostać wykorzystany własny privilege level. Użytkownik korzystający z tego konta nie może np. wyłączyć lub włączyć serwera. W następującym przykładzie zostaje założone konto tego typu o nazwie monitor:
[root@sr2500 ~]# ipmitool user set name 3 monitor [root@sr2500 ~]# ipmitool user set password 3 Password for user 3: Password for user 3: [root@sr2500 ~]# ipmitool channel setaccess 1 3 link=on ipmi=on callin=on privilege=2 [root@sr2500 ~]# ipmitool user enable 3 [root@sr2500 ~]# ipmitool channel getaccess 1 3 Maximum User IDs : 15 Enabled User IDs : 2 User ID : 3 User Name : monitor Fixed Name : No Access Available : call-in / callback Link Authentication : enabled IPMI Messaging : enabled Privilege Level : USER [root@sr2500 ~]#
Znaczenie różnych numerów privilege jest wyświetlane przy uruchomieniu ipmitool channel bez żadnego parametru:
[root@sr2500 ~]# ipmitool channel Channel Commands: authcap <channel number> <max privilege> getaccess <channel number> [user id] setaccess <channel number> <user id> [callin=on|off] [ipmi=on|off] [link=on|off] [privilege=level] info [channel number] getciphers <ipmi | sol> [channel] Possible privilege levels are: 1 Callback level 2 User level 3 Operator level 4 Administrator level 5 OEM Proprietary level 15 No access [root@sr2500 ~]#
Właśnie utworzone konto użytkownika (monitor) jest przyporządkowane do USER privilege level. Aby użytkownik tego konta miał możliwość dostępu do lokalnej sieci, należy dla grupy użytkowników (USER privilege level) aktywować uwierzytelnienie MD5:
[root@sr2500 ~]# ipmitool lan set 1 auth USER MD5 [root@sr2500 ~]#
W ten sposób MD5 zostaje również odnotowane w User Auth Type Enable dla tego połaczenia sieciowego:
[root@sr2500 ~]# ipmitool lan print 1 Set in Progress : Set Complete Auth Type Support : NONE MD5 PASSWORD Auth Type Enable : Callback : : User : MD5 : Operator : : Admin : MD5 : OEM : IP Address Source : Static Address IP Address : 192.168.1.211 Subnet Mask : 255.255.255.0 MAC Address : 00:0e:0c:ea:92:a2 SNMP Community String : IP Header : TTL=0x40 Flags=0x40 Precedence=0x00 TOS=0x10 BMC ARP Control : ARP Responses Enabled, Gratuitous ARP Disabled Gratituous ARP Intrvl : 2.0 seconds Default Gateway IP : 192.168.1.254 Default Gateway MAC : 00:0e:0c:aa:8e:13 Backup Gateway IP : 0.0.0.0 Backup Gateway MAC : 00:00:00:00:00:00 RMCP+ Cipher Suites : 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14 Cipher Suite Priv Max : XXXXXXXXXXXXXXX : X=Cipher Suite Unused : c=CALLBACK : u=USER : o=OPERATOR : a=ADMIN : O=OEM [root@sr2500 ~]#