I've been slowly moving towards full IPv6 usage on my main machines for the past few months. My main servers all have IPv6 setup and appropriate DNS records in place.
This weekend I configured my mailserver, which is based upon QPSMTPD & exim4, to be available on IPv6 too. Previously it would send mail via IPv6 where appropriate, but only receive mail via IPv4.
QPSMTPD I've written about a lot in the past, and indeed I did commercial things with it for a year or two, but in short it is more of an SMTP framework than an actual mailserver.
These days I use a small collection of plugins which test incoming mail in various ways, and either:
- Reject the mail at SMTP time, causing a bounce, and store a copy of the rejected mail in a quarantine.
- Accept the mail, and pass it on to exim4 for (local) delivery.
My plugins are pretty simple, but I've made a few changes for the brave new IPv6 world:
- Breakdown reverse-DNS checks into IPv4 & IPv6 flavours.
- Avoid using DNSBL for IPv6 addresses.
I reject (+ archive) about 8,000 SPAM messages a day. So far I've seen precisely zero SPAM mails be received via IPv6; though I'm sure that won't last for long!
My reject archive looks like this:
steve@steve:~$ tree -d -L 2 /spam/ /spam/ |-- 23 | |-- debian-administration.org | |-- mail-scanning.com | `-- steve.org.uk |-- 24 | |-- debian-administration.org | `-- steve.org.uk |-- 25 | |-- debian-administration.org | |-- mail-scanning.com | `-- steve.org.uk ... |-- 55 | |-- debian-administration.org | |-- mail-scanning.com | |-- steve.org.uk | `-- stolen-souls.com |-- 56 | |-- debian-administration.org | |-- steve.org.uk | `-- stolen-souls.com |-- today -> /spam/56 `-- yesterday -> /spam/55
(Here "N" is the day of the year - Think of this as "date +%j". I rotate such that I keep 32 days of past SPAM mail, for reference/amusement/mistake-catching.)
ObQuote: "I am already grown up, I just get older. " - Leon