Email Server

I’m not a big fan of using greylisting to cut down on email spam, since it tends to big a big pain in the ass when I run into it running on other email servers. On the other hand the amount of incomming spam has risen to a level where I decided it’s time to really do something about it (not that Spamassassin was doing a bad job, but it shouldn’t have to go through hundreds of mails each day to sort out the 15-20 real mails).

So I did a quick google what packages were recommended for greylisting with exim, and ended up using “greylistd” which came with a nice example config for exim. I went through the config and loosened up the settings a bit. And after letting it run for 2 days, the stats say that a bit over 96% of incoming mail was never retried (e.g. either spam, or a crappy MTA sending me mail).

Next thing I’m having a look at is SPF. I’ve got it up and running, but it only throws warnings to the log right now, doesn’t block anything (same goes for messed up DNS entries of servers sending me mail).

Something positive I noted was that the number of MTA servers supporting TLS connections seems to be rising. Server <-> Server encryption of data is a good thing. Having users view and send mail via secure HTTPS/SSL/TLS cconnections is pretty useless if the mails gets forwarded to the destination in plaintext.

nForce4 and ActiveArmor

God that crap just cost me a half a day getting my network running again. Even had to downgrade my bios to get my network running again. It was so messed up, that it didn’t even work when I booted from a linux CD. Crappy nForce drivers and crappy nvidia ethernet port. Windows didn’t work again until I installed the stupid nvidia firewall software because for some strange reason there is no other way to turn off nvidia’s ActiveArmor junk.

How stupid is that, having to install useless firewall software in able to turn off the firewall.

dialog

Yeah, every time I write a oneliner that could use a nice curses gui I go and forget what the prog is called to easily make them. DIALOG, god I must be getting old, couldn’t remember that if my life depended on it.
Anyway, anyone who wants to spiff up a nice little command line thingy should have a look at it, makes life tons easier.

rrdtool magic

I upgraded some rrdtool graphs today (in the examples below, I was using weekly graphs). First I smoothed out some of the data with TREND. That was pretty easy, you just specify which data and the timeframe it should use to smooth out: CDEF:trend_data=data,21600,TREND smooths out data by 6 hours (21600 seconds). trend_data can be used afterwards (for LINE, AREA, ….) The DEF will have to be expanded a bit so that enough data is available for the TREND, I just added a days woth of data to begining and end by adding the following to the end of my DEF statement :start=now-8d:end=now+1d

The whole trend would look kinda like this:
rrdtool graph image.png \
–width 500 –height 200 \
–end now –start now-7d \
–vertical-label “data” \
DEF:data=some.rrd:data:AVERAGE:start=now-8d:end=now+1d \
CDEF:trend_data=data,21600,TREND \
LINE1:trend_data#000000:”smoothed out data”

The next thing I played around with, was extrapolating the data and drawing a projection. Fist thing to do, is open up the graph to end a few days in the future, easy to do with the –start and –end options: –end now+3d –start now-7d Now lets make DEF over the time range we want to use for the projection, this example will use the data of the last two weeks: DEF:data=some.rrd:data:AVERAGE:start=now-2w:end=now+3d All we need now is a little rrd magic I found in the depths of the internet:
VDEF:D=data,LSLSLOPE \
VDEF:H=data,LSLINT \
CDEF:projection=data,POP,D,COUNT,*,H,+ \
LINE1:projection#BB2030:”2 week projection”

Ok, if we throw both trend and projection together we end up with a cute little rrd mess that looks something like this:
rrdtool graph image.png \
–width 500 –height 200 \
–end now –start now-7d \
–vertical-label “data” \
DEF:data1=some.rrd:data:AVERAGE:start=now-8d:end=now+1d \
DEF:data2=some.rrd:data:AVERAGE:start=now-2w:end=now+3d \
CDEF:trend_data=data1,21600,TREND \
LINE1:trend_data#000000:”smoothed out data” \
VDEF:D=data2,LSLSLOPE \
VDEF:H=data2,LSLINT \
CDEF:projection=data2,POP,D,COUNT,*,H,+ \
LINE1:projection#BB2030:”2 week projection”

programming

Haven’t posted in a while, not much going on. Currently the only thing half way interesting is a small web application I’m writing. Every few hours it checks the database of World of Warcraft, and saves in a database who is in which guild. When it is done you can see which players switched guilds when. I’ve got all kinds of funny statistics going on in my head that I can generate out of that data. Since there is no list of all characters oder guilds on a realm, I wrote it to automatically expand the checks when it discovers new characters or guilds. Currently it is watching about 2000 horde players in the EU realm Kil’jaeden. Given the high fluctuation of people joining or leaving guilds, I’d say that after about 2 weeks I should have about 80% of the larger guilds on the realm.

Not much I can show right now since I’ve only written the back end (database, and script to scan and save data). No front end yet, I still have about a week or two till enough data has been saved to actually write and test a front end.