ASSP: Anti-Spam SMTP Proxy

(Category) ASSP Documentation
The Anti-Spam SMTP Proxy (ASSP) Server project aims to create an open source platform-independent SMTP Proxy server which implements whitelists and Bayesian filtering to rid the planet of the blight of unsolicited email (UCE). UCE must be stopped at the SMTP server. Anti-spam tools must be adaptive to new spam and customized for each site’s mail patterns. This free, easy-to-use tool works with any mail transport and achieves these goals requiring no operator intervention after the initial setup phase.
2003-Jun-06 12:00pm jhanna
Subcategories:
(Category) Getting Started
(Category) Problems & Solutions
(Category) Other Tools Included With ASSP
(Category) ASSP Changelog
(Category) HOWTOs and notes for specific MTAs and OSes

Answers in this category:
(Answer) Why ASSP?
(Answer) Who is it for?
(Answer) What features make ASSP great?
(Answer) What are ASSP's configuration options?
(Answer) What is ASSP's license?
(Category) Who will win the ASSP Homepage Redesign contest?

[New Answer in "ASSP Documentation"]
2003-Jun-24 1:40pm
(Category) (Category) ASSP Documentation :
Getting Started
Discussion of issues related to getting ASSP running.
2003-Jun-06 12:04pm jhanna
Subcategories:

Answers in this category:
(Answer) Requirements
(Answer) Get a working Perl
(Answer) Download and unpack the ASSP scripts.
(Answer) Optionally download the sample spam and non-spam databases.
(Answer) Add your own site’s spam and non-spam to the collections.
(Answer) Run the ASSP program and point your browser to http://127.0.0.1:55555/.
(Answer) Rebuild your Bayesian database.
(Answer) Possibly change your existing SMTP server’s port.
(Answer) Test that it is working.
(Answer) Schedule regular updates for the Bayesian and DNSBL databases.
(Answer) Instructions for use for your end users.
(Answer) Periodic Maintenance
(Answer) When I try to send mail I get the error "relaying not allowed". What do I do?
(Answer) When people try to email me they get the message, "Relaying not allowed." What do I do?
(Answer) How can I learn Regular Expressions?
(Answer) How do I use the email interface?
(Answer) What command-line options does ASSP support?

[New Answer in "Getting Started"]
2003-Jul-16 3:23pm
(Answer) (Category) ASSP Documentation : (Category) Getting Started :
Requirements
To run the ASSP you must choose where it will run. ASSP is not CPU intensive, but it can use a significant chunk of RAM to run effectively: the Bayesian and DNSBL databases cache lookups and 10k of each incoming message must be cached prior to passing on to your mail transport’s SMTP server. Our install folder including the spam and non-spam databases takes 250mb on disk.

If you can change the port of your mail transport’s SMTP server to something besides 25 you can run ASSP on the same server as your mail transport. If you want to run ASSP on a separate server that’s ok too, so long as you have a fast network connection from your ASSP server to your SMTP server.

Periodically you’ll need to rebuild the Bayesian database based on your spam and non-spam databases. This is very CPU and memory intensive. It takes about 5 minutes to run on our server, but could be slower if you have less ram, slower disks, or a slower CPU.

ASSP is implemented in Perl, so you’ll need a working Perl on your ASSP server. See http://www.cpan.org/ports/index.html for Perl for your computer. ASSP uses only IO::Select and IO::Socket which come preinstalled on all Perls. If you plan to run it as a service in Windows you’ll want Win32::Daemon from http://www.roth.net/perl/Daemon/. Install Win32-Daemon this way:

   perl ppm.pl install http://www.roth.net/perl/packages/win32-daemon.ppd

To filter spam the proxy uses a modification of the Bayesian statistical approach outlined in articles referenced here: http://www.spamarchive.org/more_community_resources.htm, but in short it looks at words and phrases used in unsolicited email, and words and phrases used in your site’s normal email traffic. When a new message arrives it compares the words and phrases in it with those from the statistical comparison, combines the individual probabilities and decides if this message is more like unsolicited email or like normal email.

For that to work it needs collections of spam and non-spam messages. There’s folders [directories] (specified in the configuration) which contain these collections. It works best if there are between 5000 and 10000 unique messages in each collection.

This program also makes use of a whitelist – a list of email addresses which would generally never send you spam. It maintains this list automatically.

Because the ASSP server becomes the public interface to your email system, it also must enforce email relaying – an open email relay is a source of great joy to spammers, young and old. ASSP also recognizes authentication confirmation from your mail transport’s SMTP server.

2003-Jul-09 3:31pm jhanna

[Append to This Answer]
2003-Jul-09 3:31pm
(Answer) (Category) ASSP Documentation : (Category) Getting Started :
Get a working Perl
If you don’t have a working Perl, go to http://www.cpan.org/ports/index.html (or www.activeperl.com for Windows) and follow the instructions for installing Perl on your system. If you don’t know if you have a working Perl, go to your command line and type “perl –v” – if you see the Perl version, then you have Perl. If you get an error, you probably need to install it.

If you plan to run it as a service in Windows you’ll want Win32::Daemon from http://www.roth.net/perl/Daemon/. Install Win32-Daemon this way:

   perl ppm.pl install http://www.roth.net/perl/packages/win32-daemon.ppd

2003-Jun-06 12:34pm jhanna
[Append to This Answer]
2003-Jun-06 12:34pm
(Answer) (Category) ASSP Documentation : (Category) Getting Started :
Download and unpack the ASSP scripts.
Go to http://sourceforge.net/projects/assp/ and find the latest version to download. Then unzip it into the folder of your choice.

Security note: Because the email database is stored without encryption you’ll want to consult your local security expert to find the best way to protect your user’s confidential emails. It probably involves setting the access rights to the email database file to only allow access to administrators and the assp process.

If you want to use the blacklist support you’ll need working bunzip2 (bzip2 for windows) from http://sources.redhat.com/bzip2/ -- this comes pre-installed in most modern *nix environments. And you’ll need wget (or fetch or an equivalent). Wget is standard in Linux, available as a port in FreeBSD. Go to http://www.interlog.com/~tcharron/wgetwin.html for wget for Windows or http://www.gnu.org/software/wget/wget.html for anybody else. To make sure everything is working try running the updatednsbl batch file or shell script. It should download the most recent data from openrbl.org, decompress it, and create the dnsbl file which should be at least a megabyte in size.

In your assp directory you must create directories like this:

 assp/spam
 assp/notspam
 assp/errors
 assp/errors/spam
 assp/errors/notspam

If you change these configuration settings you'll need to delete / create new directories.
2003-Jul-16 1:41pm jhanna

[Append to This Answer]
2003-Jul-16 1:41pm
(Answer) (Category) ASSP Documentation : (Category) Getting Started :
Optionally download the sample spam and non-spam databases.
These are also located at http://sourceforge.net/projects/assp/. In Windows you’ll need a tool to de-tar-gz the sample set. Winzip does that as do others. These are helpful to get you started with your spam and non-spam databases, although I’d recommend adding a healthy chunk of your own spam and non-spam to the lists before starting.
2003-Jun-06 12:34pm jhanna
[Append to This Answer]
2003-Jun-06 12:34pm
(Answer) (Category) ASSP Documentation : (Category) Getting Started :
Add your own site’s spam and non-spam to the collections.
This is what makes ASSP great – it totally customizes itself for your own spam.

You should have one email message per file and the files can be named anything you want. Files should be plain text with the headers and bodies together. Put spam in the spam folder and non-spam in the nonspam folder. If you have mbox files there is a tool here: http://batleth.sapienti-sat.org/projects/mb2md/ to convert mbox format files to maildir files which work correctly with ASSP.

Actually more critical than your spam database is your collection of good email. Remember to include order confirmation emails from Ameritrade, Amazon, or Travelocity, or other online vendors you use – these are often some of the most difficult emails to sift from the spam. I put copies of these in my errors/notspam directory so they don’t get rotated out of the non-spam collection. If you expect email in different languages, be sure you have appropriate samples of each of the languages in use at your site. Again, you need one email in each file in the database directory.

Once everything is running smoothly you can use the move2num.pl program to make your collections’ names uniform.
2003-Jun-11 9:47am jhanna

[Append to This Answer]
2003-Jun-11 9:47am
(Answer) (Category) ASSP Documentation : (Category) Getting Started :
Run the ASSP program and point your browser to http://127.0.0.1:55555/.
Run the program this way (starting in your assp directory): perl assp.pl

Point your browser to http://127.0.0.1:55555/ -- put anything you like in the username and use the password nospam4me to connect. If everything is working correctly you will see a beautifully formatted configuration screen with all of ASSP’s fabulous features spelled out for you in painful detail. Simply click the options you want, type a few customizations if you like and you’re on your way.

At a minimum you’ll want to change values for password, acceptAllMail, localDomains, spamaddresses, and SpamError. Look, the password for your server is posted in bold on the internet for EVERYONE to see, so if you don’t change it, you deserve what you get. Also remember to press Enter or click the button at the bottom to register your changes – simply clearing a checkbox doesn’t send the change to ASSP.

If you run Microsoft Exchange, Lotus Notes, or a similar system that collects email from users local through something besides SMTP, then you’ll need to use a relay host or “smart host” to relay your mail. ASSP needs this to be able to automatically maintain your whitelist and non-spam email collection. Use the relayHost and relayPort config settings to do this; relayHost should have the hostname:port of your ISP’s mail server, eg mail.earthlink.net:25. The relayPort is a port that ASSP will use to relay your server’s outgoing email – you can use any port you like, but it should be one protected from external access by your firewall. If you used port 225 (for example) you would then tell your server (Exchange, Notes, etc.) to use the ASSP server, port 225 as its smarthost / relay host, ie 127.0.0.1:225.

You’ll want to start with TestMode=1 for a while. Then watch your email subjects: when all your spams have [SPAM] on the subject and none of your nonspams do, you’re ready to clear the TestMode checkbox.

In the config you’ll see spamaddresses – these are addresses of recipients at your site that only receive spam. You can put spambait on your website, or in Usenet posts, but most email administrators find that they continue to receive email for users who have been gone for months (years sometimes). These addresses are useful for filling your spam database, and for mail addressed to multiple recipients, for recognizing spam.

In *nix you’ll want to add it to your local rc scripts and can enable AsADaemon.

In Windows 2000 you’ll want to install it as a service: 1)Check that you have asAService checked in your config; 2)Run the

 perl addservice.pl –i c:\assp\assp.pl c:\assp 
to create the service; 3) Use your service manager to start the service, or do perl addservice.pl –s

2003-Jun-24 1:32pm jhanna
[Append to This Answer]
2003-Jun-24 1:32pm
(Answer) (Category) ASSP Documentation : (Category) Getting Started :
Rebuild your Bayesian database.
Once you have a collection of spam and non-spam, these files must be compiled into a form useful to the ASSP server. This is done by typing:
     perl rebuildspamdb.pl

The program will print a bunch of dots and when it’s done make a file called spamdb – ours is about 8mb. This is the file that ASSP uses to qualify spam or non-spam. It checks every few minutes to see if the spamdb file has been updated, and automatically reloads it when needed.

If you haven’t done so already, run the updatednsbl batch file or shell script. It should download the most recent data from openrbl.org, decompress it, and create the dnsbl file which should be at least a megabyte in size.
2003-Jun-11 9:53am jhanna

[Append to This Answer]
2003-Jun-11 9:53am
(Answer) (Category) ASSP Documentation : (Category) Getting Started :
Possibly change your existing SMTP server’s port.
Consult your mail transport’s documentation on how to do this. The default port is 25, and that is where your ASSP will need to run. If ASSP is running on a separate server then there is no need to change your mail transport’s SMTP port, however, you’ll have to arrange your IP addresses and DNS MX records to point to the ASSP server rather than your message transport’s SMTP server – see http://www.topology.org/linux/mx.html or Google “setting up mx” if you need help doing this.
2003-Jun-11 9:54am jhanna
[Append to This Answer]
2003-Jun-11 9:54am
(Answer) (Category) ASSP Documentation : (Category) Getting Started :
Test that it is working.
Try telnetting to ASSP server’s port 25 (or whatever is on the config screen):
  telnet 127.0.0.1 25

You should get the banner response from your message transport’s SMTP server, but you should also see log entries appearing in the ASSP server’s log file.

Note that you can also test your configuration by setting ASSP to listen on a different port (like 125) and connect to your SMTP server on port 25 and then set your email client to connect to port 125 to send email.
2003-Jun-11 9:57am jhanna

[Append to This Answer]
2003-Jun-11 9:57am
(Answer) (Category) ASSP Documentation : (Category) Getting Started :
Schedule regular updates for the Bayesian and DNSBL databases.
In Windows, go to Control Panel and Scheduled Tasks, then Add New Scheduled Task, and follow the instructions from the wizard. I’ve scheduled mine to run at 3:00am every day:
  perl rebuildspamdb.pl

In *nix you’ll need to create a cron job. Try man cron if you don’t know how.

You’ll also want to schedule regular updates for the openrbl data. There’s a shell script and batch file for this purpose called updatednsbl. We run ours every night, but you could run it twice a week. The data is only updated once a day, so there’s no point in running it more often than that.
2003-Jun-11 9:57am jhanna

[Append to This Answer]
2003-Jun-11 9:57am
(Answer) (Category) ASSP Documentation : (Category) Getting Started :
Instructions for use for your end users.
I send the following information to our email clients so they know how to take best advantage of ASSP’s features. To facilitate spam reporting I have set up an IMAP mailbox to which users can transfer their spam. Our mail transport saves one message per file in an designated folder which I have given read access to ASSP for inclusion in the errors/spam collection. You’ll need to edit this for any site specific instructions for setting up an IMAP account, and for your mail server’s correct addresses.

Instructions for using our spam filter.

Actually, if it doesn't bother you, or you don't get much, just delete it and forget about it. But if you get something that bothers you, or you want to make an effort so that you don't have to delete it next time (it might take a few tries before it stops) here are the instructions to report spam. Note that this only works for your ourhost.com mail -- If you get your email at AOL, Compuserve, or Juno then you can't report your spam.
One-time setup:

 In Outlook or Outlook express Choose the menu: Tools -> Accounts
 Click Add -> Mail
 accept the default display name by clicking Next
 accept the default address by clicking Next
 Choose IMAP from the list of incoming servers
 Incoming mail server is mail.ourhost.com
 Outgoing mail server is mail.ourhost.com
 Account name is reportspam
 Password is spam
 click next
 click finish
 Edit the properties of the mail account you just created (called 10.1.1.99)
 type "Report Spam" in the account name box (to replace 10.1.1.99)
 Clear the checkbox "Include this account when receiving mail"
 click ok
 Close the Accounts box
 You will be prompted if you want to download folders -- choose yes (ok) and
 accept the default (ok again)
 If you have done all that correctly you'll have a new set of folders titled
 "Report Spam"
 
When you receive a spam message that you want to add to the filter, drag it from your inbox to the "report spam" inbox. It should vanish from your inbox.
You've done your duty and added the evil spam to the spam filter's collection.
Just to remind you of the basic operation of our spam filter:
 1) Anyone you email will never have a message blocked.
 2) Never email a spammer -- you validate their address authorizing them to spam us.
 3) Don't forward spam -- it makes the spam filter think we like it.
 4) Report spam by dragging it to the reportspam's user's imap inbox.
 5) The spam filter keeps track of mail we send and spam we receive -- if an 
 incoming message is not from someone we've emailed and it's more like the mail 
 we send than the spam we receive then it gets through. Otherwise it's blocked 
 and the sender gets the message, "Mail appears to be unsolicited -- report 
 errors to postmaster@ourhost.com"
 6) If you become aware that mail you want is being blocked send the sender an 
 email so their mail isn't blocked any more.

2003-Jun-13 3:00pm jhanna
[Append to This Answer]
2003-Jun-13 3:00pm
(Answer) (Category) ASSP Documentation : (Category) Getting Started :
Periodic Maintenance
Once in a while you’ll want to roll over your log file. Do this by stopping the service and renaming the old log file to a new name. The new one will be created automatically when you start the service.

If you receive spam, you can put copies in the errors/spam folder. If you’re aware of non-spam that’s being rejected, you can put a copy in the errors/nonspam folder. (See the configuration for exact locations.)
2003-Jun-11 10:04am jhanna

[Append to This Answer]
2003-Jun-11 10:04am
(Answer) (Category) ASSP Documentation : (Category) Getting Started :
When I try to send mail I get the error "relaying not allowed". What do I do?
Relaying is allowed for IP's that match those in the "Accept All Mail." The "Local Domains" are the domain names that your mail system considers local. AOL.COM though would not be a local domain because your mail handler doesn't manage its mail.

That a mail claims to be from one of your local domains does not allow it to be relayed -- this is easily spoofed and not useful as a security measure. Spoofing an IP address is more complicated in this type of environment, and generally relaying is limited by IP address.

Note that you can add entire groups of addresses: 10. represents 10.1.2.3 or 10.3.2.1 or 10.anything. Similarly, 169.254. will match any IP that starts with those quads.

If your clients dialup or are dynamically assigned from an untrusted pool, then the only relaible way to allow relaying is through AUTHENTECATED smtp, and your mail handler must support this type of authentication, and you must enable it in your clients. ASSP recognizes authenticated connections and allows them to relay.

Not all ISPs will allow their customers to connect to your SMTP port. Many block connections to port 25 (except to their own mail server) to prevent spam.

2003-Jun-26 12:17pm jhanna

[Append to This Answer]
2003-Jun-26 12:17pm
(Answer) (Category) ASSP Documentation : (Category) Getting Started :
When people try to email me they get the message, "Relaying not allowed." What do I do?
For ASSP to recognize incoming mail you must set the "Local Domains" configuration item. For example if your mailserver is configured to receive mail for myhost.com and myfriendshost.com then you should put myhost.com|myfriendshost.com in the Local Domains configuration item.
2003-Jun-26 12:21pm jhanna
[Append to This Answer]
2003-Jun-26 12:21pm
(Answer) (Category) ASSP Documentation : (Category) Getting Started :
How can I learn Regular Expressions?
Try http://www.perldoc.com/perl5.8.0/pod/perlretut.html, http://www.english.uga.edu/humcomp/perl/regex2a.html or http://directory.google.com/Top/Computers/Programming/Languages/Regular_Expressions/Perl/

What is a regular expression? A regular expression is simply a string that describes a pattern. Patterns are in common use these days; examples are the patterns typed into a search engine to find web pages and the patterns used to list files in a directory, e.g., ls *.txt or dir *.*. For ASSP, the patterns described by regular expressions are used to search strings, extract desired parts of strings, and to do search and replace operations.

In basic terms, asd2 will match jjasd2 or asd2jj or jjasd2jj. A . matches any single character, so if you want to match a period put a backslash in front of it: \. Almost all punctuation has special meaning, so you need to put a backslash in front of it, unless you want the special meaning:

 . -- match any single character besides \n
 .* -- match 0 or more characters (not \n)
 .+ -- match 1 or more characters (not \n)
 \d -- match any number
 \w -- match any alpha-numeric or _
 [0-9a-zA-Z_] -- same as \w
 this|that -- match this or that

2003-Jun-26 1:54pm jhanna
[Append to This Answer]
2003-Jun-26 1:54pm
(Answer) (Category) ASSP Documentation : (Category) Getting Started :
How do I use the email interface?
ASSP's email interface is an easy way to add addresses to the whitelist, report spam, or false-positives. To use it you must have it enabeled in the configuration, and have names set for the addresses. The interface only accepts mail addressed to addresses at any of your localdomains, and only from "Accept All Mail" hosts, or authenticated SMTP connections.
 assp-white   -- for whitelist additions
 assp-spam    -- to report spam that got through
 assp-notspam -- to report miscategorized spam

Assuming that your local-domain is mydomain.com, to add addresses to the whitelist, create a message to assp-white@mydomain.com. You can either put the addresses in the body of the message, or as recipients of the message. For example, if you wanted to add all the addresses in your address book to the whitelist, create a message to assp-white@mydomain.com and then add your entire address book to the BCC part of the message and click send. Note that no mail will be delivered to any address except assp-white@mydomain.com (and that won't actually be passed to your mail transport). Within a short time (depends on your mail server) you'll receive a response from ASSP showing the results of your mail.

To report a spam that got through, simply forward the mail to assp-spam@mydomain.com. It's best to forward it as an attachment, but you can just forward it normally if you must. In a short time you will receive a confirmation.

The process is the same to report a miscategorized spam, but send it to assp-notspam@mydomain.com.

Of course all these addresses can be changed to suit your sites preferences.

Also see this note href=http://assp.sourceforge.net/fom/cache/70.html if you are using RelayHost and RelayPort.
2003-Jul-16 3:10pm jhanna

[Append to This Answer]
2003-Jul-16 3:10pm
(Answer) (Category) ASSP Documentation : (Category) Getting Started :
What command-line options does ASSP support?
ASSP can be run as follows:
 perl assp.pl /path/to/base 55556
Where /path/to/base is the path that ASSP will use as its install base
And 55556 is the port on which to run the admin interface, overriding the default (but not a configured option). To override the configured option you must edit (or delete) your assp.cfg file.

Note that if you leave off a path/to/base then ASSP will look in the following locations (in this order) to try to find an assp.cfg and make that base:

 '.','assp','/usr/local/assp','/home/assp','/usr/assp','/assp'

2003-Jul-16 3:27pm jhanna
[Append to This Answer]
2003-Jul-16 3:27pm
(Category) (Category) ASSP Documentation :
Problems & Solutions
How to diagnose and repair your ASSP
2003-Jun-06 12:05pm jhanna
Subcategories:

Answers in this category:
(Answer) Security Considerations
(Answer) Theory of Operation
(Answer) I don’t want to block email, but I want to give end users the ability to sort or filter their email. Can I use ASSP to do that?
(Answer) Can I use ASSP to scan for viruses?
(Answer) ASSP uses a content filter – won’t spammers disguise their content?
(Answer) If everyone we email gets added to the ASSP whitelist, won’t spammers just use an address from the whitelist to spam us?
(Answer) Will ASSP block messages I want to receive?
(Answer) One man’s spam is another man’s ham – how does ASSP decide what to block?
(Answer) Will ASSP work with non-English languages?
(Answer) I want to mess with the mail collections. What format are they in?
(Answer) I’ve heard content filtering is CPU intensive. Is ASSP a CPU hog?
(Answer) I have some users who don’t want spam blocked How can I do this with ASSP?
(Answer) Can ASSP allow certain users to receive executable attachments?
(Answer) Mail is getting blocked that shouldn’t be. How do I fix that?
(Answer) I want to add per-user settings. How hard is that?
(Answer) I have ASSP running and it accepts SMTP connections but POP3 and IMAP don’t work. What’s wrong?
(Answer) Can ASSP work with Microsoft Exchange Server?
(Answer) How do I set up ASSP and Exchange / Domino / XYZ server to use the relay host?
(Answer) Why isn’t ASSP blocking any mail?
(Answer) Why is ASSP blocking all mail?
(Answer) How do I add / remove / verify an addresses on the whitelist / redlist?
(Answer) Is it required to take down (stop) assp to do rebuildspamdb & dnsbl?
(Answer) How do I use the email interface with Exchange, Notes, or a RelayHost / RelayPort setup?
(Answer) Why is my whitelist empty?
(Answer) My email client uses /sbin/sendmail to deliver mail. Will this work with ASSP?

[New Answer in "Problems & Solutions"]
2003-Jul-16 2:45pm
(Answer) (Category) ASSP Documentation : (Category) Problems & Solutions :
Security Considerations
As a proxy, ASSP passes through most of your host mail transport’s security features and vulnerabilities. It also represents a running service accepting connections from the Internet public. Perl in general has a good track record of offering few vulnerabilities. As a proxy, ASSP’s only input/output is socket based, so that limits its exposure. ASSP never opens files with user-inputted names and never shells to the operating system.

In a *nix environment you will want to use ASSP’s ability to run as a non-root user. You may also consider running it in a chroot jail. To do this set the ChangeRoot variable in the configuration to set to your ASSP directory and copy (or link) the /etc/protocols file into a etc/protocol file in the ASSP directory.

The collections of spam and non-spam email may represent a security risk, and access should be restricted to mail administrators. The non-spam email collection will certainly contain sensitive correspondence, and steps should be taken to protect it from those who don’t require access.

Your administration password is transmitted with basic authentication (ie no encryption). If you plan to use the web interface from a host where you feel sniffing is a possibility I’d recommend installing stunnel (www.stunnel.org) to create an encrypted tunnel for your web-admin sessions. The password is stored in plain text in the assp.cfg file -- make sure file permissions protect this file from read access for unauthorized users. You can also add ip addresses to the Allow Admin Connections From configuration entry to restrict access to the admin interface, although this type of packet is quite easy to spoof.
2003-Jun-24 1:27pm jhanna

[Append to This Answer]
2003-Jun-24 1:27pm
(Answer) (Category) ASSP Documentation : (Category) Problems & Solutions :
Theory of Operation
ASSP uses three complementary strategies to allow good mail and block unsolicited email: a whitelist, spambuckets, and a Bayesian filter.

Every time a message passes through your SMTP server it has a from address and one or more to addresses. Your SMTP server also knows if the message is being sent from your local network (and to allow relaying for that message), or if it’s coming from outside (and must be delivered to a local address). Your local users don’t send unsolicited email (right?) and the people they correspond with would only send you solicited email. In fact the people they email would also be unlikely to send UCE. By monitoring these addresses ASSP builds a web of trust – local users are trusted, the addresses in their TO or CC fields are trusted, as are the addresses in their TO and CC fields. Any email from these people is considered not-spam without further checking. (Note this is not a good strategy for virus containment, but it is a good strategy for UCE.)

Users of the local mail domains are not added to the whitelist. They are identified by being a part of the local network. Many spammers forge a from addresses with the same domain as the to address, so it is important to avoid adding local addresses to the whitelist.

With only a few days of operation you should see your whitelist grow to more than 1000 addresses. The whitelist is not only helpful in identifying non-spam, but in building your database of non-spam emails. The whitelist is automatically saved every $UpdateWhitelist seconds (1 hour by default).

Spambuckets are addresses which receive only spam. They can be integrated on your web site, posted on Usenet, or come naturally by having employees leave your site; after a reasonable period of time bouncing their mail all mail received for these addresses can be considered unsolicited. Any email whose sender is not whitelisted and is addressed to a spambucket is classified as spam. Spambuckets are helpful both in identifying spam, and in building and maintaining your spam database.

Finally, if an email comes and is not addressed from someone not on your local network, nor on the whitelist, nor addressed to a spambucket, it is compared to the statistical profile generated by the Bayesian filter. The Bayesian filter works by looking for words and phrases (up to three words long) that occur significantly more often in either your non-spam collection, or your spam collection. For most organizations spam identifiers include things like “get rich quick” while non-spam identifiers are things like your organization’s full name or address, or personal names of people who work there. They also include considerably more subtle references like HTML tags which spammers prefer, or jargon specific to your line of business.

To classify a new email all the words and phrases in the first 10000 bytes of the email (including the header) are checked against the statistical model. The top 50 ranking words and phrases are combined according to Bayes theorem to predict how well the mail compares to spam / non-spam in your collections.

I have made the working assumption that only the first 10000 bytes of an email are significant for identifying spam. Spammers may change their profile, but historically spam has been relatively small, and keeping many large files in your collection is a waste of disk space and processing time.

After an email is classified as local or whitelisted, or as Bayesian spam or spam to a spambox its first 10000 bytes are are saved in the appropriate collection directory. It is given a random number between 0 and MaxFiles (12000 by default) and written to that file name. In this way older files will gradually (randomly) be replaced with newer files, thus keeping the collections both diverse and up-to-date. Files in the errors folders (correctedspam and correctednotspam) are never overwritten.

What follows is a sample statistical analysis of mail we received:

 As of Thu Mar 27 10:48:54 2003 the mail logfile shows:
 78843 messages, 47637 were spam (60.4%) in 73 days
  for 1080.0 messages per day or 652.6 spams per day
 8303 additions to / verifications of the whitelist (113.7 per day)
 28273 were judged spam by the bayesian filter (59.4% of spam)
 18862 were to spam addresses (39.6% of spam)
 502 were rejected for executable attachments (1% of spam)
 12608 were sent from local clients (40.4% of nonspam)
 7838 were from whitelisted addresses (25.1% of nonspam)
 10760 were ok after a bayesian check (34.5% of nonspam)
 14467 addresses are on the whitelist
15108 hits on the blacklist 14890 resulted in spam (52.7% of Bayesian spam, 98.6% of blacklist hits) 218 resulted in non-spam (1.443% of blacklist hits)

2003-Jun-11 10:03am jhanna
[Append to This Answer]
2003-Jun-11 10:03am
(Answer) (Category) ASSP Documentation : (Category) Problems & Solutions :
I don’t want to block email, but I want to give end users the ability to sort or filter their email. Can I use ASSP to do that?
Yes and no. ASSP can put a "X-Assp-Spam: YES" in the message header and also put [SPAM] (or whatever you want) in the subject of spam emails, so end users can use ASSP to filter their own mail this way. However ASSP has been designed to block unsolicited email, and if you don’t want that you should probably look at another tool. If you're not blocking unsolicited email you're really not doing anything to solve the problem of spam.
2003-Jun-11 10:07am jhanna
[Append to This Answer]
2003-Jun-11 10:07am
(Answer) (Category) ASSP Documentation : (Category) Problems & Solutions :
Can I use ASSP to scan for viruses?
ASSP’s default configuration blocks Windows-executable attachments from non-whitelisted senders. This effectively blocks nearly all viruses. However Word-macro viruses, the Kak worm, and executables from whitelisted senders are not blocked. I strongly recommend a client-based antivirus program, or an antivirus program designed for your mail transport. Blocking viruses in a SMTP proxy introduces complexities beyond the scope of ASSP’s design current goals.
2003-Jun-11 10:08am jhanna
[Append to This Answer]
2003-Jun-11 10:08am
(Answer) (Category) ASSP Documentation : (Category) Problems & Solutions :
ASSP uses a content filter – won’t spammers disguise their content?
ASSP uses a sophisticated parsing filter to work around most spammer tricks to disguise their content. As content-based filters like ASSP become more common spammers may find ways to better disguise their message. I personally do not believe spammers will win that battle, but it’s hard to say for sure.
2003-Jun-11 10:09am jhanna
[Append to This Answer]
2003-Jun-11 10:09am
(Answer) (Category) ASSP Documentation : (Category) Problems & Solutions :
If everyone we email gets added to the ASSP whitelist, won’t spammers just use an address from the whitelist to spam us?
It is possible, but more difficult than it sounds. Addresses from your local site aren’t added to the whitelist, so a spammer will have to find someone your site emails. That list will be different for every site using ASSP. A better strategy would be for the spammer to trick you into emailing him/her. But that too will only work for one site at a time. Ultimately it is possible for the spammer to use this strategy to spam your site, but she/he will have to do the same thing individually for every site running ASSP. If this becomes a problem we will develop an appropriate defense.
2003-Jun-11 10:10am jhanna
[Append to This Answer]
2003-Jun-11 10:10am
(Answer) (Category) ASSP Documentation : (Category) Problems & Solutions :
Will ASSP block messages I want to receive?
ASSP has been designed with great care to prevent this from happening. The whitelist is the single most powerful tool to prevent this – anyone you email will never have a message blocked. The spam filter keeps track of mail we send and spam we receive -- if an incoming message is not from someone we've emailed and it's more like the mail we send than the spam we receive then it gets through. Otherwise it's blocked and the sender gets the message, "Mail appears to be unsolicited -- report errors to postmaster@ourhost.com."

The type of email that most often falls in this category is confirmation emails from web sites. Often these mails are only as personal as your email address and contain a lot of advertising – they look a lot more like spam than they look like the mail you send. If someone has a good idea how to recognize this type of email please let me know.
2003-Jun-11 10:10am jhanna

[Append to This Answer]
2003-Jun-11 10:10am
(Answer) (Category) ASSP Documentation : (Category) Problems & Solutions :
One man’s spam is another man’s ham – how does ASSP decide what to block?
See the answer to the previous question. But this raises one theoretical limit for ASSP; ASSP is designed to work for an entire site. This assumes that the users at your site have a fundamental agreement on what is spam. For most small companies the difference between what they send and spam they receive is clear enough that there isn’t a conflict here. However with a large and diverse company this assumption begins to break down. In that case ASSP is probably not the best solution.
2003-Jun-11 10:11am jhanna
[Append to This Answer]
2003-Jun-11 10:11am
(Answer) (Category) ASSP Documentation : (Category) Problems & Solutions :
Will ASSP work with non-English languages?
At this point ASSP looks for words built from A-Z and separated by spaces. (It’s a little more complicated than that, but that’s basically it.) If your language is mostly that way then ASSP will work fine – Spanish, French, German, Polish, etc, primarily use the Latin alphabet and should work fine. Korean, Japanese, and Chinese don’t work well. Future plans may include improvements to make them more functional.
2003-Jun-11 10:12am jhanna
[Append to This Answer]
2003-Jun-11 10:12am
(Answer) (Category) ASSP Documentation : (Category) Problems & Solutions :
I want to mess with the mail collections. What format are they in?
One message per file. Only the first 10k bytes are significant. Keep attachments attached – ASSP parses them up to the first 10k. Separate collections are kept in separate folders. Largely whitespace and headers (except the subject) are ignored. Edit, delete, or add files and rebuild the database – that’s about all there is to it. Files that have numbers as filenames will randomly be overwritten over time keeping the collection up-to-date and limited in size.
2003-Jun-11 10:12am jhanna
[Append to This Answer]
2003-Jun-11 10:12am
(Answer) (Category) ASSP Documentation : (Category) Problems & Solutions :
I’ve heard content filtering is CPU intensive. Is ASSP a CPU hog?
ASSP's CPU and memory load are quite moderate. Excluding rebuilding the databases, ASSP uses fewer CPU cycles per message than our mail transport does and significantly fewer per message than our virus filter software.
2003-Jun-11 10:13am jhanna
[Append to This Answer]
2003-Jun-11 10:13am
(Answer) (Category) ASSP Documentation : (Category) Problems & Solutions :
I have some users who don’t want spam blocked How can I do this with ASSP?
See the Spam Lovers configuration option.
2003-Jun-11 10:15am jhanna
[Append to This Answer]
2003-Jun-11 10:15am
(Answer) (Category) ASSP Documentation : (Category) Problems & Solutions :
Can ASSP allow certain users to receive executable attachments?
No, but anyone on your site’s whitelist (ie anyone who has received email from your site) can send you executable attachments. Think about it, how often have you received a VBS or PIF attachment from a stranger that wasn’t a virus? And what’s the big deal about putting it in a ZIP archive if they really need to get it through to you? We are discussing options to block executable attachments from all senders.
2003-Jun-11 10:16am jhanna
[Append to This Answer]
2003-Jun-11 10:16am
(Answer) (Category) ASSP Documentation : (Category) Problems & Solutions :
Mail is getting blocked that shouldn’t be. How do I fix that?
First, email the people who are getting mail blocked. This will add their addresses to the whitelist and their mail won’t be blocked any more. Second, put samples of the type of mail that is being blocked in your notspam or errors/notspam folders so that the filter becomes biased to accept that kind of mail. Third, look for a unique string or phrase to the type of email that is being blocked (perhaps your street address, city name, phone number) and add that to the White-RE configuration option.
2003-Jun-11 10:17am jhanna
[Append to This Answer]
2003-Jun-11 10:17am
(Answer) (Category) ASSP Documentation : (Category) Problems & Solutions :
I want to add per-user settings. How hard is that?
Beyond the Spam Lovers and Redlist, per-user settings are beyond the scope of ASSP’s design goals. They’re generally pretty hard to implement in the SMTP Proxy environment.
2003-Jun-11 10:18am jhanna
[Append to This Answer]
2003-Jun-11 10:18am
(Answer) (Category) ASSP Documentation : (Category) Problems & Solutions :
I have ASSP running and it accepts SMTP connections but POP3 and IMAP don’t work. What’s wrong?
Nothing is wrong. ASSP proxies SMTP connections but does nothing with POP3 or IMAP connections. Adjust your mail client software to look at the POP3 or IMAP ports on your mail server’s address.
2003-Jun-11 10:19am jhanna
[Append to This Answer]
2003-Jun-11 10:19am
(Answer) (Category) ASSP Documentation : (Category) Problems & Solutions :
Can ASSP work with Microsoft Exchange Server?
Yes, we are developing support for Exchange servers. The best way to do this is to use your server’s smarthost / relay host setting to relay outgoing email through ASSP to your ISP’s relay host. See the specific directions in the section on editing the configuration file. ASSP (version 0.1.6 and after) supports Exchange’s XEXCH50 directive. (See the question below about setting up the Relay Host.)
2003-Jun-11 10:23am jhanna
[Append to This Answer]
2003-Jun-11 10:23am
(Answer) (Category) ASSP Documentation : (Category) Problems & Solutions :
How do I set up ASSP and Exchange / Domino / XYZ server to use the relay host?
If your server lets you set SMTP listen ports and port addresses for the relay host it’s easy; on one box, ASSP listens on port 25, and destination is 127.0.0.1:125 (or wherever XYZ is listening). Relay port can be 127.0.0.1:225 (or any port, so long as it’s the same in your server), and relay host is YourIspMailRelayHost.com:25

However many servers like Domino/Notes don’t let you specify ports – they force you to use 25. Here's two workable scenarios. I’m using Notes for the example, but the same works for Exchange or whatever.

ASSP & Notes on the same box: Firewall routs incoming SMTP traffic to Notesbox:125 (ASSP listen port=125, SMTP destination=127.0.0.1:25), Notes' relay host is 127.0.0.2 (ASSP relay port=127.0.0.2:25, relay host=YourIspRelayHost:25)

Separate boxes: DNS MX points to ASSP, ASSP listen port=ASSP:25, smtp destination=Notes:25. ASSP has a second IP address ASSP2 (either with a second network card, or by aliasing the primary network card) – this address should be on a private network shared with the Notes box, or use your firewall to block external access to ASSP2. ASSP Relay Port=ASSP2:25, relayhost=YourIspRelayHost:25. Notes' relay host is ASSP2.
2003-Jun-11 10:24am jhanna

[Append to This Answer]
2003-Jun-11 10:24am
(Answer) (Category) ASSP Documentation : (Category) Problems & Solutions :
Why isn’t ASSP blocking any mail?
There are three possible reasons for this: (1) You have TestMode checked, (2) Your spamdb is empty, too small or ASSP can’t find it (check your log messages in maillog.txt at the startup), (3) ASSP thinks every message is local or whitelisted (check your log).
2003-Jun-11 10:24am jhanna
[Append to This Answer]
2003-Jun-11 10:24am
(Answer) (Category) ASSP Documentation : (Category) Problems & Solutions :
Why is ASSP blocking all mail?
You didn’t really want any, did you? There are three possible reasons: (1) Your non-spam collection is too small in proportion to your spam collection – add messages to it, or delete some spam and rebuildspamdb.pl. (2) You have something in Blacklisted Domains or Expression to Identify Spam that is too general. (3) Only spammers are sending you mail. (Yes, it’s true, no one loves you.)
2003-Jun-11 10:25am jhanna
[Append to This Answer]
2003-Jun-11 10:25am
(Answer) (Category) ASSP Documentation : (Category) Problems & Solutions :
How do I add / remove / verify an addresses on the whitelist / redlist?
In version 0.2.0 and higher, use the web admin interface (perhaps http://127.0.0.1:55555) and click on the "Update / Verify the Whitelist" link at the top of the page. It should be pretty clear from there. Note that 0.2.0 and 0.2.1 don't have a feature to show you the entire list. (It's in the things to do for a later version).

In versions prior to 0.2.0 you can use the list.pl script.
2003-Jun-23 3:42pm jhanna

[Append to This Answer]
2003-Jun-23 3:42pm
(Answer) (Category) ASSP Documentation : (Category) Problems & Solutions :
Is it required to take down (stop) assp to do rebuildspamdb & dnsbl?
No. The rebuildspamdb and dnsbl scripts can run without stopping ASSP for all versions. In versions prior to 0.2.0 ASSP had to be stopped to use the list.pl script, or to reload the config.pl script. With 0.2.0 and after a kill -HUP will reload the assp.cfg.
2003-Jun-24 12:59pm jhanna
[Append to This Answer]
2003-Jun-24 12:59pm
(Answer) (Category) ASSP Documentation : (Category) Problems & Solutions :
How do I use the email interface with Exchange, Notes, or a RelayHost / RelayPort setup?
ASSP's email interface allows you to send messages to the ASSP server to add addresses to the whitelist, report spam, or report a false-positive. If your clients do not use SMTP to deliver mail through ASSP's proxy, this feature becomes more complicated.

ASSP is looking for it's command addresses at one of its localdomains. However your mail server will not accept mail for ASSP's addresses (and if it does, it will never be passed to ASSP). The work-around is to find a domain you never expect to actually send mail to, tell ASSP it is local, and use that domain for ASSP commands. So you could add spamreport.gov to ASSP's localdomains, and direct whitelist additions to assp-white@spamreport.gov.

Or you could just ignore the email interface.
2003-Jul-10 8:48am jhanna

[Append to This Answer]
2003-Jul-10 8:48am
(Answer) (Category) ASSP Documentation : (Category) Problems & Solutions :
Why is my whitelist empty?
The whitelist is only saved once every 3600 (user configurable) seconds (ie 1 hour). Watch your maillog.txt and look for "Saving Whitelist", then check the stats.pl or the whitelist file.

If ASSP is set up correctly in the maillog.txt you should see something like this:

 Jul-9-03 14:40:31 10.1.1.90 <jhanna@mydomain.com> to: mike@yahoo.com local or whitelisted
 Jul-9-03 14:40:31 10.1.1.90 <jhanna@mydomain.com> to: mike@yahoo.com whitelist addition: mike@yahoo.com

If you don't see the first line, then you don't have "Accept all mail" correctly set up. If you don't see the second line then you don't have "Local Domains" set correctly (note addresses in the local domain don't get added to the whitelist).

ASSP gets whitelist info from your email client. It should look like this:

 Your client -> ASSP -> postfix -> queue -> remote delivery;
   and
 Remote mail -> ASSP -> postfix -> local storage -> local clients

With Exchange/Notes/RelayHost it's a little different:

 Local Client -> Exchange -> Local Client  [assp never sees these mails]
 Local Client -> Exchange -> ASSP (relayPort) -> ISP relay host -> remote delivery
 Remote mail -> ASSP -> Exchange (SMTP) -> Local Client

2003-Jul-10 1:16pm jhanna
[Append to This Answer]
2003-Jul-10 1:16pm
(Answer) (Category) ASSP Documentation : (Category) Problems & Solutions :
My email client uses /sbin/sendmail to deliver mail. Will this work with ASSP?
Many Linux mail clients, like Pine for example, use sendmail on the localhost to put mail into the mail system. For ASSP to accurately maintain the whitelist and non-spam collections your local mail must go through ASSP.

The easiest solution is to tell your mail client to use SMTP instead of sendmail. Most provide this option. Some clients have configuration options for both "Path to Sendmail" and "SMTP Server" -- in this case, make sure the "path to sendmail" is always blank (ie blank for your personal settings, and blank for your global server settings) and the "SMTP Server" is always set to ASSP's smtp port.

If you must, you can use ASSP's RelayHost and RelayPort settings to allow work around this, but you must also configure your mail transport to use a Smart Host, rather than directly deliver mail.
2003-Jul-16 2:50pm jhanna

[Append to This Answer]
2003-Jul-16 2:50pm
(Category) (Category) ASSP Documentation :
Other Tools Included With ASSP
ASSP is almost entirely self contained in the one assp.pl file. However there are a few tools to assist you maintain your ASSP implementation.
2003-Jun-11 10:33am jhanna
Subcategories:

Answers in this category:
(Answer) What is rebuildspamdb.pl and how do I use it?
(Answer) What are the updatednsbl and dnsbl.pl tools?
(Answer) What is upgrade.pl?
(Answer) What is repair.pl?
(Answer) What is move2num.pl?
(Answer) What is stat.pl?

[New Answer in "Other Tools Included With ASSP"]
2003-Jun-11 10:49am
(Answer) (Category) ASSP Documentation : (Category) Other Tools Included With ASSP :
What is rebuildspamdb.pl and how do I use it?
The rebuildspamdb.pl script is used to rebuild your Bayesian spam / non-spam database. It reads through all the files in the spam, notspam, errors/spam, and errors/notspam directories and builds the statistical model that is used to test incoming mail. You should use your operating system's scheduling features to schedule it to be run periodically -- possibly daily or at least weekly. The script should be run in the same folder as the assp.cfg file -- your assp's base (from the configuration page).
2003-Jun-11 10:38am jhanna
[Append to This Answer]
2003-Jun-11 10:38am
(Answer) (Category) ASSP Documentation : (Category) Other Tools Included With ASSP :
What are the updatednsbl and dnsbl.pl tools?
The updatednsbl.sh and updatednsbl.bat script / batch file is used to download the current list of IP addresses of spammers from the openrbl.org probject website. It calls wget and bzip2 to retrieve this data and decompress it.

The dnsbl.pl script reads the data from the openrbl format and converts it to an appropriate format for ASSP.
2003-Jun-11 10:41am jhanna

[Append to This Answer]
2003-Jun-11 10:41am
(Answer) (Category) ASSP Documentation : (Category) Other Tools Included With ASSP :
What is upgrade.pl?
The upgrade.pl script was used to assist users of version 0.1.6 to convert their configuration and databases to the 0.2.0 format. If you're upgrading, you can run this program once to help make the change. If you are a new ASSP user you should disregard the upgrade.pl program.
2003-Jun-11 10:43am jhanna
[Append to This Answer]
2003-Jun-11 10:43am
(Answer) (Category) ASSP Documentation : (Category) Other Tools Included With ASSP :
What is repair.pl?
The repair.pl script can be run at any time if you suspect your sorted hash files (spamdb, whitelist, redlist, and/or dnsbl) have become corrupted. This can happen if your system runs out of free disk space, or conceivably in a hard crash (although this is unlikely).

Run the script and it will load, resort and write the sorted hash files.
2003-Jun-11 10:45am jhanna

[Append to This Answer]
2003-Jun-11 10:45am
(Answer) (Category) ASSP Documentation : (Category) Other Tools Included With ASSP :
What is move2num.pl?
If you have been using ASSP with the UseSubjectsAsMaillogNames option you will find it much easier to identify spam emails. However when you are ready to start normal operation you need to rename all these files to numbers so that they get overwritten in time with newer (more modern) spam/nonspam. The move2num.pl script accomplishes this for you. You can also use this script if you have manually moved a number of files into the spam/nonspam folders and want to convert their filenames to ASSP's numbers.
 perl move2num.pl -r

Note that ASSP reads all files in the directories irregardless of their name, so numbers or words for filenames is fine. However filenames that aren't numbers will remain eternally in the spam / nonspam folders and never be rotated out.

Note also that the errors/spam and errors/notspam folders are not processed in this way -- the files always remain in these folders indefinately.

[Append to This Answer]
2003-Jun-11 10:49am
(Answer) (Category) ASSP Documentation : (Category) Other Tools Included With ASSP :
What is stat.pl?
To list statistics from your maillog.txt file do the following:
 Perl stat.pl maillog.txt
Your results should look something like this:
 As of Thu Mar 27 10:48:54 2003 the mail logfile shows:
 78843 messages, 47637 were spam (60.4%) in 73 days
  for 1080.0 messages per day or 652.6 spams per day
 8303 additions to / verifications of the whitelist (113.7 per day)
 28273 were judged spam by the bayesian filter (59.4% of spam)
 18862 were to spam addresses (39.6% of spam)
 502 were rejected for executable attachments (1% of spam)
 12608 were sent from local clients (40.4% of nonspam)
 7838 were from whitelisted addresses (25.1% of nonspam)
 10760 were ok after a bayesian check (34.5% of nonspam)
 14467 addresses are on the whitelist
 
 15108 hits on the blacklist
 14890 resulted in spam (52.7% of Bayesian spam, 98.6% of blacklist hits)
 218 resulted in non-spam (1.443% of blacklist hits)

2003-Jun-11 10:50am jhanna
[Append to This Answer]
2003-Jul-16 3:03pm
(Category) (Category) ASSP Documentation :
ASSP Changelog
This records the changes of the ASSP project over time.
2003-Jun-11 10:51am jhanna
Subcategories:

Answers in this category:
(Answer) 2003-01-16 -- Release 0.1.1
(Answer) 2003-01-30 -- Release 0.1.2
(Answer) 2003-02-13 -- Release 0.1.3
(Answer) 2003-02-27 -- Release 0.1.4
(Answer) 2003-03-27 -- Release 0.1.5
(Answer) 2003-04-07 -- Release 0.1.6
(Answer) 2003-05-30 -- release 0.2.0
(Answer) 2003-06-13 -- release 0.2.1
(Answer) 2003-07-10 -- release 0.3.0
(Answer) 2003-07-17 -- release 0.3.1

[New Answer in "ASSP Changelog"]
2003-Jul-17 1:26pm
(Answer) (Category) ASSP Documentation : (Category) ASSP Changelog :
2003-01-16 -- Release 0.1.1
2003-01-16 -- Release 0.1.1

2003-01-16 -- Changed "free as in beer" to "free as in speech" in the documents -- you can still buy me
              beer if you want...
           -- Added section on absolute path in docs for assp.pl's do config.pl
           -- Commented out use Strict and use Warnings untill I can get them to work right on Linux

2003-01-14 -- Added the $AddSpamProbHeadder config option

2003-01-20 -- changed the maillog to only save local and whitelisted mail. This prevents gradual
 spamification of the nonspam corpus by false negatives.

2002-12-20 -- Initial Release 0.1.0
2003-Jun-11 10:52am jhanna
[Append to This Answer]
2003-Jun-11 10:52am
(Answer) (Category) ASSP Documentation : (Category) ASSP Changelog :
2003-01-30 -- Release 0.1.2
2003-01-30 -- Release 0.1.2
           -- worked with spamarchive data to improve sub clean
           -- copied the fixed switchUser sub into assp.pl
           -- converted scripts to unix line ends
           -- merged in new configuration options into documentation

2003-01-29 -- Updated documentation for openrbl. Added a sample proxy dialogue.

2003-01-27 -- commented out #use Warnings and #use Strict -- should have done this before now :-(
           -- commented out the data::dump parts (used for debugging only)
           -- made better error result for can't create socket

2003-01-24 -- commented out IpSpam stuff and implemented dnsbl @ 0.95 x 3
           -- wrote switchUser and changed config.pl & docs

2003-01-23 -- Added support for %hh, &#112; and &nbsp; decoding in sub clean
           -- stripped out a number of uninformative html tags (see sub clean)

2003-01-22 -- Changed the isspam function to total probabilities on the top 30 influential
              keywords rather than 50 to increase spam hit rate. This increased my hit rate on
              SpamArchive data by about 1%.
           -- Changed IpSpam functions to look at xx.xx.xx groups rather than xx.xx groups.

2003-01-20 -- Changed isspam so tokens must be between 2 and 19 (inclusive) chars. -- Aids in detecting
              non-English spam.
           -- Added first attempt at %IpSpam functions
2003-Jun-11 10:52am jhanna
[Append to This Answer]
2003-Jun-11 10:52am
(Answer) (Category) ASSP Documentation : (Category) ASSP Changelog :
2003-02-13 -- Release 0.1.3
2003-02-13 -- Release 0.1.3
           -- Fixed a bad bug that corrupted large emails

2003-02-09 -- Fixed a syntax error in list.pl
           -- changed isspam to count only first two occurrances of a token -- reduces ability for spoofing.
           -- updated clean to move html out of mid-words lik<woffie>e thi<baffie>s
           -- removed the possibility of <> being added to the whitelist

2003-02-04 -- Cleaned up documentation here and there.
           -- first attempt at $spamLovers
2003-Jun-11 10:53am jhanna
[Append to This Answer]
2003-Jun-11 10:53am
(Answer) (Category) ASSP Documentation : (Category) ASSP Changelog :
2003-02-27 -- Release 0.1.4
2003-02-27 -- Release 0.1.4
           -- Updated docs for asspsmpl and removed rmdoubt.

2003-02-25 -- fixed a not-cleared buffer that shows up when two messages are sent in sequence without
              a RSET or QUIT between them.

2003-02-20 -- added wantsMessage and appendMessage to handle servers that don't stream after the DATA

2003-02-19 -- fixed funny dates in changelog ;-)
           -- added $ChangeRoot configuration option
           -- cleaned up some other win/*nix issues
           -- updated documentation for ChangeRoot
2003-Jun-11 10:53am jhanna
[Append to This Answer]
2003-Jun-11 10:53am
(Answer) (Category) ASSP Documentation : (Category) ASSP Changelog :
2003-03-27 -- Release 0.1.5
2003-03-27 -- Release 0.1.5
           -- Updated documentation for changes for pipeline problem
           -- integrated "NOOP Connection from" idea from Rainer Schuetz
           -- fixed no spam header in test mode bug
           -- added spam header to local / whitelisted mail

2003-03-26 -- Fixed pipeline problem causing "crlf.crlf" errors
           -- fixed problem where some non-spam was incompletely logged
2003-Jun-11 10:54am jhanna
[Append to This Answer]
2003-Jun-11 10:54am
(Answer) (Category) ASSP Documentation : (Category) ASSP Changelog :
2003-04-07 -- Release 0.1.6
2003-04-07 -- Release 0.1.6
           -- Added $relayHost and $relayPort to support Exchange and Notes.
           -- Updated documentation for the Exchange / Notes setup.

2003-04-04 -- fixed missing received line bug, and bug that affected missing pieces of spamlog files.
           -- fixed bug that caused the spamprob header to be left off some emails.
           -- fixed move2num to skip existing numbers & not overwrite files.
           -- added code to skip exchange's XEXCH50 command.

2003-04-02 -- added picturelink and randomtext checks in clean to try to improve spam detection
           -- updated rebuildspamdb to handle maxtick better -- corrects an asterisk bug
2003-Jun-11 10:54am jhanna
[Append to This Answer]
2003-Jun-11 10:54am
(Answer) (Category) ASSP Documentation : (Category) ASSP Changelog :
2003-05-30 -- release 0.2.0
2003-05-30 -- release 0.2.0
           -- There's too many changes to name. I'll try to list a few:
           -- web based configuration and whitelist/ redlist maintenance interface
           -- noop config option
           -- [spam] in subject
           -- whitelist / blacklist domain
           -- destination address in maillog
           -- sender / from whitelist check
           -- % relay test
           -- daemon on *nix
           -- totalizer
           -- ASSP to stop listening to a client after a certain high-water mark on the MTA...
           -- assp.cfg file
           -- base is command line parameter
           -- whiteRE and blackRE help identify ham / spam
           -- online statistics
           -- sig HUP causes assp.cfg to be reread (unix)
           -- X-Assp-Spam: YES can be added to header
           -- sorted hash files (means uses less ram and loads immediately)
2003-Jun-11 10:54am jhanna
[Append to This Answer]
2003-Jun-11 10:54am
(Answer) (Category) ASSP Documentation : (Category) ASSP Changelog :
2003-06-13 -- release 0.2.1
2003-06-13 -- release 0.2.1
           -- fixed whitelistdomains' config option to allow blank entry
           -- fixed upload stats to recover gracefully from a socket error
           -- fixed problem with unusual HELO that could crash ASSP
           -- moved pointer to ASSP's documentation

2003-Jun-13 3:02pm jhanna
[Append to This Answer]
2003-Jun-13 3:02pm
(Answer) (Category) ASSP Documentation : (Category) ASSP Changelog :
2003-07-10 -- release 0.3.0
2003-07-10 -- release 0.3.0
           -- updated stat.pl with new stats and for new whitelist format
           -- updated rebuildspamdb to remove files from spam collection that match
               corrected notspam and visa versa
           -- rebuildspamdb uses squares of token values for tokens only present in one set
           -- report false-positives by email
           -- see maillog from admin interface
           -- see analysis of spaminess of a mail from admin interface

2003-07-03 -- auto rollover for log file.
           -- report spam by email
           -- add to whitelist by email
           -- config option to disable blocking executable attachments
           -- config option to block exe attachments from local/whitelisted users
           -- config option to log bayesian non-spam mail
           -- code stub for those who want to implement pop before smtp
           -- show entire whitelist / redlist (on list maintenance page)
           -- config option to not add spam prob for outgoing mail
           -- database files use \n as record seperator
           -- bug fixes: rebuildspamdb hammers whitelist
           -- rebuildspamdb squares scores that are all spam or all ham
           -- helo without backslashes passed to MTA
           -- more executable file extensions are blocked
           -- SIG{TERM} is logged
           -- from <> (usually postmaster) will not add to whitelist
           -- ? not a valid email address character
           -- quoted printable isn't confused by \r
           -- hasspamaddresses fails gracefully if $spamaddresses is undefined
           -- white/red list additions by the admin interface are logged
2003-Jul-10 11:15am jhanna
[Append to This Answer]
2003-Jul-10 11:15am
(Answer) (Category) ASSP Documentation : (Category) ASSP Changelog :
2003-07-17 -- release 0.3.1
2003-07-17 -- release 0.3.1
           -- fixed two bugs that cause crashes under unusual cricumstances
           -- 1) accept gets null
           -- 2) posting over 32k hangs on web admin interface
           -- added noProcessing addresses
           -- fixed bug in log rollover

2003-07-16 -- added goodhosts spam detection
           -- added options for localdomains and relayhosts files
           -- added dnsbl and goodhosts to analysis page
           -- updated stats
           -- moved PID file to correct location to make a pid file of the fork, not the parent
           -- added more default paths to look for assp.cfg; checked in this order:
               '.','assp','/usr/local/assp','/home/assp','/usr/assp','/assp'
           -- widened some config options's boxes
           -- added whitelist only option and nomaillog option
           -- added EmailFrom config option for people whose mailer dislikes <>
           -- added "Maillog Tail" to config pages
           -- updated documentation
2003-Jul-17 1:26pm jhanna
[Append to This Answer]
2003-Jul-17 1:26pm
(Category) (Category) ASSP Documentation :
HOWTOs and notes for specific MTAs and OSes
As folks write HOWTOs or install notes for specific mail programs or operating systems we will link to them here.
2003-Jun-24 1:41pm jhanna
Subcategories:
(Category) Microsoft Exchange

Answers in this category:
(Answer) HOWTO ASSP and SME 5.6

[New Answer in "HOWTOs and notes for specific MTAs and OSes"]
2003-Jun-25 9:35am
(Category) (Category) ASSP Documentation : (Category) HOWTOs and notes for specific MTAs and OSes :
Microsoft Exchange
Instructions and helps for users of ASSP and Microsoft Exchange Server, all versions.
2003-Jun-25 9:35am jhanna
Subcategories:

Answers in this category:
(Answer) How can I get Exchange 5.5 to stop sending NDRs?
(Answer) Can I use Exchnage 2000 Public folders to report spam / notspam?

[New Answer in "Microsoft Exchange"]
2003-Jul-10 12:47pm
(Answer) (Category) ASSP Documentation : (Category) HOWTOs and notes for specific MTAs and OSes : (Category) Microsoft Exchange :
How can I get Exchange 5.5 to stop sending NDRs?
(From Jon Bell, June 25, 2003 7:03 AM)
Just FYI, I figured out how to get Exchange 5.5 to stop sending Non-Delivery Report (NDR) messages... At least for invalid user addresses. Did some digging on the Internet, and found out that really the only way to do it is this:
-- Create a "distribution list" in Exchange called something like "Terminated Employees", with no members. Then hide the list.
-- Add SMTP user addresses (presumably for users who are no longer employed there, but could be anyone you want as long as the address isn't used somewhere else already) to the distribution list.

This method results in NDR messages not being generated because the address DOES exist... it just doesn't GO anywhere. According to what I read while finding this tip, the incoming messages do not get stored anywhere... they just "disappear".

So that, combined with redlisting "Postmaster" in ASSP, has pretty much resulted in the elimination of NDR messages from Exchange... while leaving the Postmaster mailbox able to receive incoming mail addressed specifically to it. That way, if anyone on the outside has a problem, they can still reach you using the Postmaster address.

Unless you use this method, Exchange 5.5 will ALWAYS send out NDR messages for any e-mail sent to an invalid address. There is no known way to turn it off the "feature". (Apparently, Exchange 2000 DOES have a way to disable NDR messages.)
2003-Jun-25 9:39am jhanna

(From Matthias Behnke, Tuesday, June 24, 2003 10:20 PM)
In Exchange 5.5 (not 2000) you can enable the SMTP VRFY-command to reject email delivery at the SMTP-Level. Microsoft does not recommend to enable this feature as spammers will then be able to quickly check which accounts are hosted on your server, so spams will be more direct. In Exchange 2000 the VRFY-command is no longer supported.

Refer to http://support.microsoft.com/default.aspx?scid=kb;en-us;289521 Disabling NDRs at all is not really a good idea as senders, who accidently misspell the mailaddress will get no reply that their mail was not delivered.

As John said, redlisting should help to protect the whitelist from adding the NDR-receivers.
2003-Jun-25 9:39am jhanna

[Append to This Answer]
2003-Jun-25 9:39am
(Answer) (Category) ASSP Documentation : (Category) HOWTOs and notes for specific MTAs and OSes : (Category) Microsoft Exchange :
Can I use Exchnage 2000 Public folders to report spam / notspam?
I created public folders, named "Spam" and "Nospam", and tell our users copy mail examples on it.

Then on Exchange machine, on disk M: (virtual disk for Exchange mail storage) I can find .eml files in plain text format (header+body), just copy it to c:\assp\spam and nospam, and use move2num.pl to convert file names to numbers. This task easy to automatize with .bat files.

Users not need change it client's configuration (our organization use Outlook as MAPI client on most workstations)

Users, who connect to Exchange over SMTP/POP3/IMAP, can forward spam to Public Folder's mailbox adress.

I think it's useful methode for such configuration.

(see http://sourceforge.net/forum/forum.php?thread_id=897310&forum_id=235332)
By: dmivs ( Dmitry Ovsjannikov )
Exchange 2000 Public Folders for spam/notspam
2003-07-08 13:41
2003-Jul-10 12:49pm jhanna

[Append to This Answer]
2003-Jul-10 12:49pm
(Answer) (Category) ASSP Documentation : (Category) HOWTOs and notes for specific MTAs and OSes :
HOWTO ASSP and SME 5.6
SME Server V5 consists of a modified Red Hat Linux installation, together with a number of server applications as well as the server management software. The management software presents users with a simplified user interface and automatically configures the server applications as necessary.
PDF here: http://www.sonoracomm.com/sonoracomm/pdf/ASSP_HOWTO.pdf
or
RTF here: http://www.sonoracomm.com/sonoracomm/pdf/ASSP_HOWTO.rtf
2003-Jun-24 1:47pm jhanna
[Append to This Answer]
2003-Jun-24 1:47pm
(Answer) (Category) ASSP Documentation :
Why ASSP?
It has long been clear to me that the best place to stop spam is at an organization’s SMTP server. This is true for the following reasons:
  1. Most spam has an invalid bounce address, so notifying non-delivery simply bounces to Postmaster, creating even more wasted bandwidth. Failing to notify non-delivery is a problem for false-positives. The SMTP server is the only place where spam can be stopped before entering your system.
  2. The only possible feedback for spammers to void an address is from the SMTP server.
  3. Spam that passes through your SMTP server into mailboxes incurs cost to your organization: storage, transmission, backup, deletion – in all these ways spam costs you money. The only way to minimize cost is to reject it at the initial point.

However, mail transport systems are slow to adopt new technology, and spammers are quick and flexible, able to adopt new technology as quickly as it becomes available. Consequently, most SMTP servers are ill equipped to stop spam.

Furthermore, one spam-stopping solution could work with all existing SMTP servers if it was implemented on a second level – a transparent SMTP filtering proxy. This was my goal for this project.

I wanted a server that accepted connections on port 25, passing the transmission on to the official SMTP server, and relaying its replies back to the SMTP client. But when enough of the message had been transmitted to validate its legitimacy the ASSP server could either pipe the remainder of the message to the official SMTP server or close the connection to the official SMTP server and ignore the remainder of the message.

The Anti-Spam SMTP Proxy (ASSP) Server project aims to create an open source platform-independent SMTP Proxy server which implements whitelists and Bayesian filtering to rid the planet of the blight of unsolicited email (UCE). UCE must be stopped at the SMTP server. Anti-spam tools must be adaptive to new spam and customized for each site’s mail patterns. This free, easy-to-use tool works with any mail transport and achieves these goals requiring no operator intervention after the initial setup phase.
2003-Jun-06 12:09pm jhanna

[Append to This Answer]
2003-Jun-06 12:09pm
(Answer) (Category) ASSP Documentation :
Who is it for?
ASSP’s primary target audience is mail administrators or system administrators at smallish institutions. If you operate an ISP or a mailhost with a heterogeneous user base you may not have a good enough consensus about what spam is or is not. It should work well with between 1 and 300 client addresses and a mail volume of up to around 100,000 messages per day. Testing has not been done to verify these ranges – if you discover otherwise please notify the author and he’ll update the documentation.
2003-Jun-06 12:09pm jhanna
[Append to This Answer]
2003-Jun-06 12:09pm
(Answer) (Category) ASSP Documentation :
What features make ASSP great?
  1. Easy browser-based setup.
  2. Uses your existing message transport and existing SMTP server.
  3. Works with Sendmail, qmail, Postfix, Imail, Exchange, Courier, Mercury, Lotus Notes, and all other standard SMTP servers.
  4. Automatically customizes to your site’s unique email profile.
  5. Automatic whitelist – noone you email will ever be blocked.
  6. Senders receive notification if mail is blocked but no erroneous bounces are generated.
  7. Redlist keeps an address off the whitelist and doesn’t log their mail as non-spam.
  8. Makes use of honeypot type spambucket addresses to automatically recognize spam and update the spam database.
  9. Bayesian filter intelligently classifies email into spam and non-spam.
  10. Can optionally block all non-whitelisted email (for anti-spam zelots).
  11. Mime encoded and other camouflaged spam is also recognized.
  12. Automatically maintains the spam and non-spam databases.
  13. Accepts whitelist submissions and spam error reports by authorized email.
  14. Optionally rejects executable attachments from non-whitelisted (or all) addresses.
  15. Free (as in speech) software -- Licensed under the GPL.
  16. Starter spam and non-spam databases for you to download (optionally).
  17. Little or no periodic maintenance.
  18. Active user community email list for support questions.
  19. Source code included if you need to customize your installation.
  20. Runs as a service in windows NT / 2000.
  21. Optionally blocks no mail but adds an email header and/or updates the message subject.
  22. Optionally uses data from openrbl.org to allow dns blacklists to influence spam probability.
  23. In *nix environments can switch to non-root user. Also supports chroot jail.
  24. Individual users can be configured to receive all mail.
  25. Shows detailed analysis of spam rating process for specific messages.
  26. Detailed up-to-date documentation.
  27. And much more!

[Append to This Answer]
2003-Jul-16 2:59pm
(Answer) (Category) ASSP Documentation :
What are ASSP's configuration options?
SPAM is Yummy! ASSP Configuration
Your version: 0.3.1
Latest Documentation is here.
Statistics, Update / Verify the Whitelist or Redlist, Analyze an email, See the maillog tail
Note that anywhere | is used that if you put two together (||) you will get an undesirable result. Don't do that.

Network Setup
SMTP Destination
The address:port of your message handling system's smtp server. For example: 127.0.0.1:125
  As a Service
In Windows 2000 / NT you can run it as a service; requires win32::daemon. Requires start from the service control panel.
  As a Daemon
In Linux/BSD/OsX fork and close file handles, kinda like "perl assp.pl &" but better. Requires restart.
My Name
What the program calls itself in the email "received by" header. Usually ASSP-nospam.
Listen Port
On what port should ASSP accept smtp connections? Normally 25. You can supply an interface:port to limit connections.
Web Admin Port
On what port should ASSP listen for http connections for the web administration interface? If you change this you will need to change the URL on your browser to reconnect. You can supply an interface:port to limit connections.
Web Admin Password
This is your password for the administrative interface -- if you leave this default then you deserve what you get. Must be at least 5 characters long.
Allow Admin Connections From
This is an optional list of IP addresses from which you will accept web admin connections, seperated by bangs (|). For example: 127.0.0.1|10. Blank means accept all connections. 127.0.0.1 means accept connections from only the localhost. Note that IP source addresses are very easy to spoof, so this should not be considered as a security feature. Also note that if you make a mistake here you will likely disable your web admin interface and have to manually edit your configuration file to fix it.
Relaying
Accept All Mail
Denies relaying for hosts besides these. These hosts also contribute to the whitelist. For example: 127.0.0.1|10.|169.254.|172.16.|192.168.
Relay Host File
Like Accept All Mail, but this is a file that contains a list of ip addresses (one per line) for whom you want to relay mail. This is an ABSOLUTE path, not relative to base. For example: /usr/local/assp/relayhosts
Local Domains
Addresses in these domains are considered local delivery. Seperate addresses with |. Include all subdomains. For example: put.YourDomains.com|here.org
Local Domains File
Like Local Domains, but this is a file that contains a list of host names (one per line) for whom you want accept mail. This is an ABSOLUTE path, not relative to base. For example: /usr/local/assp/locals
Relay Host
Your isp's mail relayhost (smarthost). For example: mail.isp.com:25
If you run Exchange or Notes and you want assp to automatically update the nonspam database and the whitelist, then use your isp's smtp relay host here. Blank means no relayhost. You only need this if your clients don't deliver mail through SMTP.
Relay Port
Tell your mail server to connect to this port (eg 127.0.0.1:225 or 127.0.0.2) as it's smarthost / relayhost. For example: 225 Note that you'll want to keep the relayPort protected from external access by your firewall or else spammers can use it to send as much spam as they want. You can supply an interface:port to limit connections.
SPAM Control
  Block Executable Attachments
Most executable attachments are email viruses. Check this box to not allow delivery of mail with executable attachments from non-whitelisted users.
  Block Whitelisted Exe Attachments too
Check the above box AND this box to block attachments even from whitelisted & local senders.
Spam Addresses
Mail to any of these users at any of the localDomains are always spam unless from someone on the whitelist; don't include the @domain.com part.
Spam-Lover Addresses
Mail solely to any of these users at any of the localDomains are never blocked, which is to say they get all their spam; mail to more than one recipient is blocked unless all recipients are spamLovers. Separate addresses with bangs: | For example: postmaster|julie_vipul
Unprocessed Addresses
Mail solely to or from any of these users at any of the localDomains are ignored by ASSP, like a more effecient version of spamLovers & redlist combined. Separate addresses with bangs: | For example: postmaster|julie_vipul
Whitelisted Domains
Domains from which you want to receive all mail -- your ISP, domain registeration, mail list servers, stock broker, or other key business partners might be good candidates. Note this matches the end of the address, so if you don't want to match subdomains then include the @. For example: sourceforge.net|@google.com
Blacklisted Domains
Domains from which you always want to reject mail -- they only send you spam. For example: email-deliveries.net|xxxpics.com
Expression to Identify Non-Spam
If an incoming email matches this Perl regular expression it will be considered non-spam. For example: Secret Ham Password|303\D{0,3}730\D{0,3}4[12]\d\d
For help writing regular expressions click here. Note that flags are "si" and the header as well as body is scanned. Some things you might include here are your office phone number or street address -- spam rarely includes these details.
Expression to Identify Spam
If an incoming email that's not local or whitelisted matches this Perl regular expression it will be considered spam. May match text from the body or header of the email. For example: penis|virgin|X-Priority: 1
Expression to Identify Redlisted Mail
If an email header matches this Perl regular expression it will be considered redlisted. For example: [autoreply]
  Reject All But Whitelisted Mail
Check this if you don't want Bayesian filtering and want to reject all mail from anyone not whitelisted. Note: this turns the redlist into a blacklist.
  Don't log mail
Check this if you're using Whitelist-Only and don't care to save mail to build the Bayesian database.
  Disable Good Hosts Antispam
Check this to disable the Good-Hosts antispam feature.
Max Whitelist Days
This is the number of days an address will be kept on the whitelist without receiving email.
  Add Spam Probability Header?
Adds a line to the email header "X-Assp-Spam-Prob: 0.0123" Probs range from 0 to +1 where > 0.6 = spam.
  Block Outgoing Spam-Prob header?
Check this box if you don't want your X-Assp-Spam-Prob header on external mail -- Note this means mail from local users to local users will also be missing the header.
  Add Spam Header?
Adds a line to the email header "X-Assp-Spam: YES" if the message is spam.
  Use Subject as Maillog Names
You can turn this on to help you manually identify mail in your spam and non-spam collections.
  Test Mode
If TestMode is true all bayesian-spam is delivered.
Prepend Spam Subject
If TestMode and message is spam spamSubject gets prepended to the subject of the email. For example; [SPAM]
Email Interface
  Enable Email Interface
Checked means that you want to ASSP to intercept and parse mail to the following addresses at any of your localdomains. If you are using RelayHost and RelayPort see this note.
Report Spam Address
Any mail sent by local or authenticated users to this address will be interpreted as a spam report. No mail is delivered! For example: assp-spam
Report not-Spam Address
Any mail sent by local or authenticated users to this address will be interpreted as a false-positive (not-spam) report. No mail is delivered! For example: assp-notspam
Add to Whitelist Address
Any mail sent by local or authenticated users to this address will be interpreted as a request to add addresses to the whitelist. No mail is delivered! For example: assp-white
From Address for Email
Email sent from ASSP acknowledging your submissions will be sent from this address. Some mailers don't like the default setting. For example: ASSP <> or Mail Administrator
File Paths
Directory Base
All paths are relative to this folder. Note: this must be changed as a command line parameter and is displayed here for reference only.
Spam Collection
The folder to save the collection of spam emails. For example: spam
Not-spam Collection
The folder to save the collection of not-spam emails. For example: notspam
External mail that wasn't spam (mostly)
The folder to save bayesian non-spam and viri. Leave this blank to not save these files (default). Most mail admins don't want these files, but if you want to keep copies of all incoming mail then put in a directory name. Note: you must create the directory. For example: other
False-negative Collection
Spam that got through -- counts double. For example: errors/spam
False-positive Collection
Good mail that was listed as spam, count 4x. For example: errors/notspam
Spam Bayesian Database File
The output file from rebuildspamdb.pl.
Email Whitelist Database File
The file with the whitelist.
Email Redlist Database File
The file with the redlist.
DNS Blacklist Database File
The file with the current DNSBL -- make this blank if you don't use it.
ASSP Logfile
Blank if you don't want a log file.
PID File
Blank to skip writing a pid file. *nix users need pid files. Leave it blank in Windows. You have to restart the service before you get a pid file in the new location.
Logging
  Silent Mode
Checked means don't print log messages to the console. AsADaemon overrides this.
  Debug Mode
Checked means you want debugging to go to a .dbg file. Leave this unchecked unless there is a program error you are trying to track down.
  Send NOOP Info
Checked means you want ASSP to send a "NOOP Connection from $ip" message to your SMTP server. (Postfix croaks on this.)
  Upload Colsolated Spam Statistics
Checked means your ASSP will upload it's totalled statistics to the ASSP web site totals. This is a great marketing tool for the ASSP project, please don't disable it unless you've got a good reason to. No private information is being disclosed by this upload.
Security
Run as UID
The *nix user name to assume after startup: assp or nobody -- requires ASSP restart.
Run as GID
The *nix group to assume after startup: assp or nogroup -- requires ASSP restart.
Change Root
Non-blank means to run in chroot jail in *nix. You need an etc/protocols file to make this work -- copy or link the file to your new root directory. -- requires ASSP restart.
Other Settings
Max Files
If you're not using subjects as file names, MaxFiles is the maximum number of files to keep in each collection (spam and nonspam) -- it's actually less than this -- files get a random number between 1 and $MaxFiles.
Max Errors
If the smtp destination sends $MaxErrors 501s, 502s, 503s... the connection is dropped.
Restart Every
Program terminates after this many seconds -- this is really only useful if ASSP runs in a script that restarts it after it stops. Note: the current timeout must expire before the new setting is loaded.
Save Whitelist
Save a copy of the white list every this many seconds. Note: the current timeout must expire before the new setting is loaded, or you can restart.
No Relaying Error
SMTP error message to deny relaying.
Executable Attachment Error
SMTP error message to reject executable attachments.
Spam Error
SMTP error message to reject spam.
 [submit]

2003-Jul-17 1:28pm jhanna
[Append to This Answer]
2003-Jul-17 1:28pm
(Answer) (Category) ASSP Documentation :
What is ASSP's license?
GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

Preamble

The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too.

When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.

To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.

For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.

We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.

Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations.

Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.

The precise terms and conditions for copying, distribution and modification follow.

TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you".

Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.

1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.

You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.

2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:

• a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.

• b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.

• c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.)

These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.

In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.

3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:

• a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

• b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

• c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)

The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.

If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.

4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.

5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.

6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.

7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.

If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.

It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.

This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.

8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.

9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.

Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.

10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.

NO WARRANTY

11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
2003-Jun-11 10:57am jhanna

[Append to This Answer]
2003-Jun-11 10:57am
(Category) (Category) ASSP Documentation :
Who will win the ASSP Homepage Redesign contest?
Maybe You!

If you have some web design skills and want to redesign the ASSP home page, I want your suggestions! In fact, you can use the FAQ-O-Matic to post your candidates below.

Thanks for your participation that makes this project great.
2003-Jun-13 3:21pm jhanna

Subcategories:

Answers in this category:
(Answer) OSWD.org?

[New Answer in "Who will win the ASSP Homepage Redesign contest?"]
2003-Jul-07 10:28am
(Answer) (Category) ASSP Documentation : (Category) Who will win the ASSP Homepage Redesign contest? :
OSWD.org?
http://oswd.org/viewdesign.phtml?id=887&referer=%2Fuserinfo.phtml%3Fuser%3Dcaio1982
http://www.oswd.org/viewdesign.phtml?id=1083&referer=/browse.php?sort=ratingdesc&page=2
http://www.oswd.org has a bunch of good designs. Like the above examples. In general, they are just the layouts, with no graphics. The two examples above are just some of the few that I liked. As far as I know, the designs are completely free (a link back to oswd and the creator would probably be nice though). I'm sure that you're completely capable of implementing one of those designs, but if you do want some help, I'd be glad to lend a hand.
2003-Jul-07 10:46am aj
[Append to This Answer]
2003-Jul-07 10:46am
This document is: http://assp.sourceforge.net/cgi-bin/fom?file=1
[Search] [Appearance] [Show Top Category Only]
This is a Faq-O-Matic 2.719.

SourceForge Logo