For installing postfix, run the following command

#apt-get install postfix or aptitude install postfix

For configuring read the comments and change accordingly

#nano /etc/postfix/main.cf

smtpd_banner = $myhostname ESMTP $mail_name (example.com)
biff = no
append_dot_mydomain = no

### your hostname here
myhostname = server

mydomain = example.com
myorigin = $mydomain
inet_interfaces = all
mydestination = $mydomain, localhost.$mydomain, localhost

### your allowed networks
mynetworks = 127.0.0.0/8,192.168.1.0/24

smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $mydomain
broken_sasl_auth_clients = yes

smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination

home_mailbox = Maildir/
alias_maps = hash:/etc/aliases

### your ISP SMTP relay
relayhost = relay.yourisp.net

smtpd_recipient_limit = 250

readme_directory = /usr/share/doc/postfix
html_directory = /usr/share/doc/postfix/html

Or do the following

#dpkg-reconfigure postfix

Insert the following details when asked (replacing server1.example.com with your domain name if you have one):
  • General type of mail configuration: Internet Site

  • NONE doesn't appear to be requested in current config

  • System mail name: server1.example.com

  • Root and postmaster mail recipient: <admin_user_name>

  • Other destinations for mail: server1.example.com, example.com, localhost.example.com, localhost

  • Force synchronous updates on mail queue?: No

  • Local networks: 127.0.0.0/8

  • Yes doesn't appear to be requested in current config

  • Mialbox size limit (bytes): 0

  • Local address extension character: +

  • Internet protocols to use: all


To configure the mailbox format for Maildir:
#postconf -e 'home_mailbox = Maildir/'
You may need to issue this as well:
#postconf -e 'mailbox_command ='


Note: This will place new mail in /home/username/Maildir so you will need to configure your Mail Delivery Agent to use the same path.

Configure Postfix to do SMTP AUTH using SASL (saslauthd):

#postconf -e 'smtpd_sasl_local_domain ='
#postconf -e 'smtpd_sasl_auth_enable = yes'
#postconf -e 'smtpd_sasl_security_options = noanonymous'
#postconf -e 'broken_sasl_auth_clients = yes'
#postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'
sudo postconf -e 'inet_interfaces = all'


Then append the following lines in /etc/postfix/sasl/smtpd.conf

pwcheck_method: saslauthd
mech_list: plain login


Generate certificates to be used for TLS encryption and/or certificate Authentication:

touch smtpd.key
chmod 600 smtpd.key
openssl genrsa 1024 > smtpd.key
openssl req -new -key smtpd.key -x509 -days 3650 -out smtpd.crt # has prompts
openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650 # has prompts
sudo mv smtpd.key /etc/ssl/private/
sudo mv smtpd.crt /etc/ssl/certs/
sudo mv cakey.pem /etc/ssl/private/
sudo mv cacert.pem /etc/ssl/certs/


Configure Postfix to do TLS encryption for both incoming and outgoing mail:

sudo postconf -e 'smtp_tls_security_level = may'
sudo postconf -e 'smtpd_tls_security_level = may'
sudo postconf -e 'smtpd_tls_auth_only = no'
sudo postconf -e 'smtp_tls_note_starttls_offer = yes'
sudo postconf -e 'smtpd_tls_key_file = /etc/ssl/private/smtpd.key'
sudo postconf -e 'smtpd_tls_cert_file = /etc/ssl/certs/smtpd.crt'
sudo postconf -e 'smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem'
sudo postconf -e 'smtpd_tls_loglevel = 1'
sudo postconf -e 'smtpd_tls_received_header = yes'
sudo postconf -e 'smtpd_tls_session_cache_timeout = 3600s'
sudo postconf -e 'tls_random_source = dev:/dev/urandom'
sudo postconf -e 'myhostname = server1.example.com' # remember to change this to yours


Now  /etc/postfix/main.cf  file should have the following

# See /usr/share/postfix/main.cf.dist for a commented, more complete version

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

myhostname = server1.example.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = server1.example.com, example.com, localhost.example.com, localhost
relayhost =
mynetworks = 127.0.0.0/8
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
smtpd_sasl_local_domain =
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
smtpd_tls_auth_only = no
#Use these on Postfix 2.2.x only
#smtp_use_tls = yes
#smtpd_use_tls = yes
#For Postfix 2.3 or above use:
smtp_tls_security_level = may
smtpd_tls_security_level = may
smtp_tls_note_starttls_offer = yes
smtpd_tls_key_file = /etc/ssl/private/smtpd.key
smtpd_tls_cert_file = /etc/ssl/certs/smtpd.crt
smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom



#/etc/init.d/postfix restart




Setup Postfix SASL Authentication

#nano /etc/postfix/sasl/smtpd.conf
pwcheck_method: saslauthd
mech_list: plain login
 
 
 
 
 
 
https://help.ubuntu.com/community/Postfix
https://help.ubuntu.com/community/PostfixBasicSetupHowto 

https://help.ubuntu.com/community/PostfixCompleteVirtualMailSystemHowto

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


Advertisements