Table Of Contents

Previous topic

Requirements

Next topic

Baruwa on Centos/RHEL

This Page

Installation

Install Baruwa

Download the Baruwa source and untar it:

# tar xzvf baruwa-<version>.tar.gz
# cd baruwa-<version>

Make sure you have the required packages installed then proceed. The following commands should be run as a privileged user.

Create the database:

# mysqladmin -u root -p create baruwa

Create a Mysql user for baruwa

Run the command from the mysql prompt:

mysql> GRANT ALL ON baruwa.* TO baruwa@localhost IDENTIFIED BY '<password>';
mysql> flush privileges;

Install Baruwa

Run:

# python setup.py install

Configure Baruwa

Configure the Baruwa settings

Edit the Baruwa settings.py file:

# baruwa_path=$(python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")
# vi $baruwa_path/baruwa/settings.py

Set the following options:

DATABASE_NAME = 'baruwa'
DATABASE_USER = 'baruwa'
DATABASE_PASSWORD = '<password>'
DATABASE_HOST = 'localhost'

Populate the database and create admin user:

# $baruwa_path/baruwa/manage.py syncdb

The syncdb command populates your SQL database and allows you to create the admin user.

Edit the settings.py file and make configuration changes to suit your site.:

# vi $baruwa_path/baruwa/settings.py

Link to the dojo toolkit:

# ln -s /path/to/dojo $baruwa_path/baruwa/static/js
# ln -s /path/to/dojox $baruwa_path/baruwa/static/js
# ln -s /path/to/dijit $baruwa_path/baruwa/static/js

Configure the Web server

Apache/mod_wsgi

Make sure mod_wsgi is enabled, uncomment the following line in /etc/httpd/conf.d/wsgi.conf:

LoadModule wsgi_module modules/mod_wsgi.so

Use the sample configuration provided (extras/baruwa-mod_wsgi.conf) as a template. Copy to your apache configuration directory usually /etc/httpd/conf.d

Make sure that your apache is configured for name based virtual hosting such that you can run other sites on the same box if you wish to.

Edit /etc/httpd/conf.d/baruwa-mod_wsgi.conf and set ServerName to the hostname you will use to access baruwa

Restart apache for the configuration to take effect.:

# /etc/init.d/httpd reload

Lighttpd

Use the generic django instructions at http://docs.djangoproject.com/en/1.1/howto/deployment/fastcgi/#lighttpd-setup

Nginx

Use the nginx instructions at http://wiki.nginx.org/NginxDjangoFastCGI

Cherokee

Use the cherokee cookbook instructions at http://www.cherokee-project.com/doc/cookbook_django.html

Configure MailScanner

Edit and install BaruwaSQL.pm

Edit extras/BaruwaSQL.pm and set the variables:

my ($db_name)   = 'baruwa';
my ($db_host)   = 'localhost';
my ($db_user)   = 'baruwa';
my ($db_pass)   = '<password>';
my ($sqlite_db) = "/var/spool/MailScanner/incoming/baruwa.db";

Copy it to the MailScanner custom functions directory:

# confdir=$(/usr/sbin/Quick.Peek 'Custom Functions Dir' /etc/MailScanner/MailScanner.conf)
# cp extras/BaruwaSQL.pm $confdir/

Next edit the MailScanner config file /etc/MailScanner/MailScanner.conf, you need to make sure that the following options are set:

Quarantine User = exim (Or what ever your "Run As User" is set to)
Quarantine Group = apache (or your webserver user if not apache)
Quarantine Permissions = 0660
Quarantine Whole Message = yes
Quarantine Whole Message As Queue Files = no
Detailed Spam Report = yes
Include Scores In SpamAssassin Report = yes
Always Looked Up Last = &BaruwaSQL

To actually quarantine and later process messages with in baruwa, set ‘store’ as one of your keywords for the “Spam Actions” and “High Scoring Spam Actions” MailScanner options

Integrate SQL Blacklists/Whitelists

Edit extras/BaruwaLists.pm and set the variables:

my ($db_name) = 'baruwa';
my ($db_host) = 'localhost';
my ($db_user) = 'baruwa';
my ($db_pass) = '<password>';

Copy it to the MailScanner custom functions directory:

# confdir=$(/usr/sbin/Quick.Peek 'Custom Functions Dir' /etc/MailScanner/MailScanner.conf)
# cp extras/BaruwaLists.pm $confdir/

Next edit the MailScanner config file /etc/MailScanner/MailScanner.conf, and set the following options:

Is Definitely Not Spam = &BaruwaWhitelist
Is Definitely Spam = &BaruwaBlacklist

Integrate per user settings

Edit extras/BaruwaUserSettings.pm and set the variables:

my ($db_name) = 'baruwa';
my ($db_host) = 'localhost';
my ($db_user) = 'baruwa';
my ($db_pass) = '<password>';

Copy it to the MailScanner custom functions directory:

# confdir=$(/usr/sbin/Quick.Peek 'Custom Functions Dir' /etc/MailScanner/MailScanner.conf)
# cp extras/BaruwaUserSettings.pm $confdir

Edit the MailScanner config file /etc/MailScanner/MailScanner.conf, and set the following options:

Required SpamAssassin Score = &BaruwaLowScore
High SpamAssassin Score = &BaruwaHighScore

If you want users to be able to turn off spam checks for their own profiles, set the following options:

Spam Checks = &BaruwaShouldScan

Apply configuration changes

Restart up MailScanner:

# /etc/init.d/MailScanner restart

Testing

Verify that is working

Check your log files you should see

Baruwa SQL logger:

Aug  9 18:58:27 localhost MailScanner[8470]: Logging message 1OiVg7-0003zS-9s to Baruwa SQL
Aug  9 18:58:27 localhost MailScanner[11052]: 1OiVg7-0003zS-9s: Logged to Baruwa SQL

Baruwa Lists:

Aug 9 18:32:42 localhost MailScanner[27260]: Starting Baruwa whitelists
Aug 9 18:32:42 localhost MailScanner[27260]: Read 6 whitelist items
Aug 9 18:32:42 localhost MailScanner[27260]: Ip blocks whitelisted 192.168.1.0/24 192.168.2.0/24 xxx.xx.xxx.0/26

Baruwa User settings:

Aug 9 15:00:03 localhost MailScanner[25708]: Baruwa - Populating spam score settings
Aug 9 15:00:03 localhost MailScanner[25708]: Read 1 spam score settings
Aug 9 14:59:53 localhost MailScanner[25668]: Baruwa - Populating high spam score settings
Aug 9 14:59:53 localhost MailScanner[25668]: Read 1 high spam score settings

Point your browser to http://hostname_used login with admin user and password and start working. You can now use the interface to add users, domains and process messages, etc etc.