...
- Properly link the amavisd and clamav .spamassassin bayes DBs. Both ClamAV and amavis create DBs with bayes info (the statistical info that allows SpamAssassin to "learn" what is and isn't spam) - unfortunatley, they should be sharing that info. On the command line:
The rm command may or may not give you an error - it depends if you have been running your server for a while already and there is a .spamassassin directory to delete. If you do get the error that the directory does not exist, don't worry, just move on. \\No Format sudo -s cd /var/clamav rm -rf .spamassassin ln -s /var/amavis/.spamassassin .spamassassin exit
Wiki Markup
2. Make sure that the cron script to learn Ham and Spam is in place, or replace it with another script (I use \[http://osx.topicdesk.com/downloads/ spamtrainer\] because I'm too lazy to fix Apple's install when spamtrainer will do it for me. As a bonus, spamtrainer will clean up messages that it has already analysed, so you don't have to.) Read the documentation that is included. \\
3. Create system accounts with the short name junkmail and notjunkmail. These accounts do not exist by default, so you have to do it. In Workgroup Manager, make sure that you are in the local directory (not LDAP!!) and create the two users, (you don't need to give them home dirs) then enable mail for them. You can now redirect (not forward) any Spam to junkmail@yourdomain.com and Ham to notjunkmail@yourdomain.com and the system should learn from those messages. You can also create shared IMAP folders for these users so your IMAP users can just drag spam into the shared junkmail mailbox and it will automagically be learned. The standard MacOS Mac OS X Server install puts cyradm(1), the Cyrus administrative tool, in/usr/bin/cyrus/admin/cyradm
, which is not in the defaultPATH
. A very effective GUI for the Mac to set shared permissions on the inboxes for junkmail and notjunkmail is SirAdmin. If you run SirAdmin remotely, remember to turn on SSL; otherwise your password will be transmitted in cleartext.
4. Gather some spam (what, no spam??) and feed the bayes DB. SpamAssassin won't use bayes filtering until you have at least 200 messages. I have been told that it doesn't get really effective until your have about 2000 spam and 2000 ham messages in the DB. Note that the learning process is time and processor intensive! Schedule the DB updates to minimize impact on the server. When I build a server, I like to feed it big lumps of spam and ham before it goes on line. You can use spamtrainer to specify another mailbox (other than junkmail and notjunkmail) to use to learn spam and ham on a one time basis (handy!)
5. Check your Bayes DB. Run these commands to see what your install is using for a Bayes DB:Cyrus install does not install the cyradm(1) command line facility for changing mailbox ACLs by default. A very effective GUI alternative for the Mac to set shared permissions on the inboxes for junkmail and notjunkmail is \[http://explanatorygap.net/sw/SirAdmin.app.zip SirAdmin\]. If you run [SirAdmin] remotely, remember to turn on SSL else your password will be transmitted in cleartext. \\ 4. Gather some spam (what, no spam??) and feed the bayes DB. [SpamAssassin] won't use bayes filtering until you have at least 200 messages. I have been told that it doesn't get really effective until your have about 2000 spam and 2000 ham messages in the DB. Note that the learning process is time and processor intensive! Schedule the DB updates to minimize impact on the server. When I build a server, I like to feed it big lumps of spam and ham before it goes on line. You can use spamtrainer to specify another mailbox (other than junkmail and notjunkmail) to use to learn spam and ham on a one time basis (handy!) \\ 5. Check your Bayes DB. Run these commands to see what your install is using for a Bayes DB:
You should see some stats about how many Spam messages and ham messages you have in your Bayes DB. Note that this will return an error if the DB has never been updated. Feed the system some spam, then try again.No Format sudo su clamav sa-learn --dump magic exit
...
- auto_learn should be bayes_auto_learn
- safe_reporting should be report_safe (Thanks to Alex from topicdesk.com for pointing out this error!)
- use_terse_report can be safely commented out
- subject_tag can be commented out
- rewrite_subject can be commented out
- ok_languages can be commented out and this line uncommented in v310.pre
loadplugin Mail::SpamAssassin::Plugin::TextCat
. ok_languages is now a User setting - I haven't implemented this, so I'm not sure if the plugin is even installed or how best to configure it. YMMV.
Pyzor
The \[http://pyzor.sourceforge.net Pyzor package\] is not installed by default on Mac OS X Server, you'll have to install it manually. Wiki Markup
...
- download pyzor from \[http://pyzor.sourceforge.net Sourceforge\] and unstuff the bzip archive. cd into the download directory and run these commands to build and install the package
No Format python setup.py build python setup.py install
Pyzor depends on py-gdbm which is most easily installed via \[http://darwinports.org DarwinPorts\] Wiki Markup
- first install Darwinports, then
sudo port install py-gdbm
to install the py-gdbm package - test the py-gdbm install with this command
python -c 'import gdbm' && echo 'gdbm found'
- test with
spamassassin -D < path_to_spam_message
and see what Pyzor messages come up - you should be good to go.
...
Not free for non-personal use. The Razor2 package is not installed by default on Mac OS X Server, you'll have to find it and install it manually. On the TODO list...
Other cf files
...
The cf files are stored in {{/usr/local/share/spamassassin/
}}. You can create new files or drop in cf files that others have created like \[http://www.emtinc.net/spamhammers.htm here\]. Note that the numbers at the beginning of the cf file names determines the order in which the filters are processed.
Links to other useful info
\[http://developer.apple.com/server/fighting_spam.html\] Fighting Spam on Mac OS Server 10.3 - includes stuff about installing Razor and other useful toolsWiki Markup \[http://www.afp548.com/article.php?story=20051127235810230\] Greylisting - not exactly [SpamAssassin] related, but helpful in a global approach.Wiki Markup \[http://www.afp548.com/\] AFP548.com has gobs of good info about spam fightingWiki Markup - http://en.wikipedia.org/wiki/Mac_OS_X/ Mac Os X Wiki
- Mac Os Articles
\[http://osx.topicdesk.com/\] the creators of the spamtrainer script and other software, as well as some Mac OS X tutorials (that were used in part for the writing of this article). Thanks to Alex who was kind enough to correct some of my errors on this page.Wiki Markup