Writing

Software, technology, sysadmin war stories, and more. Feed
Monday, November 8, 2021

The hardware behind my old mail filtering server

In writing about my dumb little "mailserv" project this past weekend, I purposely avoided mentioning some of the parameters lest they distract from the message I was trying to convey. My attempted message was something along the lines of "everyone starts somewhere, ignorance is the default state until changed, and look at some of the shit I have inflicted upon the world as proof".

I figured it might be interesting to talk a little about where this thing actually ran, and the environment which brought it into being. This was my public school district gig, and it involved a bunch of crap hardware being pressed into doing all kinds of real world problem-solving.

In the case of the mailserv project, that is, the thing that did what we'd call "greylisting" today, it ran on an auxiliary box that itself only existed because of yet another terrible hack involving a second T1 and the systemic inability to run BGP properly. I've talked about the finer points of that before, and it's not really on topic here. But, keep in mind that it meant from 1997 forward, I had a machine running Squid just so we could push some web traffic out this secondary (fractional) T1 to take the load off the main circuit.

Since this box was given to me in 1997 and it was from the stack of stuff which had been going into classrooms, it was a "screwdriver shop" Pentium 150. That is, the local vendor in town which had won the contract to supply all 2000-something desktop machines across the entirety of the schools was building them from piles of parts, much as people do today when they custom-build their own systems.

It was relatively cheap shit, and it had no special "server" features.

This is not just my memory talking. I went back to the last snapshot of my "sysadmin notebook" and pulled up the page for this box. Then I took a screenshot to prove what kind of crap hardware it had. Check this out.

Screenshot of ancient P150 box docs

[I've jammed it together to make it fit the page here.]

That's a Pentium 150 with 128 megabytes of memory, a (PATA!) IDE hard drive with just 1.6 GB of space, a 10 Mbps Ethernet card, plus a video card, CD-ROM drive and Sound Blaster that meant nothing, because it was a server. (The SB16, incidentally, proves this was intended to be a classroom box running Kid Pix for some elementary school students.)

As a server, what did it do? Oh, well, it ran a ssh daemon obviously, but since it was on this secondary T1, it ran sendmail so we could get mail through that route when the main one was down. It also ran named from BIND so we could serve up authorative DNS when the main route was down. Then it had Squid on it to relay http requests while trying its very best to cache things so we didn't load the connection too badly.

All of this in 128 MB of memory and a gig and a half of disk space.

Late in 2002, or five years into this machine's tenure as one of my servers, I used it to run the first version of mailserv. It had to sit on this box next to everything else that was already going on here. MySQL came along eventually as a backing store (to replace my own in-memory process stuff) and of course further complicated the balancing act.

Instrumenting things to find slow points and trying to do something about it made for a bunch of little changes over the year or two that this spam filtering service existed. Everything was driven by actual needs and a distinct lack of system resources. It kept up with the load and stopped a great many things that otherwise would have annoyed my users.

This is just an example of what we did with what was available then.