linux_wiki:configure_a_system_to_forward_all_email_to_a_central_mail_server

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
linux_wiki:configure_a_system_to_forward_all_email_to_a_central_mail_server [2016/10/04 22:44]
billdozor [Forward Email: Postfix Setup]
linux_wiki:configure_a_system_to_forward_all_email_to_a_central_mail_server [2019/05/25 23:50] (current)
Line 11: Line 11:
 ---- ----
  
-====== Forward Email: Postfix Setup ======+====== Lab Setup ======
  
-A mail null client forwards local email. It does not receive any mail from network sources.+The following virtual machines will be used: 
 +  * server1.example.com (192.168.1.150) -> Configure SMTP null client (**on the exam**) 
 +  * server2.example.com (192.168.1.151) -> Configure central mail server for client testing (**NOT on the exam**) 
 + 
 +---- 
 + 
 +====== Null Client Setup ====== 
 + 
 +**THIS IS ON THE EXAM**: A mail null client forwards local email. It does not receive any mail from network sources
 + 
 +**From server1**.
  
 \\ \\
Line 29: Line 39:
  
 \\ \\
-Edit the main configuration +Configure postfix parameters 
-<code bash> +  * Option A: Use postconf (faster if you have an idea what parameters you need to configure)<code bash># check a setting 
-vim /etc/postfix/main.cf+postconf relayhost
  
-## Set the origin (where mail came from) to the domain variable +check all settings 
-myorigin $mydomain+postconf | grep <keyword> 
 + 
 +configure - important 
 +postconf -e 'relayhost = [192.168.1.151]' 
 + 
 +# configure - probably already defaults (or set to localhost) 
 +postconf -e 'inet_interfaces loopback-only' 
 +postconf -e 'mydestination =' 
 +postconf -e 'mydomain = example.com' 
 +</code> 
 +  * Option B: Edit the main configuration<code bash>vim /etc/postfix/main.cf
  
 # Relayhost to forward mail to # Relayhost to forward mail to
-# gmail for testing purposes; exam will provide an IP/hostname of a mail server to use +relayhost = [192.168.1.151]
-relayhost = [smtp.gmail.com]:587+
  
-# Forward from loopback interfaces and networks only (local system)+# Forward from loopback interfaces
 inet_interfaces = loopback-only inet_interfaces = loopback-only
-mynetworks = 127.0.0.0/8 [::1]/128 
  
 # Configure destination as blank, because we aren't delivering mail locally (only forwarding outgoing) # Configure destination as blank, because we aren't delivering mail locally (only forwarding outgoing)
 mydestination =  mydestination = 
  
-Prevent postfix from putting mail into mail boxes +Configure domain 
-local_transport error: local delivery disabled+mydomain example.com
 </code> </code>
 +
  
 \\ \\
-**NOT ON EXAM** -> Gmail specific: Add gmail settings to the main.cf file+Check postfix syntax
 <code bash> <code bash>
-vim /etc/postfix/main.cf+postfix check 
 +</code>
  
- +\\ 
-#### Gmail specific settings - NOT ON THE EXAM #### +Restart the service 
-smtp_use_tls = yes +<code bash> 
-smtp_sasl_auth_enable = yes +systemctl restart postfix
-smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd +
-smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt +
-smtp_sasl_security_options = noanonymous +
-smtp_sasl_tls_security_options = noanonymous +
-#### End of Gmail specific settings ####+
 </code> </code>
 +
 +----
 +
 +====== Postfix Central Mail Server ======
 +
 +**THIS IS NOT ON THE EXAM**: This section setups up a mail server to receive mail in order to test the null client configured previously.
 +
 +**From server2**
  
 \\ \\
-**NOT ON EXAM** -> Gmail specific: Config to sign into a secure SMTP+Install postfix
 <code bash> <code bash>
-vim /etc/postfix/sasl_passwd+yum install postfix 
 +</code>
  
-[smtp.gmail.com]:587 username@gmail.com:password+\\ 
 +Enable and start postfix 
 +<code bash> 
 +systemctl enable postfix 
 +systemctl start postfix
 </code> </code>
-  * Replace username and password with actual gmail username and password. 
  
 \\ \\
-**NOT ON EXAM** -> Gmail specific: Set restrictive permissions on the sasl file+Open the firewall to receive SMTP
 <code bash> <code bash>
-chown root:postfix /etc/postfix/sasl_passwd +firewall-cmd --permanent --add-service=smtp 
-chmod 640 /etc/postfix/sasl_passwd+firewall-cmd --reload
 </code> </code>
  
 \\ \\
-**NOT ON EXAM** -> Gmail specific: Convert sasl file so postfix can use it+Edit the main configuration file
 <code bash> <code bash>
-postmap /etc/postfix/sasl_passwd+#-- vim directly 
 +vim /etc/postfix/main.cf 
 + 
 +# listening interfaces 
 +inet_interfaces = all 
 + 
 +# Accept mail for these domains 
 +mydestination = example.com, server2.example.com, server2 
 + 
 +#-- postconf method 
 +  
 +# check settings 
 +postconf | grep inet_ 
 +postconf | grep mydestination 
 +  
 +# configure 
 +postconf -e 'inet_interfaces = all' 
 +postconf -e 'mydestination = example.com, server2.example.com, server2'
 </code> </code>
  
Line 93: Line 137:
 <code bash> <code bash>
 postfix check postfix check
 +</code>
 +
 +\\
 +Restart the service
 +<code bash>
 +systemctl restart postfix
 </code> </code>
  
 ---- ----
  
-====== Forward Mail: Client Mail Testing ======+====== Null Client Testing ====== 
 + 
 +**From server1**
  
 Install a mail client (if not already installed) Install a mail client (if not already installed)
Line 107: Line 159:
 Send a test message Send a test message
 <code bash> <code bash>
-echo "This is the subject body" | mail -s "This is a postfix forward test" username@gmail.com+echo "Did it work?" | mail -s "This is a postfix forward test" root@server2.example.com
 </code> </code>
  
Line 114: Line 166:
 <code bash> <code bash>
 tail -f /var/log/maillog tail -f /var/log/maillog
 +</code>
 +
 +\\
 +**From server2**
 +
 +On the postfix relayhost, check root's mail
 +<code bash>
 +mail
 +</code>
 +
 +----
 +
 +====== Troubleshooting ======
 +
 +On the sending client, to view the mail queue
 +<code bash>
 +postqueue -p
 +</code>
 +
 +\\
 +Flush the sending mail queue after fixing a problem to get rid of stuck messages
 +<code bash>
 +postqueue -f
 +</code>
 +
 +\\
 +If a message is stuck and won't flush, it can be removed
 +<code bash>
 +postsuper -d <queue_id>
 +</code>
 +  * Instead of a single queue_id, you can specify the keyword 'ALL'
 +
 +\\
 +On the receiving server, check the maillog for reasons a message did not deliver
 +<code bash>
 +tail /var/log/maillog
 </code> </code>
  
 ---- ----
  
  • linux_wiki/configure_a_system_to_forward_all_email_to_a_central_mail_server.1475635499.txt.gz
  • Last modified: 2019/05/25 23:50
  • (external edit)