postfixthedefinitiveguide-dent2004

2026-07-21

Postfix The Definitive Guide

by Kyle D. Dent Foreword by Wietse Venema

O’Reilly 2004

Page Remark
ix “All programmers are optimists” - Frederick P. Brooks Jr.
“The Mythical Man-Month” - Frederick P. Brooks Jr.
Postfix
IBM
New York
Read The Friendly Manual
Kyle Dent
x Hawthorne, New York
xi Internet
Sendmail
cybersecurity
documentation
mailing list
Postfix mailing list
xii Unix
Unix System Administration Handbook - Evi Nemeth
Prentice-Hall
RFCs
email
Postfix queue manager
DNS
Local Delivery, POP, IMAP
xiii virtual domain
mail relay
mail gateway
mailing list
Majordomo
Mailman
Unsolicited Bulk Email (UBE)
SASL
SASL Authentication
Transport Layer Security (TLS)
content filtering
Postfix lookup tables
database
Postfix command
Postfix configuration parameter
Compiling Postfix
Installing Postfix
xv Andy Oram - Editor
Lenny Muellner
David Chu
Robert Romano
Rob Dinoff
Viktor Dukhovni a.k.a. Victor Duchovni
Lutz Janicke
Alan Schwartz
postfix-users@postfix.org list
1 Arpanet
Sendmail, released in early 1980s, was dominant
SMTP
Sendmail monolithic architecture
Sendmail security issues
Postfix originally designed as a replacement for Sendmail
Sendmail was complex to install
IBM Research sponsored initial release of Postfix
Postfix was written by Wietse Venema
Wietse Venema widely known for his security tools and papers
2 Postfix design goals: Reliability, Security, Performance, Flexibility, Ease of use, Sendmail compatibility
concept of least privilege
attack surface reduction by disabling unused modules
/etc/aliases
.forward
3 Mail User Agent (MUA)
mutt, elm, Pine, Netscape Communicator, Outlook Express
Mail Transfer Agent (MTA)
Internet Service Provider (ISP)
Information Systems
4 Message Delivery Agent (MDA)
message store – persistent message storage
Internet Engineering Task Force (IETF)
standard, protocol
Request For Comments (RFC)
RFC 2821 - SMTP
RFC 2026 - IMAP
RFC 1939 - POP
dial-up ISP
5 email submission
DNS
6 “Email systems are necessarily exposed to possible attacks because their function requires that they accept data from untrusted systems.”
hostile environment
proactive
security vulnerability
7 software module
privileged process
droppping privileges
shell
process
environment variable
data sanitation
interprocess communication
process insulation
firewall
computer network
signal
parent-child inheritance
shared memory
buffer overflow
fixed-size buffer
chroot
/var/spool
exploit
8 DoS
https://www.postfix.org
source code
software package
operating system
obtaining Posftix
10 UID
/etc/passwd
user
11 pseudo-account
home directory
login shell
password
Postfix runs under a pseudo-account
stdin, stdout, stderr
superuser
command prompt
root user
differences in command prompts between root and other users
12 long lines broken up with backslash character
manual pages
man command
mailq command
RFC 821
RFC 822
13 RFC 2821
RFC 2822
postmaster - the email administrator
RFC 2142 states that a postmaster alias is required
SMTP conversation
email rejection
email bounce
MTAs that accept messages take responsibility for a message
undeliverable email
14 envelope address
email address
email headers
RFC 2822 - format of email addresses description
local part, @ separator, domain name
lefthand side (LHS) – local part, righthand side (RHS) – domain
RFC 822 message, RFC 822 format
email header
email body
email message
15 Date: and From: are required fields
custom email fields
ASCII
binary files transmitted via email must encode to ASCII
MIME
MIME encoding
uuencode
Received: header
SMTP conversation
16 example email delivery
telnet command
port 25 – well-known port for SMTP
17 SMTP response codes
2xx - successful actions
3xx - command accepted, but server requires additional information
4xx - command unsuccessful, but problem is temporary
5xx - command unsuccessful, problem is permanent
HELO command
MAIL FROM command
RCPT TO command
DATA command
end data with “CRLF . CRLF”
18 QUIT command
RFC 1869
ESMTP
EHLO command
19 daemon
master daemon (Postfix)
main.cf, master.cf
20 maildrop directory
postdrop command
sendmail compatibility program
pickup daemon
cleanup daemon
trivial-rewrite daemon
TLD
virtual lookup table, lookup table
21 smtpd daemon
local vs network email delivery
22 defer daemon
bounce daemon
email forward
Postfix queue manager
address classes: local, virtual alias, virtual mailbox, relay
23 local delivery agent
mydestination parameter
virtual alias
virtual_alias_domains parameter
virtual_alias_maps parameter
virtual delivery agent
virtual maimbox
relay domain
when to use relay domains
open relay
24 smtp agent
smtp delivery agent
class_transport parameter
transport_maps parameter
LMTP
lmtp, pipe agents
25 pipe daemon delivers email to external commands
content filter
FAX machine

Links to this note