Postfix, Rate Limiting Inbound Emails Using SenderScore And Memcache
I received email from someone fiew days ago, he directed me to an article about senderscore and and asked if I could make it usable. Actually, I’m not very familiar with how senderscore work. I’ve read the article and see the FAQ at https://senderscore.org/. I have found that senderscore can be queried with a format like this:
reversed.ip.address.score.senderscore.com
Ie, I want to know the score value of ip address 202.127.97.97, the format of the query would be like this:
1 | $ dig a 97.97.127.202.score.senderscore.com +short |
2 | 127.0.4.75 |
Look at the answers given by senderscore’s NS. last octet is the score of the ip address 202.127.97.97, which scored 75.
Excerpts from senderscore faq:
All scores are based on a scale of 0 to 100, where 0 is the worst, and 100 is the best possible score. A score represents that IP address’s rank as measured against other IP addresses, much like a percentile ranking.
Now back to the article, The authors make a perl module that can perform queries to senderscore ns, put a “reputation score” into memcache, at the same time, calculating how many times an ip address connected to our smtp.
Let’s begin, first of all download Policy::Memcache from this git repository
Create a working directory, and extract the tarball.
1 | $ mkdir pol-mem && cd pol-mem |
2 | $ tar --extract -- file =petermblair-libemail-f73612c. tar .gz petermblair-libemail-f73612c/perl/senderscore/memcache/ |
3 | $ mv petermblair-libemail-f73612c/perl/senderscore/memcache/* . |