![]() |
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:![]() ![]() ![]() ![]() ![]()
Answers in this category: | ||
[New Answer in "ASSP Documentation"] | ||
2003-Jun-24 1:40pm | ||
![]() |
![]() Getting Started | |
Discussion of issues related to getting ASSP running.
2003-Jun-06 12:04pm jhanna | ||
Subcategories:
Answers in this category: | ||
[New Answer in "Getting Started"] | ||
2003-Jul-16 3:23pm | ||
![]() |
![]() ![]() 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. | ||
[Append to This Answer] | ||
2003-Jul-09 3:31pm | ||
![]() |
![]() ![]() 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 | ||
![]() |
![]() ![]() 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.
| ||
[Append to This Answer] | ||
2003-Jul-16 1:41pm | ||
![]() |
![]() ![]() 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 | ||
![]() |
![]() ![]() 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.
| ||
[Append to This Answer] | ||
2003-Jun-11 9:47am | ||
![]() |
![]() ![]() 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:\asspto 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 | ||
![]() |
![]() ![]() 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.
| ||
[Append to This Answer] | ||
2003-Jun-11 9:53am | ||
![]() |
![]() ![]() 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 | ||
![]() |
![]() ![]() 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.
| ||
[Append to This Answer] | ||
2003-Jun-11 9:57am | ||
![]() |
![]() ![]() 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.
| ||
[Append to This Answer] | ||
2003-Jun-11 9:57am | ||
![]() |
![]() ![]() 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. 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 | ||
![]() |
![]() ![]() 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.)
| ||
[Append to This Answer] | ||
2003-Jun-11 10:04am | ||
![]() |
![]() ![]() 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. | ||
[Append to This Answer] | ||
2003-Jun-26 12:17pm | ||
![]() |
![]() ![]() 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 | ||
![]() |
![]() ![]() 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 | ||
![]() |
![]() ![]() 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.
| ||
[Append to This Answer] | ||
2003-Jul-16 3:10pm | ||
![]() |
![]() ![]() What command-line options does ASSP support? | |
ASSP can be run as follows:
perl assp.pl /path/to/base 55556Where /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 | ||
![]() |
![]() Problems & Solutions | |
How to diagnose and repair your ASSP
2003-Jun-06 12:05pm jhanna | ||
Subcategories:
Answers in this category: | ||
[New Answer in "Problems & Solutions"] | ||
2003-Jul-16 2:45pm | ||
![]() |
![]() ![]() 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.
| ||
[Append to This Answer] | ||
2003-Jun-24 1:27pm | ||
![]() |
![]() ![]() 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 2003-Jun-11 10:03am jhanna | ||
[Append to This Answer] | ||
2003-Jun-11 10:03am | ||
![]() |
![]() ![]() 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 | ||
![]() |
![]() ![]() 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 | ||
![]() |
![]() ![]() 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 | ||
![]() |
![]() ![]() 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 | ||
![]() |
![]() ![]() 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.
| ||
[Append to This Answer] | ||
2003-Jun-11 10:10am | ||
![]() |
![]() ![]() 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 | ||
![]() |
![]() ![]() 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 | ||
![]() |
![]() ![]() 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 | ||
![]() |
![]() ![]() 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 | ||
![]() |
![]() ![]() 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 | ||
![]() |
![]() ![]() 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 | ||
![]() |
![]() ![]() 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 | ||
![]() |
![]() ![]() 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 | ||
![]() |
![]() ![]() 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 | ||
![]() |
![]() ![]() 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 | ||
![]() |
![]() ![]() 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.
| ||
[Append to This Answer] | ||
2003-Jun-11 10:24am | ||
![]() |
![]() ![]() 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 | ||
![]() |
![]() ![]() 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 | ||
![]() |
![]() ![]() 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.
| ||
[Append to This Answer] | ||
2003-Jun-23 3:42pm | ||
![]() |
![]() ![]() 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 | ||
![]() |
![]() ![]() 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.
| ||
[Append to This Answer] | ||
2003-Jul-10 8:48am | ||
![]() |
![]() ![]() 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 | ||
![]() |
![]() ![]() 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.
| ||
[Append to This Answer] | ||
2003-Jul-16 2:50pm | ||
![]() |
![]() 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: | ||
[New Answer in "Other Tools Included With ASSP"] | ||
2003-Jun-11 10:49am | ||
![]() |
![]() ![]() 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 | ||
![]() |
![]() ![]() 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.
| ||
[Append to This Answer] | ||
2003-Jun-11 10:41am | ||
![]() |
![]() ![]() 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 | ||
![]() |
![]() ![]() 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.
| ||
[Append to This Answer] | ||
2003-Jun-11 10:45am | ||
![]() |
![]() ![]() 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 | ||
![]() |
![]() ![]() What is stat.pl? | |
To list statistics from your maillog.txt file do the following:
Perl stat.pl maillog.txtYour 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 | ||
![]() |
![]() ASSP Changelog | |
This records the changes of the ASSP project over time.
2003-Jun-11 10:51am jhanna | ||
Subcategories:
Answers in this category: | ||
[New Answer in "ASSP Changelog"] | ||
2003-Jul-17 1:26pm | ||
![]() |
![]() ![]() 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.02003-Jun-11 10:52am jhanna | ||
[Append to This Answer] | ||
2003-Jun-11 10:52am | ||
![]() |
![]() ![]() 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, p and 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 functions2003-Jun-11 10:52am jhanna | ||
[Append to This Answer] | ||
2003-Jun-11 10:52am | ||
![]() |
![]() ![]() 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 $spamLovers2003-Jun-11 10:53am jhanna | ||
[Append to This Answer] | ||
2003-Jun-11 10:53am | ||
![]() |
![]() ![]() 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 ChangeRoot2003-Jun-11 10:53am jhanna | ||
[Append to This Answer] | ||
2003-Jun-11 10:53am | ||
![]() |
![]() ![]() 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 logged2003-Jun-11 10:54am jhanna | ||
[Append to This Answer] | ||
2003-Jun-11 10:54am | ||
![]() |
![]() ![]() 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 bug2003-Jun-11 10:54am jhanna | ||
[Append to This Answer] | ||
2003-Jun-11 10:54am | ||
![]() |
![]() ![]() 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 | ||
![]() |
![]() ![]() 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 | ||
![]() |
![]() ![]() 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 logged2003-Jul-10 11:15am jhanna | ||
[Append to This Answer] | ||
2003-Jul-10 11:15am | ||
![]() |
![]() ![]() 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 documentation2003-Jul-17 1:26pm jhanna | ||
[Append to This Answer] | ||
2003-Jul-17 1:26pm | ||
![]() |
![]() 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:![]()
Answers in this category: | ||
[New Answer in "HOWTOs and notes for specific MTAs and OSes"] | ||
2003-Jun-25 9:35am | ||
![]() |
![]() ![]() 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: | ||
[New Answer in "Microsoft Exchange"] | ||
2003-Jul-10 12:47pm | ||
![]() |
![]() ![]() ![]() 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.)
| ||
(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.
| ||
[Append to This Answer] | ||
2003-Jun-25 9:39am | ||
![]() |
![]() ![]() ![]() 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) | ||
[Append to This Answer] | ||
2003-Jul-10 12:49pm | ||
![]() |
![]() ![]() 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 | ||
![]() |
![]() 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:
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.
| ||
[Append to This Answer] | ||
2003-Jun-06 12:09pm | ||
![]() |
![]() 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 | ||
![]() |
![]() What features make ASSP great? | |
| ||
[Append to This Answer] | ||
2003-Jul-16 2:59pm | ||
![]() |
![]() What are ASSP's configuration options? | |
2003-Jul-17 1:28pm jhanna | ||
[Append to This Answer] | ||
2003-Jul-17 1:28pm | ||
![]() |
![]() 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.
| ||
[Append to This Answer] | ||
2003-Jun-11 10:57am | ||
![]() |
![]() 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.
| ||
Subcategories:
Answers in this category: | ||
[New Answer in "Who will win the ASSP Homepage Redesign contest?"] | ||
2003-Jul-07 10:28am | ||
![]() |
![]() ![]() 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 |
|