Are we talking mass collection of ipmi data with respect to type of IPMI
data, number of IPMI elements aggregated into one thing, or data as it
changes over time?  For example, the hardware management piece of xCAT does
many-server ipmi data gathering in one swoop, but generally feeds into
something like rrdtool for things like fan tach or temperature over time.

For discovery, your best bets of getting an enumeration of IPMI devices on
a network, your likely set of tools would be:
-SLP multicasts.  Here you'd have to recognize the fingerprint of various
vendor SLP attributes that implement IPMI.  xCAT's slpdiscover.pm
recognizes IBM systems as an example, and tries to place them relative to
some infrastructure equipment like switches or chassis management modules.
-RMCP ping pong against a set of candidate addresses identified by
multicast/broadcast ipcm echo request.  Generally the IPv6 ones will *tend*
to fare better at appearing as a candidate on this list.  Obviously, the
SLP approach is going to be a lot more robust when available.
All these tend to be fickle, require same-subnet topology, and are likely
to miss things (particularly in large subnets where the previous-responder
list in SLP cannot fit a substantial fraction of the BMCs).

For security, when used correctly, IPMI has very strong security
characteristics.  The challenges I see are:
-IPMI cipher suite 0 should never have existed.  Most do not realize that
you do not even need to know the password to get into an IPMI device that
allows cipher suite 0.
-Default remote credentials.  Less risky so long as the user knows what
they are doing, but it does prevent security concious companies from doing
things like allowing IPMI access over a shared port by default for fear of
customers not understanding the implications of management connecting
devices.  In such a configuration, you have to start the deployment process
in-band and no amount of remote discovery to initiate through BMC will
work.

One not well known benefit is that both client and server may authenticate
each other.  The implication isn't immediately obvious to some, but if the
BMC doesn't know the password, a strict client implementation can detect
this and refuse to communicate. (e.g. xCAT requires a patch to work with
some older IPMI devices that did *not* do this mutual authentication, but
usually requires the management processor pass).

One controversial downside is that in order to accomplish the mutual
authentication, the 'password' must be stored in the clear on the BMC
persistent storage.  This downside can be completely eliminated through use
of machine-specific credentials (e.g. xCAT has a mode to autogenerate such
secrets), but most people get reluctant to do that because they want
consistent login data when they manually run ipmitool and use cli or web
interfaces and use some other management software and its hard to leave
xCAT out of it if xCAT is generating random passwords for everything.  I
personally tihnk the best answer for that is LDAP optionally with Kerberos
for things like SSH and HTTPs for that sort of access and letting software
like xCAT manage the locally stored IPMI secrets.


From:   "^..^" <zenf...@gmail.com>
To:     Hank Bruning <h...@jblade.com>,
Cc:     ipmitool-devel@lists.sourceforge.net
Date:   10/29/2012 03:27 PM
Subject:        Re: [Ipmitool-devel] scriptasaurus rex



Thanks for the response… if I understand the licensing of Hemi it's a
commercial product (
http://www.jblade.com/products/hemi/license/HemiLicenseOverview.jsf), which
immediately counts it out (not to mention I wouldn't be caught dead using
java, but I might make an exception for extreme circumstances ;)) since I
can't redistribute it.   I'm fine writing it myself, I simply didn't want
to reinvent anything.

Also, I don't need something to RMCP ping something; as I said that's an
obvious win, and I'm looking at other methods of IPMI discovery.  Think
discovery in broad terms; knowing an IPMI server is there even if you can't
communicate over UDP 623 is still very interesting.

dan

^..^

On Oct 29, 2012, at 11:53 AM, Hank Bruning <h...@jblade.com> wrote:

      I don't know if this meets your requirements but if you want to
      replace IPMITool with an Java IPMI library take a look at Hemi. It's
      well documented, over 475 pages for the JavaDoc.
      http://www.jblade.com/products/hemi/HemiOverview.jsf
      I think you want the Hemi DC version.

      The RMCP Ping methods your after are at found at
      
http://www.jblade.com/JbDoc1/products/hemi/hemiCX/doc/programmers/HemiDiscoverer.html


      Hank Bruning


      On Mon, Oct 29, 2012 at 11:24 AM, ^..^ <zenf...@gmail.com> wrote:

        Hey folks - first, thanks for a tremendous tool and all the effort
        put into this over the years (the documentation is really stellar
        as well, something that is both rare and apparently
        under-appreciated in open source.)  I've a couple of questions that
        I hope are suited this venue; if not please forgive me, and if you
        could suggest a better forum I'd appreciate it.

        I'm doing a bit of research on IPMI and BMC security (more like
        IPMI++, since I'm doing work with some of the various offshoots;
        iDRAC, iLO, etc.)  Currently I'm pulling various bits of data from
        the IPMI interface - ideally I'd like to *remotely* get as much as
        possible about the configuration and state of the BMC and IPMI
        configuration, and I plan to use your tool along with nmap,
        SMASH/CLP (don't laugh too much, at least its modestly cross
        platform ;)), and some duct tape and bailing wire to gather data.
        Think of it more as a snapshot or audit effort rather than any sort
        of continuous monitoring.

        Q-1) I'm familiar with the nagios and other folks who are all about
        gathering BMC sensor data… but I can't find a general IPMI data
        sucker  (e.g. get all the stuff that ipmitool will get me in one
        fell swoop, even though under the hood it might be doing lots of
        queries) anywhere; has anyone written such a thing?  (It'd have to
        be non-commercial, or at least free to distribute.)

        [meta note: the README file in the contrib subdirectory has a
        broken url: http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/ -
        seems as though the user moved on.  As such one can't see any
        sample output to the scripts or what they really collect without
        perusing the source or hunting around.   In particular the file
        "oem_ibm_sel_map" is pretty opaque and not referenced by anything
        but the makefile in the contrib… is this used anywhere except in
        comments (and if so, a one-liner somewhere explaining would be
        great)? :) ]


        Q-2) In the absence of someone else having something I can steal,
        my current thought would be to simply toss all the various ipmitool
        gathering options (e.g. fru, sel, pef, etc.) in a file, exec them
        all, and stash the resultsin something like JSON for safekeeping
        and post-processing.  So again… has anyone done anything like this?
        Assuming that what I'm looking is all that data, even if you think
        I'm foolish wanting it, is that a reasonable way to collect it?
        It'd be great to have any tricks or tips.   (Size of output is not
        an issue.  Heck, I'd snarf up BMC flash storage and RAM as well, if
        I could find a reasonable way of doing so remotely!)  I'd be happy
        to share pre-distributed versions if anyone is burning with
        curiosity, has a use for such a thing, or would be willing to
        discuss various ways to build a better mousetrap.

        Q-3) Finally - I'm writing up a bit of an analysis on IPMI/BMC/++
        security; if there is a person or two here who are interested in
        such things I would love a real IPMI expert to give feedback (I'm
        not an IPMI expert by any stretch of the imagination, though I
        might have some unusual thoughts on IPMI security); I'll just say
        as a warning I'll be asking for no one to redistribute it prior to
        my putting it out, which will hopefully be in about 30-60 days or
        so.

        Thanks again (mac support in particular is greatly appreciated as
        well.)

        dan

        p.s.  Also - if anyone has any thoughts or scripts or tools or
        anything on how to remotely identify systems running IPMI I've yet
        another simple tool to start doing this (obviously if they answer
        to an RMCP ping that's a win, but I'm talking about on a larger
        network scale where firewalls and network topologies), and would
        welcome any conversations on that also.

        p.p.s. For context some of my earlier work may be found at
        http://fish2.com/security

        ^..^


        
------------------------------------------------------------------------------

        The Windows 8 Center - In partnership with Sourceforge
        Your idea - your app - 30 days.
        Get started!
        http://windows8center.sourceforge.net/
        
what-html-developers-need-to-know-about-coding-windows-8-metro-style-apps/

        _______________________________________________
        Ipmitool-devel mailing list
        Ipmitool-devel@lists.sourceforge.net
        https://lists.sourceforge.net/lists/listinfo/ipmitool-devel


------------------------------------------------------------------------------

The Windows 8 Center - In partnership with Sourceforge
Your idea - your app - 30 days.
Get started!
http://windows8center.sourceforge.net/
what-html-developers-need-to-know-about-coding-windows-8-metro-style-apps/_______________________________________________

Ipmitool-devel mailing list
Ipmitool-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ipmitool-devel

<<inline: graycol.gif>>

------------------------------------------------------------------------------
The Windows 8 Center - In partnership with Sourceforge
Your idea - your app - 30 days.
Get started!
http://windows8center.sourceforge.net/
what-html-developers-need-to-know-about-coding-windows-8-metro-style-apps/
_______________________________________________
Ipmitool-devel mailing list
Ipmitool-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ipmitool-devel

Reply via email to