Search:  
Gentoo Wiki

Prelude

Contents

About Prelude

Background Information

Prelude was founded and written by Yoann Vandoorselaere in 1998. Many others have also greatly contributed to it. The original open-source community who maintains the project can be found at Prelude-IDS.org, while the newly formed professional services company catering to custom software development, support, and consulting can be reached at Prelude-IDS.com.

Prelude is a hybrid intrusion detection system that will detect and monitor security intrusions, whether they happen in an attack mobilized over the Internet or an attack mobilized locally. The monitoring work that Prelude does is made possible via registered sensors, such as Prelude-LML (Log Monitoring Lackey for HIDS), Snort (NIDS), Nessus (vulnerability correlation), Nagios (distributed monitoring alerts), and Samhain (file integrity checking), among others.

Prelude also offers a web front-end GUI called Prewikka, which combined with the framework's adherence to the IDMEF (Intrusion Detection Message Exchange Format) IETF standard, provides endless possibilities to enable various security applications (open-source or proprietary) to report to a centralized location.

What Are the Components?

Packages required for a base Intrusion Detection System:


Other packages currently available to enhance your IDS:

There are other Prelude modules available, however not yet part of Portage as official ebuilds. Please consult Prelude's website for these other modules and for help with installation and configuration.

Installing Prelude

Emerging Packages

As of July 2008, Portage contains the 0.9 branch with stable keywords. You should consult your repository browser whether there are later versions, and unmask them if desired. If you want to use the stable version (recommended), skip to the next step.

Otherwise, open /etc/portage/package.keywords in your favorite editor and add the following

File: Adding KEYWORDS flag for prelude to /etc/portage/package.keywords
### prelude ##
dev-libs/libprelude
app-admin/prelude-manager
dev-libs/libpreludedb
app-admin/prelude-lml
### EOF prelude ###

Please Note: Installation and configuration of MySQL, and the implementation of a Snort database if so desired, are beyond the scope of this document. Please consult other great documentation, such as the now famous: HOWTO Use Snort, Acid, and MySQL Effectively.

Then open /etc/portage/packages.use in your favorite editor and add the following

File: Adding USE flags for prelude to /etc/portage/package.use
app-admin/prelude-manager dbx doc xml
dev-libs/libpreludedb mysql perl python
dev-libs/libprelude perl python
net-analyzer/snort ssl mysql prelude dynamicplugin inline

Now next time you install or upgrade prelude, portage will "remember" what USE&KEYWORDS flags you used. Of course an emerge -pv <package name> will show you what USE flags are available and which ones will be used.

For the brave, one long command can be use to download all files needed for the Prelude packages and then install them, per our specified options.

Code: Installing Prelude in one shot
# emerge prelude-manager libprelude libpreludedb prelude-lml prewikka snort oinkmaster

OR

For those of us who like to install things indepedently, emerge Prelude-Manager first (which should install libprelude and libpreludedb). Then emerge PreWikka console and Prelude-LML log monitoring lackey. Finally, emerge Snort and Oinkmaster:

Code:
emerge prelude-manager prewikka prelude-lml snort oinkmaster

Assuming you have implemented Nagios for systems and network monitoring, and Nessus for vulnerability scanning, you may optionally emerge their respective plugins:

Code:
emerge prelude-nessus prelude-nagios

[JG 26 April 2007] I had to add a user called prelude to my system manually. A group was already there. I also had to chown the pid dir, log dir and prelude-manager spool dir to prelude:prelude before the prelude-manager would start up (error about unable to lookup user 'prelude'.)

Configuring Prelude

Setting up the Manager

We will now edit the Manager's main configuration file, prelude-manager.conf. Two of the most important settings are for changing where Prelude will listen. For instance, if you have two IPs but only want Prelude to listen on one of them, you would supply the said IP in the configuration.

If all sensors, managers, and consoles will be configured on the same physical server, the default is acceptable. However, if using a distributed system, please configure as appropriate using appropriate IP addresses:

File: /etc/prelude-manager/prelude-manager.conf
listen = 127.0.0.1

Next, we need to configure the Prelude database settings within the same file. Please adjust as required:

File: /etc/prelude-manager/prelude-manager.conf
[db]
type = mysql
host = localhost
port = 3306
name = prelude
user = prelude
pass = password

OR 

[db]
type = pgsql
host = localhost
port = 5432
name = prelude
user = prelude
pass = password

Additionally, and optionally, turn on the TextMod and XMLMod settings. Besides logging to the database, Prelude will also log to a local text and xml log files:

File: /etc/prelude-manager/prelude-manager.conf
[TextMod]
logfile = stderr
logfile = /var/log/prelude.log

[XmlMod]
disable-buffering
validate
format
logfile = stderr
logfile = /var/log/prelude-xml.log

Setting up the Database

Create Database

Once you have installed libpreludedb, the next step is to create a database that will be used by prelude-manager to store the IDMEF alerts gathered from your sensors. Two databases are currently supported by libpreludedb: MySQL and PostgreSQL.

MySQL

Connect to your database server using the mysql client like this:

$ mysql -u root -p
Enter password:

where "root" is the name of the database administrator (this is the default account on mysql) and -p will prompt you for a password (by default the root account has no password on mysql and is only accessible from localhost).

Then, if everything is ok, you should see something like this:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 303 to server version: 4.0.22-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

To create a new database named 'prelude' (for example):

mysql> CREATE database prelude;
Query OK, 1 row affected (0.05 sec)


Create a dedicated user to access the database (optional)

You might want to access your database through a dedicated user (if you don't have already one). If you want to create a new user called 'prelude' with the password 'passwd' that we will have full access on a database called 'prelude' but only from localhost, use the following query:

GRANT ALL PRIVILEGES ON prelude.* TO prelude@'localhost' IDENTIFIED BY 'passwd';

Tables creation

The final step (supposing you have libpreludedb installed in /usr):

$ mysql -u prelude prelude -p < /usr/share/libpreludedb/classic/mysql.sql
Enter password:

Enter your password, and the tables will be created.

For more details about MySQL databases/tables/users creation, please refer to [1]


Updating tablesIf you already have created your tables but that a new libpreludedb version comes with an updated schema, you must update your schema this way, supposing that your current version of schema is 14 and the new one is 14.1:

$ mysql -u prelude prelude -p < /usr/share/libpreludedb/classic/mysql-update-14-1.sql
Enter password:

PostgreSQL

Database creation

Connect to your database server using the psql client like this:

$ PGPASSWORD=your_password psql -U postgres

where "postgres" is the name of the database administrator (this is the default account on postgresql) and the PGPASSWORD environnement variable is set to the correct password.

Then, if everything is ok, you should see something like this:

Welcome to psql 7.3.4, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help on internal slash commands
       \g or terminate with semicolon to execute query
       \q to quit

postgres=#

To create a new database named 'prelude' (for example):

mysql> CREATE database prelude;
CREATE DATABASE

Create a dedicated user to access the database (optional)

You might want to access your database through a dedicated user (if you don't have already one). If you want to create a new user called 'prelude' with the password 'prelude' that we will have full access on a database called 'prelude', use the following query:

CREATE USER prelude WITH ENCRYPTED PASSWORD 'prelude' NOCREATEDB NOCREATEUSER;

Tables creation

The final step (supposing you have libpreludedb installed in /usr):

$ PGPASSWORD=prelude psql -U prelude -d prelude < /usr/share/libpreludedb/classic/pgsql.sql

For more details about PostgreSQL databases/tables/users creation, please refer to [2]


Updating tablesIf you already have created your tables but that a new libpreludedb version comes with an updated schema, you must update your schema this way, supposing that your current version of schema is 14 and the new one is 14.1:

$ PGPASSWORD=prelude psql -U prelude -d prelude < /usr/share/libpreludedb/classic/pgsql-update-14-1.sql
Enter password:

Testing the Framework

( 11/22/07 - Changed the management command to the newly updated one: prelude-admin ) ( 9/13/08 - The directories already existed, however the prelude-admin command was still required. )

Create the prelude-manager user:

# mkdir /etc/prelude/profile
# mkdir -p /var/lib/spool/prelude
# prelude-admin add prelude-manager --uid 0 --gid 0

If you have edited your /etc/prelude-manager/prelude-manager.conf and followed all instructions, you should now be able to test Prelude-Manager by starting from command-line, or from init script:

Code: Testing Prelude-Manager
# /usr/bin/prelude-manager
- Subscribing db[default] to active reporting plugins.
- Subscribing TextMod[default] to active reporting plugins.
- Subscribing XmlMod[default] to active reporting plugins.
- server started (listening on 127.0.0.1 port 5554).

OR

# /etc/init.d/prelude-manager start
 * Starting prelude-manager......                                                          [ ok ]

OR (to get some debug info - here is the effect of forgetting to set the dbx USE flag, even though postgres and mysql flags were set)

 # /usr/bin/prelude-manager --debug -l stderr
/etc/prelude-manager/prelude-manager.conf:85: invalid section : "db".
/etc/prelude-manager/prelude-manager.conf:86: invalid option "type" in "global" section at depth 0.
/etc/prelude-manager/prelude-manager.conf:87: invalid option "host" in "global" section at depth 0.
/etc/prelude-manager/prelude-manager.conf:88: invalid option "port" in "global" section at depth 0.
/etc/prelude-manager/prelude-manager.conf:89: invalid option "name" in "global" section at depth 0.
/etc/prelude-manager/prelude-manager.conf:91: invalid option "pass" in "global" section at depth 0.
- server started (listening on 127.0.0.1 port 4690).
- Subscribing TextMod[default] to active reporting plugins.
- Subscribing XmlMod[default] to active reporting plugins.
- Subscribing Debug[default] to active reporting plugins.
   ... and lots more stuff ...

The first time prelude-manager is run, you will notice that it takes a few seconds to generate an SSL/TLS certificate.

Installing Prelude Sensors

At this point, we have installed all the appropriate packages, configured Prelude-Manager, and started the framework. This section details the installation or registration of Sensors, such as Snort and Prelude-LML with the Prelude-Manager framework. This enables the Manager to have control over the Sensors, such as monitoring Sensor Heartbeat and securing all communications between components with SSL encryption.

In order for a Sensor to communicate with a Prelude-Manager, it needs to be registered. Registration involves several steps, such as the allocation of a unique identity for the Sensor, creation of a directory to be used by the sensor, and registration to a remote Manager with a signed X509 certificate.

All of this information is stored in a sensor 'profile'. A sensor profile is identified by its name. When a sensor is started, it will try to load a profile of the same name as the program itself, that is, if your sensor is named "prelude-lml", the sensor will try to load a profile named "prelude-lml".

There are two major steps for this process, which requires two open shells with root access. We'll call one the Sensor shell, and the other we shall call the Manager shell. In one Sensor shell, we use the prelude-adduser application (part of the overall framework installation) to kick-off the Sensor registration. While in the Manager shell, we use the same prelude-adduser application to kick-off the Manager's registration server. Working between the two shells will enable you to copy/paste the one-shot password generated by the registration server, and approve/commit the registration.


Setting up Prelude-LML

We will now setup the Prelude Log Monitoring Lackey, which will watch specified log files for events and send an alert to the Prelude-Manager. If you try running Prelude-LML for the first time from command-line or init script, it will kindly provide you with the steps required to register the sensor.

Open up two shells or consoles. Kick-off the Sensor registration in the first shell (the Sensor shell):

Code: Register Prelude-LML Sensor
# prelude-admin register prelude-lml "idmef:w admin:r" localhost --uid 0 --gid 0

- Using default TLS settings from /etc/prelude/default/tls.conf:
  - Generated key size: 1024 bits.
  - Authority certificate lifetime: unlimited.
  - Generated certificate lifetime: unlimited.

- Adding analyzer prelude-lml.
  - Creating /etc/prelude/profile/prelude-lml...
  - Using already allocated ident for prelude-lml: 3023198534532421.
  - Creating /var/lib/spool/prelude/prelude-lml...

- Registering analyzer idmef:w admin:r to localhost:5553.

  You now need to start "prelude-admin" on the server host where
  you need to register to:

  use: "prelude-admin registration-server <analyzer profile>"
  example: "prelude-admin registration-server prelude-manager"

  This is used in order to register the 'sending' analyzer to the 'receiving'
  analyzer. <analyzer profile> should be set to the profile name of the
  'receiving' analyzer, the one where 'sending' analyzer will register to.

  Please remember that "prelude-adduser" should be used to register
  every server used by this analyzer.

  Enter the one-shot password provided by the "prelude-adduser" program:

  - Enter registration one shot password:

Now, kick-off the Manager registration server in the second shell (the Manager shell):

Code: Manager Registration Server
# prelude-admin registration-server prelude-manager

- Using default TLS settings from /etc/prelude/default/tls.conf:
  - Generated key size: 1024 bits.
  - Authority certificate lifetime: unlimited.
  - Generated certificate lifetime: unlimited.

- Adding analyzer prelude-manager.
  - Creating /etc/prelude/profile/prelude-manager...
  - Using already allocated ident for prelude-manager: 1313921809808550.
  - Creating /var/lib/spool/prelude/prelude-manager...

- Starting registration server.
  - generated one-shot password is "1rkp8x2q".

    This password will be requested by "prelude-admin" in order to connect.
    Please remove the first and last quote from this password before using it.

  - Waiting for peers install request on 0.0.0.0:5553...

Copy and paste that one-shot password into the Sensor shell awaiting input and confirm it. You won't see the password, so just type it as generated without quotes, and press Enter:

Code: Sensor Password
  - Enter registration one shot password:
  - Please confirm one shot password:
  - connecting to registration server (localhost:5553)...
  - Sending certificate request.
  - Receiving signed certificate.

Return to the Manager shell and confirm the Sensor registration:

Code: Confirm Registration
  - Connection from 127.0.0.1:43591.
  - Waiting for client certificate request.
  - Analyzer with ID="3023198534532421" ask for registration with permission="idmef:w admin:r".
    Approve registration [y/n]:

- Connection from 127.0.0.1:57232.
  - Waiting for client certificate request.
  - Analyzer with ID="1537698187535812" ask for registration with permission="idmef:w admin:r".
    Approve registration [y/n]: y
    Registering analyzer "1537698187535812" with permission "idmef:w admin:r".
  - Generating signed certificate for client.
  - Sending server certificate to client.
  - 127.0.0.1:30098 successfully registered.

If you return to the Sensor shell one last time, you will find the confirmation from that side that the Sensor successfully registered:

Code: Sensor Registered
- prelude-lml registration to localhost successful.

Registering Snort profile

You now need to create a snort profile re-calling another registration server (on Manager shell) and type a command like (on Sensor shell):

$ prelude-admin register snort "idmef:w admin:r" localhost --uid 0 --gid 0
and follow the instructions. If the registration is successeful - you are ready to test your installation. please check RegisteringASensor for more details about sensors registration.

Time to edit the prelude-lml.conf file, which basically configures which log files to monitor. Here are some examples:

File: /etc/prelude-lml/prelude-lml.conf
file = /var/log/messages
file = /var/log/syslog
file = /var/log/auth.log
file = /var/log/mail/mail.log
file = /var/log/clamav/clamd.log

Please Note: If you setting up an LML sensor reporting to a remote Manager, please remember to set the Manager IP address, otherwise, the default is typically commented out if reporting to a local Manager.

Now we are ready to start Prelude-LML either via command-line or init script. If you have been following this How-To, and have Prelude-Manager running, this will complete installation and basic configuration of your Host-based Intrustion Detection System (HIDS):

Code: Starting Prelude-LML
# prelude-lml
- Subscribing plugin pcre[default]
- Monitoring /var/log/messages through pcre[default]
- Monitoring /var/log/auth.log through pcre[default]
- Monitoring /var/log/clamav/clamd.log through pcre[default]
- Monitoring /var/log/mail/mail.log through pcre[default]
- Monitoring /var/log/apache2/access_log through pcre[default]
- pcre plugin added 344 rules.
- Connecting to 127.0.0.1:5554 prelude Manager server.
- TLS certificate: server certificate is trusted.
- TLS authentication succeed with Prelude Manager.

OR

# /etc/init.d/prelude-lml start
 * Starting prelude-lml......                                             [ ok ]

You can test the HIDS by tailing Prelude's log file, while purposely failing a login attempt in another shell:

Code: Testing Prelude-LML
# tail -f /var/log/prelude.log

You will see, among lots of other things, something like this:

File: /var/log/prelude.log
*** Additional data within the alert  ******************************************
* Log received from: /var/log/auth.log
* Original Log:
Jul  1 19:03:56 <hostname> sshd(pam_unix)[23693]: authentication failure;
logname= uid=0 euid=0 tty=ssh ruser= rhost=localhost  user=<your username>
*
********************************************************************************

Setting up Snort

As of Prelude 0.9, Snort has replaced the now deprecated Prelude-NIDS, a product developed in Europe by the Prelude team which leveraged Snort rules. Since at the core, the rules being used were the same, the separate NIDS engine became unnecessary. At the same time, Snort provides a very modern and fully compatible framework, with rule updates via Oinkmaster and either registration (mainstream updates) or paid subscription (concurrent updates) with Snort. For most implementations, a free registration provides everything you need. If considering a production enterprise deployment, I would highly recommend a subscription in order to detect the very latest threats.


Configuration

Edit snort.conf in your new location, change settings as needed (you probably may want to change HOME_NET variable, and tune preproccessors, path to the rules (by default it is '../rules', replace it with /etc/snort/rules or smth)).

Edit /etc/conf.d/snort and set the interface(s) to listen on.

In order to enable Snort to communicate with PreludeManager, activate the following section in snort.conf:

output alert_prelude: profile=snort


Registering Snort profile

You now you need to create snort profile with a command like:

$ prelude-adduser register snort "idmef:w admin:r" <manager address> --uid X --gid X

and follow the instructions. If the registration is successeful - you are ready to test your installation. please check RegisteringASensor for more details about sensors registration.


Running Snort

# snort -c /etc/snort/snort.conf -i eth1

OR

#/etc/init.d/snort start
 

(9/13/08) You may need to change ownership of the snort profile directory before snort will start, as the init scripts run it as user snort by default:

chown -R snort:snort /etc/prelude/profile/snort/
chown -R snort:snort /var/lib/spool/prelude/snort/

See the snort manual pages for more options.

(to be completed)

Running and Managing Prelude

The startup sequence for Prelude should always start with Prelude-Manager, and then any configured Sensors such as Prelude-LML, Snort, etc.

Code: Starting IDS Daemons
# /etc/init.d/prelude-manager start
 * Starting prelude-manager......                                                          [ ok ]
# /etc/init.d/prelude-lml start
 * Starting prelude-lml......                                                              [ ok ]
# /etc/init.d/snort start
 * Starting snort...                                                                       [ ok ]

More than likely, you will want to add these daemons to your default run-level:

Code: Automating Daemon Startup
# rc-update add prelude-manager default
# rc-update add prelude-lml default
# rc-update add snort default

Setting up Prewikka

We have already emerged Prewikka, now we just need to configure it properly.

Creating the Prewikka Database

Using your favorite method, create a MySQL database named prewikka:

Code: Creating Prewikka Database
# mysql -u root -p
Enter password:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 303 to server version: 4.0.22-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> CREATE database prewikka;
Query OK, 1 row affected (0.05 sec)

We also need to add a prewikka user with permissions on this new database, and exit out of the mysql client application. Be sure to choose an appropriate password, as you will need to use it again:

Code: Adding Database User Permissions
mysql> GRANT ALL PRIVILEGES ON prewikka.* TO prewikka@'localhost' IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.02 sec)

mysql> exit
Bye

Lastly, let's add the default Prewikka tables to this new database, using the username and password we just defined above:

Code: Adding Prewikka Tables to the Database
# mysql -u prewikka prewikka -p < /usr/share/prewikka/database/mysql.sql
Enter password:

Configuring Prewikka

Prewikka is configured via the prewikka.conf file, where one defines base web interface settings (like Company Name), the path to crucial tools, and the connection parameters for both the Prelude and Prewikka databases.

Code: Create directory
nano -w /etc/prewikka/prewikka.conf
File: /etc/prewikka/prewikka.conf
[interface]
software: Prewikka
place: YOUR COMPANY NAME
title: Prelude Management

[host_commands]
whois: /usr/bin/whois $host
traceroute: /usr/sbin/traceroute $host

[idmef_database]
type: mysql
host: localhost
user: prelude
pass: password
name: prelude

[database]
type: mysql
host: localhost
user: prewikka
pass: password
name: prewikka

[log stderr]

[auth loginpassword]
expiration: 60

Testing Prewikka

In order to test the fruits of your labor, you may try starting up Prewikka from the command-line, then check from a web browser by pointing to that server on port 8000 or http://localhost:8000. The default login user/password is 'admin'. Remember to change this password after you first login:

Code: Testing Prewikka
# /usr/bin/prewikka-httpd

Creating Prewikka Virtual Host

One of the best ways to setup the Prewikka console is via an Apache virtual host. This can be done by editing your Apache vhosts.conf file, to include the following definition:

File: /etc/apache2/conf/vhosts/vhosts.conf
<VirtualHost IP.ADD.RE.SS:80>
        ServerName prewikka.domain.tld
        ErrorLog /var/log/apache2/error_log
        CustomLog /var/log/apache2/access_log combined
        <Location "/">
                AllowOverride None
                Options ExecCGI
                <IfModule mod_mime.c>
                        AddHandler cgi-script .cgi
                </IfModule>
        Order allow,deny
        Allow from all
        </Location>
Alias /prewikka/ /usr/share/prewikka/htdocs/
ScriptAlias / /usr/share/prewikka/cgi-bin/prewikka.cgi
</VirtualHost>

Please be sure to use a ServerName that is in your DNS, restart Apache and test by browsing your chosen ServerName.

Creating Prewikka Apache2 Alias without doing Virtual Host

If you don't want to create a virtual Host or if you haven't the posibility to change necesarry DNS-Settings you can create an Alias for Prewikka:

File: /etc/apache2/modules.d/98_prewikka.conf

Alias /prewikka/prewikka/ /usr/share/prewikka/htdocs/
ScriptAlias /prewikka/ /usr/share/prewikka/cgi-bin/prewikka.cgi
<Directory /usr/share/prewikka/htdocs/>
    Options None
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
<Directory /usr/share/prewikka/cgi-bin/>
    AllowOverride None
    Options ExecCGI
    <IfModule mod_mime.c>
        AddHandler cgi-script .cgi
    </IfModule>
    Order allow,deny
    Allow from all
</Directory>

Make shure you have Include /etc/apache2/modules.d/*.conf in your httpd.conf. Use http://yourhostname/prewikka/ to connect. Don't forget the trailing / !!!

Using Prewikka with LightTPD

Here is a simple sample configuration to use Prewikka with lighty :

File: /etc/lighttpd/lighttpd.conf
$HTTP["host"] == "prewikka.domain.tld" {
    server.document-root = "/usr/share/prewikka/htdocs/"
    alias.url = (
        "/prewikka/" => "/usr/share/prewikka/htdocs/",
        "/" => "/usr/share/prewikka/cgi-bin/prewikka.cgi"
    )
    dir-listing.activate = "disable"
    cgi.assign = ( ".cgi" => "/usr/bin/python" )
}
Note: Make sure you have mod_cgi enable with a line like : server.modules += ("mod_cgi").

This could be easly adapted to use SSL (like I did in fact) using that instead :

File: /etc/lighttpd/lighttpd.conf
$SERVER["socket"] == ":8000" {
    ssl.engine  = "enable"
    server.name = "prewikka.domain.tld"
    ssl.pemfile = "/path/to/your/ssl/file.pem"
    server.document-root = "/usr/share/prewikka/htdocs/"
    alias.url = (
        "/prewikka/" => "/usr/share/prewikka/htdocs/",
        "/" => "/usr/share/prewikka/cgi-bin/prewikka.cgi"
    )
    dir-listing.activate = "disable"
    cgi.assign = ( ".cgi" => "/usr/bin/python" )
}

Credits

This document was compiled in less than 24 hours from initial conception, relying heavily on the Official Gentoo Documentation Project. Namely, Gentoo Linux Documentation -- Prelude Intrusion Detection System by Zack Gilburd, which details Prelude 0.8 installation and configuration and as been vital in a number of prior Prelude deployments.

If Mr. Gilburd and Gentoo wish to leverage this How-To in updating their official documentation to reflect changes in Prelude 0.9, you are most welcome to do so, as my intention with this document is to share back with the community in any way possible.

The LightTPD configuration was made (and inserted here) by Ludovic Magerand.

Works Cited

Disclaimer

The content of this document serves the purpose of aiding those in need of assistance, with limited IDS knowledge, but with some level of understanding in installing and configuring Linux applications.

Further, this document may contain the work and words of those who have come before me, as appropriately reflected under "Works Cited". There are no copyrights, patents, or any other forms of content protection associated with this document.

Retrieved from "http://www.gentoo-wiki.info/Prelude"

Last modified: Sun, 21 Sep 2008 05:40:00 +0000 Hits: 35,206