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 23:24]
billdozor [Postfix Central Mail Server]
linux_wiki:configure_a_system_to_forward_all_email_to_a_central_mail_server [2019/05/25 23:50] (current)
Line 8: Line 8:
  
 **You will be expected to configure a null client only**. (server that forwards mail but does not receive any) **You will be expected to configure a null client only**. (server that forwards mail but does not receive any)
 +
 +----
 +
 +====== Lab Setup ======
 +
 +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**)
  
 ---- ----
Line 14: Line 22:
  
 **THIS IS ON THE EXAM**: A mail null client forwards local email. It does not receive any mail from network sources. **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 
-<code bash> 
-vim /etc/postfix/main.cf 
- 
- 
-#### Gmail specific settings - NOT ON THE EXAM #### 
-smtp_use_tls = yes 
-smtp_sasl_auth_enable = yes 
-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> 
- 
-\\ 
-**NOT ON EXAM** -> Gmail specific: Config to sign into a secure SMTP 
-<code bash> 
-vim /etc/postfix/sasl_passwd 
- 
-[smtp.gmail.com]:587 username@gmail.com:password 
-</code> 
-  * Replace username and password with actual gmail username and password. 
- 
-\\ 
-**NOT ON EXAM** -> Gmail specific: Set restrictive permissions on the sasl file 
-<code bash> 
-chown root:postfix /etc/postfix/sasl_passwd 
-chmod 640 /etc/postfix/sasl_passwd 
-</code> 
- 
-\\ 
-**NOT ON EXAM** -> Gmail specific: Convert sasl file so postfix can use it 
-<code bash> 
-postmap /etc/postfix/sasl_passwd 
-</code> 
  
 \\ \\
Line 106: Line 87:
  
 **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. **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**
  
 \\ \\
Line 130: Line 113:
 Edit the main configuration file Edit the main configuration file
 <code bash> <code bash>
 +#-- vim directly
 vim /etc/postfix/main.cf vim /etc/postfix/main.cf
  
 +# listening interfaces
 inet_interfaces = all inet_interfaces = all
-inet_protocols = ipv4+ 
 +# Accept mail for these domains
 mydestination = example.com, server2.example.com, server2 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>
 +
 +\\
 +Check postfix syntax
 +<code bash>
 +postfix check
 </code> </code>
  
Line 146: Line 148:
  
 ====== Null Client Testing ====== ====== Null Client Testing ======
 +
 +**From server1**
  
 Install a mail client (if not already installed) Install a mail client (if not already installed)
Line 155: 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 162: 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.1475637889.txt.gz
  • Last modified: 2019/05/25 23:50
  • (external edit)