Prerequisites ------------- In order to get gnarwl compiled and working, you need the following: - gcc (v2.95.3) - libgdbm (v1.8.0) - openldap2 (v2.0.23) - MTA (postfix recommended) - GNU make, groff, gzip - Linux (v2.4.18) Of course it may work with a different setup, but this is what gnarwl was developed/tested with. If you (don't) get it to work on an alternative platform, please contact me. Feedback is always welcome. Building and installing GNARWL ------------------------------ Starting with version 3.0, there are two ways of getting gnarwl installed. * Installing from source * tar -zxf gnarwl-.tgz cd gnarwl-.tgz ./configure make make install make perm This will install the program under /usr/local (NOTE: "make perm" is optional, but strongly recommended, as it creates a systemaccount for gnarwl and chowns the according files). * Using RPM * Building RPM packages requires a little more work, but is well worth it. It starts the same way as installing from source: tar -zxf gnarwl-.tgz cd gnarwl-.tgz ./configure make This will create the specfile in the data directory, as well as verify, that your system is able to build gnarwl at all. Now locate your rpm base dir (usually somewhere under /usr/src), and copy the the specfile to $RPMBASE/SPECS and the original gnarwl tarball to $RPMBASE/SOURCES. The command to build the package is "rpm -ba ". And the resulting package may be installed using "rpm -i package.rpm". * Configuring * No matter which installation method you choose, you still have to edit the gnarwl.cfg file afterwards (at least the searchbase must be set) and should check, that the blacklist is filled proberly (you should put all the addresses of systemaccoutns herin, as well as any emailaddress, that is shared by several users). Configuring LDAP ---------------- To cope with vacations, LDAP requires the respective objectclasses. It is recommended to install the included ISPEnv.schema file. In case you are using OpenLDAP version 2, just copy it from the docs directory to wherever your other *.schema files are located. Add the corresponding "include" line to your slapd.conf and restart the LDAP server. In case this is not an option for you: Gnarwl does not depend on a certain schema, as it doesn't use any hardcoded attribute names. You may (ab)use any other schema you like. Configuring the Mailserver --------------------------- A complete guide to configuring your mailsystem is beyond the scope of this document (refer to the manuals of your MTA), so this section will only describe what has to be done, in order to integrate gnarwl in an an already working mailsystem. It is assumed, you did not skip the "make perm" step, that is, a local account named "gnarwl" does exist. The basic idea is to get your MTA to pipe a copy of every received mail (well, at least those, that could be subject to autoresponding) through to gnarwl. There are several ways to do this (largely depending on which MTA you use): * Platform independant solution * Edit your alias/virtual lookup table, so each mailaddress contains a forward to the local user "gnarwl". The ~gnarwl/.forward file, generated by "make install" will then take care of piping the mail through to gnarwl. Another way is to utilize gnarwl in the same fashion as vacation(1), but this of course requires homedirectories, and therefore somehow beats the whole idea. * Postfix * The quick and dirty way: Simply add "always_bcc=gnarwl" to your main.cf and restart the mailserver. A more sophisticated approach (only works for virtual accounts): 1. Define a new transport: /etc/postfix/transports autoreply.domain.com gnarwl: 2. Create transport.db file and include in postfix config: /etc/postfix/main.cf transport_maps= hash:/etc/postfix/transport 3. Add to /etc/postfix/master.cf: gnarwl unix - n n - - pipe flags=F user=gnarwl argv=/usr/local/bin/gnarwl -v $sender $recipient 4. Restart postfix 5. Define an alias for every user, who may use the autoresponder: user1@domain.com -> user1@domain.com user1@autoreply.domain.com * Sendmail * Sorry, no info available at this time. * Exim * Sorry, no info available at this time. * Qmail * Sorry, no info available at this time. Troubleshooting ---------------- Ok, you followed the instructions in this file, but somehow it didn't work out, right? Ok, first things first, this sections deals with setting gnarwl up, not with compiling. If the later is your problem and you can't figure it out (even if you can), you should contact me, so I can fix the source. Well, there are numerous ways, to goof up, installing gnarwl (even happens to me, and I worte that stuff ;-) ). First you should su(1) to the user, gnarwl is supposed to run as (default is usually "gnarwl"). Now check, if gnarwl would be able to access it's own config and database files. If the file permissions are set up correctly, set the loglevel to 3 (debug) in gnarwl.cfg, call gnarwl using the -a and -s commandline switches (use meaningfull emailaddresses here). Check your maillog for "CRIT" and "WARN" messages. If none show up, try using ldapsearch, to see if there are actually entries in your database, that could be used for autoresponding.