Hi all,

again - sorry for delay but i am kinda busy :(. See answers below:
> Michal Bachorik - Sun Microsystems - Prague Czech Republic wrote:
>>
>>>
>>>> Regarding the "ipmitool" - I  was in  contact with guys working 
>>>> on/with "ipmitool" (Kevin.Song at Sun.COM, Hesam.Kohanteb at Sun.COM, 
>>>> turgo-ipmi at Sun.COM ..) to clarify some technical details regarding 
>>>> the BMC driver, and they did not raise any objections/concerns 
>>>> regarding porting of freeipmi to Open Solaris, they were rather 
>>>> looking forward for it. Does my answer satisfy your question, or 
>>>> there should be detailed description what functionality is covered 
>>>> by ipmitool/freeipmi and whether they do compete or complement?
>>>
>>> I think the ARC needs to be presented with why this is needed given 
>>> we have ipmitool.
>> Answer directly from my director Fritz Ferstl 
>> (Friedrich.Ferstl at sun.com) :
>>
>> "We need freeimpi because it is used by 'Tortuga', the provisioning 
>> core of our OpenSolaris HPC SW stack. 'Tortuga' is open source and 
>> thus uses other open source components such as freeipmi. Usage of 
>> ipmitool has been assessed but freeipmi has found to be a better fit 
>> for the time being."
>
> I'd like this spelled out in more detail.  Specifically, *why* is 
> freeipmi deemed a better fit?  Is it simply a matter of licensing, or 
> are the technical or architectural considerations here.
For the UniCluster / Tortuga side freeipmi is used primarily for its 
"bmc-config" tool.  The "bmc-config" command provides an easy way to extract 
the configuration information from on bmc and store it in a file that can be 
used to back up the configuration or be modified and pushed to other similar 
BMC's.  Specifically UniCluster contains a tool called "bmc-tool" that allows 
you to extract the configuration from one bmc and push it to another while 
automatically replacing LAN configuration parameters.  This tool is part of our 
general cluster BMC configuration strategy.

The freeipmi tools, such as bmc-config, can be configured to use different 
drivers including the OpenIPMI driver (which is the default in our bmc-tool 
tool).


>
> One of the problems we (Sun) have historically suffered from is *too 
> many* different service processor and platform management systems.   
> I'm personally not too keen to integrate another one.
freeipmi is just a CLIENT tool that supports ONLY IPMI service processors.
>
> Other questions (sorry if these seem obvious -- I've little experience 
> with service processor stuff since the E10K SSP. :-)
>
> Can freeimpi and ipmitool coexist on the same platform?  What int4tr
sorry, I do not not know what is "int4tr" - can you explain (or provide 
me some link to docs, where I can study it - uncle google was not 
helpful, sorry)? anyway, freeipmi and ipmitool can happily coexist on 
the same platform. you can think of them like "vncviewer" and 
"tvncviewier" (both are VNC clients and both can coexist on the same 
platform)
>
> Is this really a Linux familiarity case?
well, I believe it is. why it would not be? freeipmi has good name in 
linux world (as a set of ipmi client tools)
>
> IPMI specs seem to require signing an "Adopters agreement for IPMI" 
> from Intel.  Has anyone checked to see if freeipmi has followed the 
> necessary steps so our legal bases are covered for integrating it?
I will try to double check this, but I bet the "Adopters agreement for 
IPMI" has to be signed by companies implementing IPMI spec which is not 
freeipmi case (that are implementing client tools) - in fact, as the Sun 
is already providing servers with IPMI interface, I believe that Sun has 
signed "Adopters agreement for IPMI".

>
>>>
>>> What is the relationship between the daemons in this case and the 
>>> ipmievd one from PSARC/2006/412 ?  Particularly in light of the long 
>>> discussion in that case about FAM.
>>
>> The "ipmievd" is just logging the IPMI events to syslog while 
>> freeipmi "bmc-watchdog" is able to also trigger an action upon 
>> receive of an IPMI event. The "ipmidetecd" is able to find new 
>> machines in specified subnets that are exposing an IPMI interface and 
>> add it to "freeipmi managed" hosts.
>
> Have the security implications of this been properly reviewed by a 
> member of the security team?  How does one ensure that a machine 
> running ipmidetecd and the watchdog doesn't reboot a system that it 
> shouldn't?  Are there any authorization or authentication steps 
> taken?  Again, this might all be covered as part of IPMI itself,  and 
> so seem to be obvious, but not all the readers here (certainly not 
> this author) are familiar with IPMI.
I am not aware of any member of security team that would do the security 
review - I did not know it is needed. If it is needed, I will try to 
arrange it - is there any process behind it, or can you give me a 
contact to someone? Regarding your question, I will try to enlighten it:

1. IPMI standard clearly defines the authentication and authorization of 
users (described in foss checkslist in 3.4.6, see bottom of email please)
2. user management is performed on SP side - so, on SP side you can 
define users (with credentials) and grant them permissions to perform 
certain activities. IPMI defines 3 groups
of permissions (monitor/user, manager/operator, admin).
    - monitor/user has ability just monitor the platform
    - manager/operator has (in addition to monitor/user group) ability 
to perform for example power operations
    - admin has (in addtion to manager/operator) ability to manage SP 
(access control, reset SP, upload new firmware etc.)
(through vendor extension, it is possible to setup SP in a way, that 
users are taken from DS (NIS, AD, LDAP) and permissions mapping is done 
through DS groups (e.g. all users from NIS group "ipmi_ops" will be 
granted "manager/operator" permissions))
3. freeipmi (or any other IPMI client tool, e.g. ipmitool) has to 
specify the "SP user" to authenticate the access to SP. authorization to 
perform the action (reboot the machine, for example) is then done on SP 
side by comparing the authenticated user's permissions.

By default, any SP is delivered with only ADMIN user with some 
"predefined" password. It is up-to system (lab) administrator to setup 
SP users that have ability to access the SP.
In freeipmi client tools you need to specify user that is used when 
accessing the SP - this applies also for watchdog services.

Example - command performed as user "mb123456":

 > ipmimonitoring -h latte2 -u uadmin

where "-u uadmin" specifies that for authentication the user with name 
"uadmin" has to be used. for command to be successful, the user "uadmin" 
has to be defined on SP side and it has to be in group (at least) 
"monitor/user"AND a valid password for user "uadmin" has to be provided 
(the command will prompt for password upon invocation).

For services (bmc-watchdog and ipmidetecd), the password for user that 
is configured to access the SP is stored in file and file is readable 
only by the user that is used to run the service.

Regards,

Michal


PS: excerpt from freeipmi foss checklist regarding the IPMI security, as 
used by freeipmi:

The authentication/authorization mechanism is part of project nework 
services
       (as defined by IPMI spec.) and it takes into acount the user 
identity.
       A functionality available to the user depends on successful 
authentication
       and on the user authorization.
       The project implements the authentication mechanism as requested 
by IMPI 1.5 and 2.0
       specification. For communication involving IPMI 1.5 clients/sides,
       available authentication types are (defaults to MD5 if not 
specified):
       - NONE,
       - STRAIGHT_PASSWORD_KEY,
       - MD2,
       - MD5
       For communication involving IPMI 2.0 clients/sides, it is possible to
       choose a "cipher suite" to be used. The Cipher Suite is a set of 
authentication,
       integrity, and confidentiality algorithms to use for IPMI 2.0 
communication.
       The authentication algorithm identifies the algorithm to use for 
session setup,
       the integrity algorithm identifies the algorithm to use for 
session packet signatures,
       and the confidentiality algorithm identifies the algorithm to use 
for payload encryption.
       Defaults to cipher suite ID 3 if not specified (see below). The 
following cipher
       suite ids are currently supported:  
 
       0  - Authentication Algorithm = None; Integrity Algorithm = None; 
Confidentiality Algorithm = None
       1  - Authentication Algorithm = HMAC-SHA1; Integrity Algorithm = 
None; Confidentiality Algorithm = None
       2  - Authentication Algorithm = HMAC-SHA1; Integrity Algorithm = 
HMAC-SHA1-96; Confidentiality Algorithm = None
       3  - Authentication Algorithm = HMAC-SHA1; Integrity Algorithm = 
HMAC-SHA1-96; Confidentiality Algorithm = AES-CBC-128 ." .sp ."
       4  - Authentication Algorithm = HMAC-SHA1; Integrity Algorithm = 
HMAC-SHA1-96; Confidentiality Algorithm = xRC4-128 ." .sp ."
       5  - Authentication Algorithm = HMAC-SHA1; Integrity Algorithm = 
HMAC-SHA1-96; Confidentiality Algorithm = xRC4-40
       6  - Authentication Algorithm = HMAC-MD5; Integrity Algorithm = 
None; Confidentiality Algorithm = None
       7  - Authentication Algorithm = HMAC-MD5; Integrity Algorithm = 
HMAC-MD5-128; Confidentiality Algorithm = None
       8  - Authentication Algorithm = HMAC-MD5; Integrity Algorithm = 
HMAC-MD5-128; Confidentiality Algorithm = AES-CBC-128 ." .sp ."
       9  - Authentication Algorithm = HMAC-MD5; Integrity Algorithm = 
HMAC-MD5-128; Confidentiality Algorithm = xRC4-128 ." .sp ."
       10 - Authentication Algorithm = HMAC-MD5; Integrity Algorithm = 
HMAC-MD5-128; Confidentiality Algorithm = xRC4-40
       11 - Authentication Algorithm = HMAC-MD5; Integrity Algorithm = 
MD5-128; Confidentiality Algorithm = None
       12 - Authentication Algorithm = HMAC-MD5; Integrity Algorithm = 
MD5-128; Confidentiality Algorithm = AES-CBC-128 ." .sp ."
       13 - Authentication Algorithm = HMAC-MD5; Integrity Algorithm = 
MD5-128; Confidentiality Algorithm = xRC4-128 ." .sp ."
       14 - Authentication Algorithm = HMAC-MD5; Integrity Algorithm = 
MD5-128; Confidentiality Algorithm = xRC4-40
 
       In addition, project supports specifying the privilege level 
(according the IPMI
       specification) which can be of (defaults to admin):
       - USER
       - OPERATOR
       - ADMIN

       Notice, that the authentication/authorization is not done at the 
operating system level, but on the IPMI level (adheres to requirements 
and recommendations of IPMI spec).


>
>    -- Garrett
>
>

  • FreeIPMI [LSARC... Michal Bachorik - Sun Microsystems - Prague Czech Republic
  • FreeIPMI [LSARC... Darren J Moffat
    • FreeIPMI [... Michal Bachorik - Sun Microsystems - Prague Czech Republic
      • FreeIP... Garrett D'Amore
        • Fr... Nicolas Williams
          • ... Michal Bachorik - Sun Microsystems - Prague Czech Republic
            • ... Garrett D'Amore
            • ... Michal Bachorik - Sun Microsystems - Prague Czech Republic
            • ... Garrett D'Amore
            • ... Michal Bachorik - Sun Microsystems - Prague Czech Republic
        • Fr... Michal Bachorik - Sun Microsystems - Prague Czech Republic
          • ... Garrett D'Amore
            • ... Michal Bachorik - Sun Microsystems - Prague Czech Republic
            • ... Garrett D'Amore
            • ... Michal Bachorik - Sun Microsystems - Prague Czech Republic
            • ... Garrett D'Amore
            • ... Dale Ghent
            • ... Seth Goldberg
            • ... Garrett D'Amore
            • ... Dale Ghent
            • ... Michal Bachorik - Sun Microsystems - Prague Czech Republic

Reply via email to