====== IPMI Reference ====== ===== Install ipmitool ===== ipmitool is a command line program designed to interface and manipulate ipmi enabled systems. Most major server manufacturers have the capability of this, though some functionality is not standardized. All unix based operating systems I am aware of have ipmitool available for installation. For example, under Devuan (Debian), ipmitool can be installed using apt install ipmitool, and it can be installed on FreeBSD using pkg install ipmitool Most server manufacturers have Windows versions available to their clients. ipmitool also comes as a component in the excellent bootable USB system [[https://www.system-rescue.org/|SystemRescue]]. The source for ipmitool is available from [[https://github.com/ipmitool/ipmitool|github]]. ===== Gaining access via http ===== Most servers I'm aware of have ipmi access available as a part of their server management tool, through a web browser. Determine the IP address of the IPMI on a server, and open the IP in a web browser. In a many cases, gaining console access to the server via the web interface requires licensing and various versions of java, though more and more they are using HTML5. [[https://www.supermicro.com/|Supermicro]] is the only server I've used that consistently allows access to IPMI functions through their web interface without additional licensing. ===== Gaining Access via ipmitool ===== On refurbished equipment, it is not always easy to access the IPMI as you may not have the credentials necessary to do that. Installing ipmitool (or accessing from a bootable Unix image) is the simplest way. First, see what users are defined with ipmitool user list If you get an error message like **IPMI command failed: Parameter out of range**, the user list is not on the default channel. Some proprietary systems (Dell's DRAC, HP's ILO) do not put users in the default channel. In that case, put the channel after it. I usually start with 1, then try increasing channels (channel 2 works for current versions of Dell DRAC). ipmitool user list 2 When it runs correctly, you will get something like ID Name Callin Link Auth IPMI Msg Channel Priv Limit 1 Administrator true false true ADMINISTRATOR 2 (Empty User) true false false NO ACCESS 3 (Empty User) true false false NO ACCESS 4 (Empty User) true false false NO ACCESS 5 (Empty User) true false false NO ACCESS 6 (Empty User) true false false NO ACCESS 7 (Empty User) true false false NO ACCESS 8 (Empty User) true false false NO ACCESS 9 (Empty User) true false false NO ACCESS 10 (Empty User) true false false NO ACCESS 11 (Empty User) true false false NO ACCESS 12 (Empty User) true false false NO ACCESS The above indicates there is one user with ADMINISTRATOR rights, //Administrator//, and they are user #1. Change their password. Note that the passwords have some limitations, so choose something very small and simple, such as 'password' or 'abcd1234'. We'll change it later. ipmitool set password 1 'password' In the above case, we are setting the password for user 1 from the list returned from //user list//, and setting it //password//. The quotes are not necessary unless you have special characters in the password (like spaces), but I do it out of habit. Now that the password has been changed, it is a simple matter to log in through the ipmi web interface and add/remove/edit users from there. That is much easier than doing it from ipmitool. If for some reason you have no users you can use, choose a slot with (Empty User) and set it up. #Create a username for slot 3 user set name 3 sysadmin # give it a password user set password 3 'password' # set them to privilege level 0x4 (Administrator) # using channel 2 (discovered above) user priv 3 0x4 2 Entering ipmitool user will give you a full list of available functions.