.TH assp 8 "May 16, 2005" "" "ASSP"
.SH NAME
assp \- Anti-Spam SMTP Proxy
.SH SYNOPSIS
assp [ base_dir [ admin_port ] ]
.PP
%%RC_SCRIPT%% start|stop|restart|status
.SH DESCRIPTION
.I "Anti-Spam SMTP Proxy"
is a spam filter that sits on port 25 in front
of your regular SMTP server
.RI ( exim (8),
.IR postfix (8),
.IR qmail (8),
.IR sendmail (8),
etc).
.PP
.I ASSP
relays the SMTP dialog between an incoming client and your SMTP
server, intercepting the dialog as needed.
.I ASSP
performs a number of configurable spam checks and on detecting
a spam message provides an immediate 5xx SMTP error code back to
the client.  Non-spam messages are passed to your regular SMTP server
for further processing and delivery.  Spam messages can be blocked
from delivery or subject-tagged and delivered.
.PP
.I ASSP
offers:
.RS
.IP - 2m
a whitelist of known good senders
.IP -
Bayesian checks on message headers and contents
.IP -
local user validation using RFC822 checks, flat lists or LDAP lookup
.IP -
relay denial
.IP -
HELO checking
.IP -
SPF (Sender Policy Framework) checking
.IP -
DNSBL (DNS Block List) checking using many block list services
.IP -
delaying of messages from unknown senders
.IP -
Virus detection
.RE
.PP
.I ASSP
is entirely administrator-managed and is almost totally
transparent to users.  In particular, users do not need to
manage
.IR procmail (1)
spam filters or challenge-response systems of their own.
.PP
The
.I base_dir
argument gives the name of
.IR ASSP 's
working directory.  If omitted
it defaults to the current directory.
.PP
.I ASSP
is configured using a web interface.
The
.I admin_port
argument gives the network port for accessing
.IR ASSP 's
configuration menu.  It defaults to 55555.
To access the configuration menu, start
.I ASSP
and then point your browser at
.IR http://localhost:55555 .
The default admin password is
.IR nospam4me .
.PP
Initial setup of
.I ASSP
involves several steps:
.IP 1.
Review
.IR ASSP 's
configuration options and adjust as necessary.  Be sure
to change the admin password.  By default
.IR ASSP 's
filters are all set to
.I "Test Mode"
which means all messages will be delivered to their recipients.
Leave everything in Test Mode for now.
.IP 2.
Decide on which network port(s)
.I ASSP
will listen and on which your normal SMTP server will listen.
Typically,
.I ASSP
will listen on port 25 and your SMTP server will be moved to
something like port 125 or 587.
.IP 3.
Reconfigure your SMTP server to its new port.
.IP 4.
Reconfigure
.I ASSP
to port 25 and restart
.IR ASSP .
Since
.I ASSP
is in Test Mode, all messages will be delivered to their
recipients.
.IP 5.
Arrange for all users' outbound email to be processed by
.IR ASSP .
This is necessary for
.I ASSP
to be able to automatically maintain its whitelist.
If a user's MUA uses SMTP to port 25, this will happen
without further intervention.  If an MUA invokes
.I /usr/sbin/sendmail
and you're using the default
.IR sendmail (8)
configuration with submit queues, this will also happen
without further intervention.  Otherwise, you need to take
whatever steps are necessary for each MUA that's being used.
.IP 6.
Optionally, send a message containing a list of email addresses
that you want to receive email from to
.IR asspwhite@yourdomain.com .
Have all your users do this.  This will seed
.IR ASSP 's
whitelist.  Messages from senders on the whitelist will
never be blocked.  An address can be removed from the whitelist
by emailing it to
.IR asspnotwhite@yourdomain.com .
.IP 7.
To set up the Bayesian word list filtering, do the following:
.RS
.IP 7a.
Ensure some senders' addresses are in the whitelist, either
by sending email to them or by seeding the whilelist as described
above.
.IP 7b.
Allow some time (could be hours or days, depending on the
volume of email you receive) for enough email to collect.
Mesages from senders on the whitelist will be copied in the
.I notspam
directory.  Other messages will either be passed or be copied
in the
.I spam
directory based on word scores in the initial greylist.
.IP 7c.
Periodically examine the messages in
.IR ASSP 's
.IR notspam
and
.I spam
directories to make sure they're sorted correctly.  Move
any to the other directory as needed.  If you're unsure about
a particular message, just delete it.
Also, examine
.I maillog.txt
for information about what
.I ASSP
is doing.
.IP 7d.
After about 400 messages have collected, filtering mode can
be enabled.
In the
.I %%ASSP_HOME%%
directory, run the
.I %%PREFIX%%/lib/assp/rebuildspamdb.pl
script to create the spam database from the logged messages.
This is the part where the Bayesian filter ``learns'' about
the words in your
.I spam
and
.I notspam
collections.
.IP 7e.
Uncheck the appropriate Test Mode box in
.IR ASSP 's
configuration menu to enable message blocking.
.IP 7f.
It is recommended that the
.I UseSubjectsAsMaillogNames
configuration option is eventually unchecked and that the
script
.I %%PREFIX%%/lib/assp/move2num.pl
is run in the
.I %%ASSP_HOME%%
directory.  This causes messages to be stored with numeric
filenames, and overwritten after some time.  The benefits
of this are that the size of the stored messages will
be limited and that older messages are removed from the
collection.  This keeps the Bayesian word list current.
This need not be done immediately; you can do this once
you no longer feel the need to examine the spam messages
in detail.
.RE
.IP 8.
.IR ASSP 's
other filtering options (local user validation, RFC822
conformance, client HELO validation, SPF validation,
the Delay List,
the use of DNSBLs and the ClamAV virus checker)
can be enabled by examining and adjusting their
configuration options as needed and then unchecking the
appropriate Test Mode boxes.
.PP
Once
.I ASSP
is live, users should forward a copy of any spam message that
still gets through to
.I asspspam@yourdomain.com
in order to add it to
.IR ASSP 's
spam database.  Any non-spam that was mis-classified as spam
can be copied to
.IR asspnotspam@yourdomain.com .
.PP
The
.I rebuildspamdb.pl
script needs to be re-run periodically to update the spam database
from the latest logged messages.  There is a 
.IR periodic (8)
script that will do this overnight.
.PP
For full details of using
.IR ASSP ,
see the
.I ASSP
website and documentation.
.SH "STARTING ASSP AT BOOT TIME"
The
.I %%RC_SCRIPT%%
script is run automatically at system boot time.
Several variables can be set in
.I /etc/rc.conf
to control the behavior.
.IP assp_enable
set to
.I "YES"
to start ASSP at boot time
.IP assp_flags
passed to the ASSP client, default is
.I assp_flags="%%ASSP_HOME%%"
.IP assp_logexpire
used by nightly script to expire logs, default is
.I assp_logexpire="45"
days
.SH FILES
.IP %%ASSP_HOME%%
location of ASSP config file, log file and spam databases
.IP %%ASSP_HOME%%/notspam
copies of non-spam messages received
.IP %%ASSP_HOME%%/spam
copies of spam messages received
.IP %%ASSP_HOME%%/errors/{notspam,spam}
messages forwarded to asspnotspam@ and asspspam@ addresses
.IP %%ASSP_HOME%%/maillog.txt
.IR ASSP 's
log file
.IP %%PREFIX%%/lib/assp/freshclam.sh
script to update virus definitions
.IP %%PREFIX%%/lib/assp/move2num.pl
script to rename stored messages to numeric filenames
.IP %%PREFIX%%/lib/assp/rebuildspamdb.pl
script to update spam database
.IP %%PREFIX%%/etc/periodic/daily/510.assp
nightly script to invoke
.I rebuildspamdb.pl
and
.IR freshclam.sh .
.SH "SEE ALSO"
.IR procmail (1),
.IR assplog (8),
.IR exim (8),
.IR postfix (8),
.IR qmail (8),
.IR sendmail (8),
%%PREFIX%%/share/doc/assp/ASSP Documentation.htm
.br
http://assp.sourceforge.net/
