Honeypots mailing list archives

Re: Honeyd 0.6: Happy Summer/Pre-Birthday Release -- Plugins


From: Christian Kreibich <christian () whoop org>
Date: 24 Jun 2003 15:33:23 +0100

On Tue, 2003-06-24 at 14:47, Niels Provos wrote:
On Tue, Jun 24, 2003 at 03:29:52PM -0700, ravenlord wrote:
This is kinda cool, is there any documentation on this (other than
hooks.c and plugin.c).. I mean the only plugins that honeyd
currently have is Honeycomb, and it doesn't work out of the box with
honeyd0.6

No, currently, there is not much documentation for the plugin
framework.  Christian has a new plugin that works with 0.6, but I am
not sure if he has posted it anywhere.

For now, you have to consult the source ;)

Yeah. However the new manpage does have some information. If you guys
have trouble getting the plugin to work, please get in touch as it
should not be hard. Make sure you look at the README.

Here's a quick overview of how the mechanism works: for portability
reasons, we decided to keep plugins static. That means that honeyd does
not dynamically pick them up via dlopen() at runtime, but rather needs
to be reconfigured (./configure --with-plugins=...) and recompiled when
you want to add new plugins. Plugins are just normal shared libraries
that honeyd links in upon that rebuild.

Plugins need honeyd's header files to properly register themselves, so
you need to have one initial installation of honeyd without any plugins,
just to get everything in the right location.

Each plugin library must provide a struct honeyd_plugin structure with a
name of plugin_<plugin name> (see honeycomb.c for an example) in which
the plugin defines an initialization hook and some plugin information
(author, version etc).

Honeyd has a list of these structures that gets defined at configuration
time (when you call ./configure --with-plugins=...). When it starts, it
then walks through that list to initialize the plugins.

There's a configuration system for the plugins that is integrated in
honeyd's normal configuration files, see the manpage for some
explanation, honeyd.cnf for an example, and look at plugins_config.[ch]
for the code.

Hope this clears it up a little. Now go write plugins! :)

Cheers,
Christian.
-- 
________________________________________________________________________
                                                    http://www.whoop.org


Current thread: