[[:TuxSoftware]] (The following subject to correction) ====== SpamAssassin ====== ===== Overview ===== * Can run in various modes * For us, runs as a filter that MTA postfix uses * Permanently running spamd (daemon), transiently running spamc (clients) * SpamAssassin scores the email - something else can decide what to do with it * SpamAssassin adds a header with the score to the email itself * Mailman uses the Spamassassin score * score > 10 -> mailman discards automatically * score < 5 -> mailman accepts * 5 > score > 10 -> mailman submits to moderator for human decision ===== SpamAssassin docs ===== * http://spamassassin.apache.org/doc.html * /usr/share/doc/spamassassin/ ===== SpamAssassin - MTA - mailing list integration ===== * We use postfix as our MTA * We use mailman as our mailing list manager ===== SpamAssassin - config ===== * /etc/default/spamassassin * /old/etc/default/spamassassin * /etc/spamassassin/ * /old/etc/spamassassin/ * /old/var/lib/spamassassin/ * I searched for "spamassassin configure debian postfix mailman" * found http://www.debuntu.org/postfix-and-pamassassin-how-to-filter-spam * http://workaround.org/articles/ispmail-sarge/ * http://www.debian-administration.org/users/kaerast/weblog/1 * http://www200.pair.com/mecham/spam/spamfilter20050626.htm * http://www.digital-experts.de/doc/mailman/README.Debian * and for reference: * http://www.debian.org/doc/packaging-manuals/fhs/fhs-2.3.html#VARLIBVARIABLESTATEINFORMATION * and http://www.nl.debian.org/doc/debian-policy/ch-opersys.html#s9.1 * Note that some of the above documents are "out of date". That's ok, - our distro is "out of date" too so these docs will match our setup * There's way too much here, some packages we don't use (yet? Amavis?) and some if the advice conflicts. Happy research. update: * I searched for "mailman spamassassin debian" and found: * http://www.python.org/cgi-bin/faqw-mm.py?req=edit&file=faq04.023.htp * http://mail.python.org/pipermail/mailman-users/2005-January/041686.html * http://www.digital-experts.de/doc/mailman/README.Debian * http://groups.google.ca/group/linux.debian.bugs.dist/browse_thread/thread/5aedd1dc35926265/001ded10ef3f964c?lnk=st&q=mailman+spamassassin+debian&rnum=1&hl=en#001ded10ef3f964c ====== SpamAssassin Quick & Dirty Config ====== I found this and tried it out on our site: http://www.xnote.com/howto/postfix-spamassassin.html. It seems to have everything necessary and appears to be working. It's been edited to match what we have set up locally. * Install postfix and get it working for your domain. See http://www.postfix.org for details. * Install SpamAssassin. The easiest way to do this is with the command "perl -MCPAN -e 'install Mail::!SpamAssassin'" OR you can compile it. Another way is to use an RPM (!RedHat or Fedora) or "apt-get install postfix spamassassin spamc" (if you have debian) * As root, create a file at /usr/local/bin/spamfilter.sh with the following content: #!/bin/bash /usr/local/bin/spamc | /usr/sbin/sendmail -i "$@" exit $? * Run: chmod 755 /usr/local/bin/spamfilter.sh and make sure you have it executable: ls -als /usr/local/bin/spamfilter.sh * Create a user called 'spamfilter'. Make it a complete user, with home directory and shell. (set the shell to false) example: useradd -m -d /home/spamfilter -s /bin/false spamfilter * Run chown spamfilter:users /usr/local/bin/spamfilter.sh * In /etc/postfix/master.cf in the "Services" section, alter the 'smtp' line as follows (the " -o con..." SHOULD be on the next line: //NOTE there are two lines that have smtp. Make sure it is the inet line (Usually the first occurrence)// # ----------------------------------------------------------------------------------- smtp inet n - n - - smtpd -o content_filter=spamfilter:dummy # ----------------------------------------------------------------------------------- * In /etc/postfix/master.cf in the "Interfaces to non-Postfix software" section add: # ----------------------------------------------------------------------------------- spamfilter unix - n n - - pipe flags=Rq user=spamfilter argv=/usr/local/bin/spamfilter.sh -f ${sender} -- ${recipient} # ----------------------------------------------------------------------------------- * Make sure that SpamAssassin is configured to run: * Edit /etc/default/spamassassin and change the enabled line to 1 from 0 * Issue the command "/etc/init.d/spamassassin start" to get it started * Check /var/log/mail.log to see that the spamd process started * Make sure the symlinks are in the appropriate runlevel directories * Restart postfix and make sure you can still get email. Send a fake spam through the system (from an outside address) to verify that spam is marked as spam. For information on configuring SpamAssassin, go to http://www.spamassassin.org.