[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: qmail or postfix? (was: RE: What is the best mailling list manager for qmail and Domain Tech. Control ?)



On Thursday 19 February 2004 23.28, Craig Sanders wrote:
> On Thu, Feb 19, 2004 at 09:34:52PM +0100, Bj?rnar Bj?rgum Larsen wrote:
> > For example, I'd like comments on
> > http://homepages.tesco.net/~J.deBoynePollard/Reviews/UnixMTSes/postfix.ht
> >ml
>
> a collection of lies, half-truths, and mistruths.

Since Bjørnar was asking for qualified information, let's do the dance for 
him...

| It has an official web page, but no third-party user-run web pages. 

http://www.aet.tu-cottbus.de/personen/jaenicke/postfix_tls/
http://www.kobitosan.net/postfix/
http://postfix.state-of-mind.de/patrick.koetter/smtpauth/

| However unlike qmail, there is not a large cottage industry producing
| third-party extensions and contributions to Postfix. This is because the
| modules in Postfix are more tightly coupled to one another and the
| interfaces between them are undocumented, making it harder to write
| third-party add-ons and replacement modules for Postfix than for qmail.    

http://www.postfix.org./addon.html

| Also, this modularity does not extend to Postfix' configuration files.
| Postfix is firmly in the same camp as exim and Sendmail here. It uses two
| large monolithic configuration files, master.cf and main.cf, rather than
| multiple simple small task-oriented configuration files. Like with all

True, but is in the 'it's a feature, not a bug' category: you have all the 
info in one place, and you have comments in the default and (lots of) example 
conffiles. I guess exim4 has the best of both worlds here with a .d style 
directory, I wonder if postfix will follow suit here.

| applications that choose this route, configuring Postfix thus requires that
| one learn a set of configuration file keywords, and automated configuration
| cannot be easily done under script control with echo and cat.       

There is postconf, and if add sed/awk to your toolset, you are not so 
helpless. Besides: how often do you do scripted reconfiguration of your 
mailer? I touch conffiles less than every month.

| The glaring omission is a secure queue submission mechanism. Here Postfix
| trades the appearance of security for actual security. Postfix boasts that
| as standard it has no set-UID or set-GID programs, which superficially
| appears to be an attractive feature. However, this boast comes at a price.
| The price is that local users can place arbitrary junk into the mail
| submission area, or delete submitted messages. Both qmail and MMDF avoid
| this by having a non-world-writable submission directory and the program
| that does the writing to that directory (qmail-queue and submit,
| respectively) set-UID to its owner (the only set-UID program in the entire
| package in the case of qmail).

Huh?

Users can send arbitrary junk in mail. Wow. Unique feature of postfix, sure.

The only world writable things I could find in /var/spool/postfix were the 
sockets - so everybody can open the sockets and fifos in the 'public' 
directory. I guess this makes sense as everybody should be permitted to send 
email.

| Furthermore, Postfix does not even fully utilise the user partitioning
| capabilities of the operating system to fully insulate users from other
| users as qmail does.   

You'd have to read the code to assess these.

| Which daemons in Postfix run as root is not documented in the manual pages. 

ps is a handy tool, for one thing. Also, the man pages *do* have a 'SECURITY' 
section, where it say things like 'The qmgr daemon does not talk to  the 
outside  world,  and  it  can be run at fixed low privilege in a chrooted       
environment.'

| Postfix contains numerous configuration options, particularly in the area of
| SMTP Relay service. However, the flexibility of Postfix is in many ways
| illusory. Many of the configuration options control features that are
| half-baked ideas from the Half-Baked Ideas Brigade.    

The two examples, smtpd_helo_restrictions and reject_unknown_client, *can* be 
used by site administrators. The default configuration afaik leaves them out. 
The documentation does describe what they do - and anybody with a bit of 
experience in fighting spam can see why they are useful. 

| There are several different "mbox" formats. MTSes such as qmail use the
| "mboxrd" format that was proposed by Rahul Dhesi on 1995-06-04, which uses a
| reversible encoding of "From " lines in messages. However, Postfix uses the
| "mboxo" format instead. The encoding of "From " lines is not reversible in
| this format, and where the original message contained a "From " line there
| is no means for an MUA to obtain the message in its original form as it was
| before Postfix delivered it to the mailbox.       

Somebody else will have to comment on that - I've got no idea what he's 
talking about here.

| Postfix always requires DNS service. 

Dunno, never have tracked DNS calls.

| Postfix modifies in-transit and inbound mail. 

I think the idea here is that any mail postfix spits out is regular mail 
according to the RFCs.

| Postfix apes Sendmail

/usr/sbin/sendmail is the official interface to inject mail into the system. 
Since a /usr/sbin/sendmail intercface is expected, why not provide it 
natively, instead of first writing a different mail injection tool and then 
emulating sendmail on top of that?

[sendmail interface provided]
| - This is equally true of those MTSs that merely supply shims; 
| - Postfix' emulation of the Sendmail command line syntax is, and always will
| be, incomplete;  

As will the other MTAs emulation of sendmail's cmdline syntax. It has all the 
syntax required for mail submission, it doesn't have any of the options to do 
administration. Works for me.

| the number of MUAs where the interface to the MTS is configurable is 
| growing; and  

The mass of deployed software which expects /usr/sbin/sendmail is still here.

| because it has chosen to emulate another MTS' command line, Postfix has no
| native mail submission mechanism of its own that MUAs could use if they
| wanted a more powerful and more regular MTS interface than that of Sendmail.   

Postfix *does* have a native mail submission mechanism: /usr/sbin/sendmail. It 
offers all control you can get: you can set the envelope to what you which, 
you can send as mail text what you wish.

| Postfix uses /etc/aliases, recognises and obeys ~/.forward files, and
| delivers to "mbox"-style mailboxes in /var/spool/mail. ("Maildir" format
| mailboxes are supported as an option, however.) Again, it does not have more
| powerful mechanisms of its own that can be used instead. These are its
| native mechanisms. Postfix is largely only as flexible as Sendmail is.     

Postfix is designed as a sendmail replacement. However, it is trivial to 
incorporate different MDAs, and to have other /etc/aliases-styke maps. The 
number of available map types is truly staggering, and growing fast. I think 
it's difficult to come up with a mail configuration where you can't use 
postfix in a sensible way.

| For example: Postfix does not provide native mechanisms for sorting into
| multiple folders or filtering mail (equivalent to qmail's ~/.qmail files,
| MMDF's ~/.maildelivery files, or exim's filter files). One has to resort to
| third party local delivery agents such as procmail for this.    

So what? postfix is an MTA, not an MDA. Remember the Unix way: lots of 
different tools to build your system, each does its task?

| Postfix is only available in source form, not as precompiled or prepackaged
| binaries. There is a list of FTP sites that hold the source tarball on the
| official web site.   

And how comes that Debian has a well configured postfix precompiled, but not 
qmail?

>
> the best that can be said about this document is that the author doesn't
> know what he is talking about.

I guess the document was written years ago, when postfix did indeed lack 
*some* of the features people did expect (one of them being the ability to 
reject mail instead of bounce it ;-)

>
> > and
> > http://homepages.tesco.net/~J.deBoynePollard/Reviews/UnixMTSes/qmail.html
>
> biased bullshit and boosterism.  rah rah rah! worship bernstein.

| It supports all of the more recent innovations that one would expect of a
| modern mail system:  
|
| delivery to Maildir format mailboxes, 

postfix is basically not an MDA, but an MTA and includes a trivial MDA only.

| host and user masquerading, 
| virtual users, 
| virtual domains, 
| users that are not in /etc/passwd, 
| SMTP Relay being denied by default, 
| per-host SMTP Relay control, 
| consultation of SMTP client blacklist and whitelist databases (using 
|   rblsmtpd from UCSPI-TCP), and  
| an 8-bit clean SMTP server. 

postfix does all of these.

| ... the POP3 server ...

Huh? I thought we were talking about an MTA, not a POP server?

| large monolithic configuration files with complex structures (that have to
| be read and parsed every time that a new mail process is created, only to

How often does this happen? We're not in the sendmail one-mail-is-one-process 
world anymore!

| have 70% or more of that information remain unused because it is irrelevant
| to the task at hand). qmail's configuration comprises individual files
| in /var/qmail/control, each file having a single job.

configuration files in /var? Sure.

| qmail provides a flexible aliasing/forwarding mechanism: .qmail files. 

Which are not supported by any other software package, to make migration as 
big a problem as possible.

qmails MDA sure has more possibilities than postfix' one. But see above.

| The installation instructions are out of date. It is now recommended that
| the qmail daemons (qmail-start and qmail-smtpd) be controlled by daemontools
| rather than /etc/inittab or /etc/init.d/*, because it provides finer control
| and does not have race conditions when starting and stopping daemons.
| Similarly, for SMTP server support it is recommended that UCSPI-TCP be used
| instead of inetd, because UCSPI-TCP can enforce inbound concurrency limits
| in a reasonable manner.       

And why is there a difference between documentation and 'recommended 
practice'? Not good.

Btw, the two web pages don't say anything at all about spam control, an area 
where postfix imho excels. Also not covered: postfix uses the standard 
message/report MIME format for bounces, qmail does not. postfix can reject 
early in the SMTP transaction in most cases, while qmail has become a major 
annoyance on the Internet because it frequently has to bounce mail after 
accepting it.

cheerio
-- vbi

-- 
featured link: http://fortytwo.ch/smtp

Attachment: pgpKWmK4yGLUI.pgp
Description: signature


Reply to: