After checking my webmaster and root emails (and my dad’s email account, that he shares with EVERYONE :> ) and finding 65 THOUSAND spam messages in the Junk folders, I decided it was time to throw down the gauntlet. I’m proud to say that now I’m absolutely crushing spam.

I am using rules from razor2, dcc, pyzor, SARE and the sa-blacklist, updated daily, along with Bayesian filtering.

SpamAssassin rates incoming email using the rules, and adds the spamscore to the header. If the spamscore is high enough (4 or more in my case), it puts SPAM in the title and safely wraps the content. I then use a sieve rule to dump SPAM-titled mails into each user’s Junk folder at the end of the processing.

I took it a step further because I was PISSED at the volume I’m getting. I have NEVER gotten a false positive in all my checking, so I updated postfix to DISCARD emails with a spamscore of 10 or higher. With the high quality rules I’m using, I now have the good fortune to never even see the obvious spam anymore.

To configure postfix to drop high-scoring spam, add a line to main.cf to do header checking:

header_checks = regexp:/etc/postfix/throw_away_high_score_spam

Then create throw_away_high_score_spam and add this:

/^X-Spam-Level: \*{10}/ DISCARD

PISS OFF SPAMMERS! 😛

UPDATE: A few spams were slipping through at scores around 3.5, I’m dropping my SPAM score trigger to 2.0. I still have yet to get a false positive.

UPDATE UPDATE: My first and only false positive, on Bruce Schneier’s August 2008 Cryptogram newsletter. He’s always causing trouble. :> Steady on.

I’m humming along with amd64 gentoo. Small annoyance: seems like whenever firefox or a related package gets bumped, I have to rerun this to get my flash working again. No big deal, just here for my reference:

nspluginwrapper --install /usr/lib32/nsbrowser/plugins/libflashplayer.so
restart firefox
phpMyAdmin Designer

Flashback to 1997. phpMyAdmin with the Designer view gives us an Access-ish design space with InnoDB-supported foreign keys, whee! For some stupid reason it’s a little tricky to set this up – you have to set up a special phpmyadmin database to track the extra layout information, and then configure phpMyAdmin to use it.

(continued…)

To get around this, just turn off “automatically select mirror” and you’ll get the nice full list of mirrors to select from. In my case, it was repeatedly selecting software-mirror.com, even though it was not up-to-date and kept failing. Switched to a Georgia Tech mirror and I was golden.

Window->Preferences->Install/Update->Automatically select mirrors-> uncheck
Help->Software Updates->Find and install...->Search for updates->Finish
(the mirror selection screen appears)

iptraf is great to quickly monitor network usage. Just don’t forget Heisenberg’s uncertainty principle (or, to be more technically correct, the observer effect) – using iptraf over a proxied ssh connection adds about 6.6 kbps of usage just for the tool used to measure usage. Fun fun! :>

Here’s a script that you can run to measure bandwidth in the background, removing some of the overhead of trying to visually display in realtime the very thing you’re measuring:

#!/bin/bash

if [ -e /var/log/iptraf/bandwidth.txt ]
then
    rm /var/log/iptraf/bandwidth.txt
fi

export SAMPLETIME=1
export SLEEPTIME=62
iptraf -B -t $SAMPLETIME -i all -d eth0 -L bandwidth.txt
sleep $SLEEPTIME
cat /var/log/iptraf/bandwidth.txt|grep kbits