Prelude Library (https://www.prelude-siem.org) The Prelude Library is brought to you by CS (http://www.c-s.fr). Prelude Library Overview ======================== The Prelude Library is used to make sensor developers' life better by providing features used by every sensor: - Manager(s) Connection management (with fallback in case all configured Managers are down, and automatic reconnection). - Interface to communicate with the Prelude Manager. - Asynchronous Message interface (allowing sensor to emit message without blocking, even if there is latency on the wire). - Asynchronous timer interface. - Generic configuration API, providing a generic abstraction for command-line, configuration file option, and wide option support. - Wide option managment allowing sensor-exported options to be directly accessible from the Manager administrative console. - Generic plugin API. Prelude Communication ===================== Prelude SIEM uses unique optimized implementation of the XML based IDMEF message format to transmit alerts between the sensors and the manager and between managers. Using IDMEF, Prelude provides a generic method for virtually any type of sensors to describe precisely the content of an alert. Dependencies ============ For Redhat based systems (CentOS, Fedora, etc.) Minimal : groupinstall "Development tools" gnutls-devel libgcrypt-devel libtool-ltdl-devel Autogenerated files: swig bison flex Documentation : gtk-doc Perl Binding : perl perl-devel Python 2 Binding : python-devel Python 3 Bindings : python34-devel LUA Binding : lua lua-devel Ruby Binding : ruby ruby-devel For Debian systems Minimal : build-essential libtool autoconf libgcrypt-dev gnutls-dev pkg-config Autogenerated files: swig bison flex Documentation : gtk-doc-tools libglib2.0-dev Perl Binding : perl Python 2 Binding : python-dev Python 3 Binding : python3-dev Ruby Binding : ruby ruby-dev LUA 5.1 Binding : lua5.1 liblua5.1-dev LUA 5.2 Binding : lua5.2 liblua5.2-dev IRC === If there's something you just can't find out elsewhere, you want to give feedback directly to the authors or you're just bored, visit #prelude on irc.freenode.net Get Support =========== Prelude-user forums can be accessed at: https://www.prelude-siem.org/projects/prelude/boards Old mailing lists can be accessed at: http://news.gmane.org/gmane.comp.security.ids.prelude.user news://news.gmane.org/gmane.comp.security.ids.prelude.user Commercial Support is available through the CS company: http://www.prelude-siem.com, contact.prelude@c-s.fr Help development ================ 1. SUBMITTING PATCHES The Prelude source is constantly changing. If you want to submit a patch, please do so from the most recent GIT source tree, subscribe to the prelude-devel forum and post your patch with a description of functionality. You can also attach patches to bugs on https://www.prelude-siem.org 2. BUGS If you find any bugs, please report them to: https://www.prelude-siem.org Please make sure that what you're reporting is actually a BUG and not a problem on your side. 3. SUGGESTIONS Subscribe to prelude-devel and give us your suggestions. How to install the Prelude Library ================================== 1. Prelude Library installation If you don't want to build the Prelude Library yourself, you can get prebuild rpm and debian packages at https://www.prelude-siem.org. If you want to build Prelude, unpack the tarball and cd into the newly created directory. Then type : ./configure make If everything works, su to root and type: make install 2. Generic sensor installation First, all sensors get some generic configuration files, installed in: - $prefix/etc/prelude/default/idmef-client.conf [specific to sensor] - $prefix/etc/prelude/default/global.conf [used by sensor and manager] These files contain entries that *may* be shared between several sensors. If a sensor provides the same entry in its own configuration file, then the sensor will by default use its own entry. Example of a shared entry (in the default provided generic sensor configuration file) is : server-addr = 127.0.0.1:4690 || x.x.x.x; Which tells the sensor to try to connect to both 127.0.0.1:4690 and x.x.x.x:4690. If both connections work, only the first will be used, but the contrary would happen if you were to use : server-addr = 127.0.0.1:4690 && x.x.x.x; Which mean that both connections should be okay for a sensor message to be considered to be successfully sent. When linked against the Prelude Library, the sensors should be registered in order to setup the sensor for the first time. If you start a sensor without registering it, it'll print out a message like : " Profile 'prelude-lml' does not exist. In order to create it, please run: prelude-admin register "prelude-lml" "idmef:w" <manager address> --uid 0 --gid 0 " Starting this program with the sensor provided arguments will start the registration procedure for this sensor. The prelude-admin program will ask you to start the prelude-admin program on the Manager host: " You now need to start "prelude-admin" on the server host where you need to register to: use: "prelude-admin registration-server <analyzer-name>" " "analyzer-name" should be substituted by the name of your Manager (prelude-manager is the default, unless you provided a customized analyzer-name option on the prelude-manager command line, or in its configuration file). The manager host prelude-admin program will provide you a randomly generated password to be used when sensor side prelude-admin requests it. The prelude-admin program will then ask you several questions, and it will connect to the manager prelude-admin program. If authentication is okay, the sensors and the Manager will be able to exchange their certificates.