Wietse Venema is best known for writing the Postfix email system; he also wrote TCP Wrapper, and SATAN that probably many system administrators have used for many years. In his presentation: "Postfix: Past, Present, and Future" he shared the lessons learned while developing and architecting postfix, and also offered a few thoughts on the future of postfix.
Its hard to believe, but postfix was started 12 years ago! Its primary goals were to be more secure, easier to configure and provide better performance compared with existing systems. Wietse is often asked why he decided to write yet another email system? why not improve one of the many existing ones? and the answer is that compared with other systems postfix was designed from the ground with flexibility in mind. One of the core design decisions was to break the system into smaller pieces, in order to improve security and reduce the number of bugs. This is completely different to, for example, sendmail code base where everything is in a single program, in a single daemon.
Postfix implementation made it easier to build a secure system. In postfix, each daemon will run with limited privileges, and only the few ones that need super user access will use that. Right now in postfix there are 24 daemons, 13 commmands, and even if this might look complex, this strategy to divide and conquer made it easier to maintain and also to add new features to the core. It allowed postfix to focus on core parts like SMTP, SASL, LDAP, DNS, Milter, etc. and let other people build and easily integrate other features like antivirus, andtispam, spf, etc.
Adopting and using the sendmail milter protocol was a smart move as it allowed postfix to open up and access a large collection of available applications that were written for milter and primary use with sendmail. This required some reimplementation of the milter protocol, as sendmail is a monolitical program with everything in a single program, while postfix is a distributed implementation but it was worth it (and actually Wietse was even awarded the Sendmail Milter Innovation Award, "for extending support for the Milter protocol to the Postfix MTA" in 2006).
In 2006 postfix was declared completed! and now most of the focus is spent on maintaining it. Postfix has grown to almost 120k lines of code and even if Wietse has worked on some other projects, this has taken most of his time during all these years. Even if it is not easy to get statistics on email server usage in the real life, there were some reports that have shown that postfix is in use by almost 8,6% of the internet mail servers, and ranked second after sendmail (that had about 12,3%). Very impressive for a system that is not installed by default by many linux distributions like sendmail or exim are.
Besides maintaining the current code, the current development goes into fighting the current threats any email server faces these days: spam. 92% of mail is spam, 95% of spam is from botnets, and these zombies suck the life out of the email server. Assuming the zombie problem will get worse with time, much of the focus in postfix is going currently in fighting agains this issue. As a temporary overload strategy, postfix is trying to work faster and spend less time per smtp client (a 5min timeout doesn't make sense and lowering such timeouts can help a lot) while the longer term strategy is using the postscreen workflow that was designed to address this issue. Postscreen server performs triage on multiple inbound SMTP connections in parallel. While a single postscreen process keeps spambots away from Postfix SMTP server processes, more Postfix SMTP server processes remain available for legitimate clients.
If you are a mailserver administrator and don't use already postfix, I highly recommend to check it out and give it a try. If you are already using postfix, you might want to check out the new features like postscreen that can help with the current email threats.
- Log in to post comments
Comments
[...] This post was mentioned
[...] This post was mentioned on Twitter by James Payne, Planet SysAd. Planet SysAd said: USENIX Update: Postfix: Past, Present, and Future http://bit.ly/c367ls [...]