Difference between revisions of "OPS335 Email Lab - 2"

From CDOT Wiki
Jump to: navigation, search
 
(22 intermediate revisions by the same user not shown)
Line 11: Line 11:
  
 
==OVERVIEW & PREPARATION==
 
==OVERVIEW & PREPARATION==
This lab will show you how to set up a Postfix email server using a Fedora 20 installation.
+
This lab will show you how to set up a '''Postfix''' email server ('''MTA''') on your '''VM2''' and '''VM3''' machines. You will also be setting up on your '''VM2''' and '''VM3''' machines the '''mailx''' package ('''MUA''') to allow users to send and receive text-based mail messages. You should also be able to send email messages to your Seneca College email account.
*You will need at least two systems to do this lab. If for some reason you have not set up your virtual machines, do so before continuing.
 
  
 +
The diagram below shows the layout of the what this lab should be able to accomplish:
  
==INVESTIGATION 1: INSTALL & SETUP MAIL TRANSFER AGENT (MTA) USING POSTFIX==
+
 
 +
[[Image:email-setup.png]]
 +
 
 +
 
 +
==INVESTIGATION 1: INSTALL & SETUP THE MAIL TRANSFER AGENT (MTA)==
  
 
{{Admon/important|Prerequistites|<ol><li>Ensure <u>all</u> machines have been updated and that the '''clocks are set to the correct date and time'''.<br></li><li>Due to the changes made in this lab3, '''you will now need your vm1 running (as the DNS server)''' in order for any of your virtual machines to be able to use the internet.</li></ol>}}
 
{{Admon/important|Prerequistites|<ol><li>Ensure <u>all</u> machines have been updated and that the '''clocks are set to the correct date and time'''.<br></li><li>Due to the changes made in this lab3, '''you will now need your vm1 running (as the DNS server)''' in order for any of your virtual machines to be able to use the internet.</li></ol>}}
  
 
=== Confirm Network Connections ===
 
=== Confirm Network Connections ===
 +
 +
Before proceeding with this lab, we need to confirm our machines have connectivity to the Internet before we can install and start sending e-mail messages.
  
 
'''Perform the following steps:'''
 
'''Perform the following steps:'''
Line 28: Line 34:
  
 
===Install and configure Postfix on a VM===
 
===Install and configure Postfix on a VM===
 
  
 
We will now be installing the postfix application which will act as the Mail Transfer Agent (MTA) that will send and receive e-mail messages between servers (VMs as well as servers that are outside of our virtual network).
 
We will now be installing the postfix application which will act as the Mail Transfer Agent (MTA) that will send and receive e-mail messages between servers (VMs as well as servers that are outside of our virtual network).
Line 36: Line 41:
 
#Switch to your '''VM2''' machine.
 
#Switch to your '''VM2''' machine.
 
#Check the status of the '''sendmail''' service by using the '''systemctl''' command.  If the sendmail service is running, use the systemctl command to stop and disable that service.  
 
#Check the status of the '''sendmail''' service by using the '''systemctl''' command.  If the sendmail service is running, use the systemctl command to stop and disable that service.  
#Issue the following command to install the '''Postfix''' application (MTA):<br><pre> yum install postfix</pre>
+
#Issue the following command to install the '''Postfix''' application (MTA):<br><br>'''yum install postfix'''<br><br>
 
#What is the purpose of installing the postfix application in terms of using e-mail? Record your answer in your lab logbook.<br><br>'''NOTE:''' We need to configure the postfix application (i.e. our MTA) to recognize our recently-created domain name that we setup in lab3.<br><br>
 
#What is the purpose of installing the postfix application in terms of using e-mail? Record your answer in your lab logbook.<br><br>'''NOTE:''' We need to configure the postfix application (i.e. our MTA) to recognize our recently-created domain name that we setup in lab3.<br><br>
#Edit the Postfix configuration file: '''/etc/postfix/main.cf''' and edit this file to contain only the contents displayed below:<pre> mydomain = <senecaID>.org</pre>
+
#Edit the Postfix configuration file: '''/etc/postfix/main.cf''' and edit this file to contain only the contents displayed below:<br><br>'''mydomain = senecaID.org'''<br>'''myorigin = $mydomain'''<br>'''mynetworks = 127.0.0.0/8, 192.168.X.0/24'''<br>'''relay_domains ='''<br>'''inet_interfaces=all'''<br><br>'''NOTE:''' Your MTA has the ability to resolve "fake" public address to an actual user account name. For example, if you have a user account called "msaul", you can have the MTA resolve the fake name "murray.saul" to the account name "msaul".<br>In order to do this you need to create an alias which is contained in the MTA's alias file.<br><br>
  myorigin = $mydomain
+
#Edit the '''/etc/postfix/aliases''' file and add your first name as an alias to be resolved to your VM2's account name:<br><br>'''your-first-name''' &nbsp; &nbsp; &nbsp; '''your-vm2-regular-username'''<br><br>
  mynetworks = 127.0.0.0/8, 192.168.X.0/24
+
#In order to update the MTA's database for the newly-create alias, issue the following command:<br>'''postalias hash:/etc/aliases'''<br><br>
  relay_domains =
+
#Finally, to start and enable your MTA, issue the following commands:<br><br>'''systemctl start postfix.service'''<br>'''systemctl enable postfix.service'''<br><br>
  inet_interfaces=all
+
#Check the '''/var/log/messages''' file to see that your MTA server started without error If there are any errors, correct them before continuing.
#
 
  
  
**Create the database file of mail aliases
+
'''Record steps, commands, and your observations in INVESTIGATION 1 in your OPS335 lab log-book'''
  postalias hash:/etc/aliases
 
  
**Start and enable Postfix:
 
systemctl start postfix.service
 
systemctl enable postfix.service
 
  
**Check your /var/log/messages file to see that your postfix servers started without error.
+
==INVESTIGATION 2: INSTALL &amp; SETUP THE MAIL USER AGENT (MUA)==
***If there are any errors, correct them before continuing.
 
  
 +
We will be using a simple text-based Mail User Agent called mailx to send messages between your running mail servers (MTAs).
 +
 +
 +
=== Installing the Mail User Agent (MUA)===
 +
 +
'''Perform the following Steps:'''
 +
 +
#Issue the following command to install the '''mailx''' application (MUA):<br><br>'''yum install mailx'''<br><br>
 +
#Refer to the chart below to acquaint yourself on how to use the mailx application:
 +
 +
--- INSERT REFERENCE CHART ---
  
=== Reviewing the mail command ===
 
  
 
===Testing mail with the internet===
 
===Testing mail with the internet===
*Test email from your machine by sending an email to your Seneca account.
+
 
mail -s "PART C3" <Your Seneca email address>
+
We will now test to see if your MTA for your VM2 machine is correctly running by sending email messages to other servers (both within and outside your virtual network).
Note:  <Your  Seneca email address> is your Seneca email address.<br />
+
 
Note: after you type in your letter, enter a period in the first column on the last line and hit the ENTER key.
+
 
*Check your learn email to see if you got the email (note that it may take a few minutes to arrive, so you may also wish to try an alternate email account if you have one). When you do receive that email make a note of the return address.
+
'''Perform the following steps:'''
*If you did not receive the mail, check the mail logs on your machine to determine what the error is.
+
 
*Test email from the host by sending an email to your Seneca account.
+
#Test email from your machine by sending an email to your Seneca account using the following command:<br><br>'''mail -s "PART C3" <Your Seneca email address>'''<br><br>'''NOTE:''' after you type in your letter, enter a period in the first column on the last line and hit the ENTER key.<br><br>
mail -s "PART C4" -r hacker@evil.com <Your Seneca email address><br />
+
#Check your learn email to see if you got the email (note that it may take a few minutes to arrive, so you may also wish to try an alternate email account if you have one). When you do receive that email make a note of the return address.
Note: after you type in your letter, enter a period in the first column on the last line and hit the ENTER key.
+
#If you did not receive the mail, check the mail logs on your machine to determine what the error is.
*Check your Seneca email to see if you got the email. If you did make a note of the return address.
+
#Test email from your Host Machine by sending an email to your Seneca account using the following command:<br><br>'''mail -s "PART C4" -r hacker@evil.com <Your Seneca email address>'''<br><br>
*Repeat the steps for 'Install and Configure Postfix on a vm' on your VM 3.
+
#Check your Seneca email to see if you got the email. If you did make a note of the return address.
 +
#Repeat the steps for INSTALL &amp; '''SETUP THE MAIL TRANSFER AGENT (MTA)''' and '''INSTALL &amp; SETUP THE MAIL USER AGENT (MUA)''' for your '''VM3'''.
  
 
===Testing email using IP Addresses===
 
===Testing email using IP Addresses===
*Adjust your firewall to allow traffic to port 25 on both VMs.
+
 
**Also check your /var/log/maillog file to see the log entries that get created when mail is sent and received, and when something goes wrong.
+
If you were able to send e-mail to your Seneca e-mail account from your VM2 and VM3, then we should test to see if we can send email messages within our virtual private network.
*Try sending an email from vm2 to your vm3.
+
First, let's send a message using a static IP ADDRESS for each VM:
mail -s "PART E2" yyyyyy@[192.168.X.4]
+
 
Note: yyyyyy is your Seneca ID<br />
+
'''Perform the following Steps:'''
Note: the square brackets around the host IP address
+
 
*Try sending an email from your vm3 to vm2.
+
#Adjust your firewall (iptables) to allow traffic to port 25 on both VMs.
mail -s "PART E3" root@[192.168.X.3]  
+
# Check your '''/var/log/maillog''' file to see the log entries get created when mail is sent and received, or notes when something goes wrong.
 +
#Try sending an email from '''vm2''' to your '''vm3''' by issuing the command:<br><br>'''mail -s "PART E2" yyyyyy@[192.168.X.4]'''<br><br>
 +
#Try sending an email from your '''vm3''' to '''vm2''' by issuing the command:<br><br>'''mail -s "PART E3" root@[192.168.X.3]''' <br><br>
  
 
===Test email using host names===
 
===Test email using host names===
*Use the host and hostname commands to check that each of your machines has the same hostname that the DNS service says they have.
 
**Restart postfix if you change the hostname on either mail server.
 
  
Now try sending mail to yourself on both machines. For example, as <senecaID> on VM 3, use the command:
+
Let's complete this lab by sending email messages using our recently-created domain name:
$ mail <senecaID>@vm2.<yourdomain>.org
 
the machine will prompt for a subject: enter "testing" without the quotes.
 
  
*Now enter the body of your letter. When you're done, enter a period (.) in column 1 on the last line of your letter. This will signal end-of-file and your letter will be mailed. You should end up back at the $ prompt. If you mess up use CTRL-C to cancel the email, DO NOT USE CTRL-Z.
+
'''Perform the following Steps:'''
  
*Use the mailq command on both machines (you will need to be root) to view the mail queue.  
+
#Use the '''host''' and '''hostname''' commands to confirm that each of your machines has the same ''hostname'' and that the DNS service verifies this to be true.
Use the mail command to check if you have mail.
+
#Restart your MTA (postfix) server if you changed the hostname on either mail server.
 +
#Try sending mail to yourself on both machines. For example, as the username <senecaID> on VM 3, use the command:<br><br>$ mail <senecaID>@vm2.<yourdomain>.org<br><br>'''NOTE:''' the machine will prompt for a subject: enter "testing" without the quotes.<br><br>
 +
#Enter the body of your e-mail message. When you have completed entering your email message, enter a period (.) in column 1 on the last line of your letter. This will send the signal: '''end-of-file''' and your letter will be mailed. You should end up back at the shell prompt. If you make a mistake, use '''CTRL-C''' to cancel the email (DO <u>NOT</u> USE CTRL-Z).
 +
#Use the '''mailq''' command on both machines (you will need to be root) to view the mail queue. Why would this command be useful for an administrator?
 +
#Use the mail command to check to see if you have received any mail.
  
==Completing the Lab==
+
'''Record steps, commands, and your observations in INVESTIGATION 2 in your OPS335 lab log-book'''
 +
 
 +
 
 +
==COMPLETING THE LAB==
 
Upon completion of this lab you should have postfix mail servers running on two machines, and starting automatically when they do.  These servers must have sent email both ways between each other (from VM 2 to VM 3, and from VM 3 to VM 2), and to your seneca email (or other external mail server).
 
Upon completion of this lab you should have postfix mail servers running on two machines, and starting automatically when they do.  These servers must have sent email both ways between each other (from VM 2 to VM 3, and from VM 3 to VM 2), and to your seneca email (or other external mail server).
  
Exploration questions:
+
 
 +
==EXPLORATION QUESTIONS==
 +
 
 
#What did changing the relay_domains parameter do?
 
#What did changing the relay_domains parameter do?
 
#What firewall rule or rules, if any, did you have to enter so that email between your VMs would work?
 
#What firewall rule or rules, if any, did you have to enter so that email between your VMs would work?
 
#What is the meaning of the square brackets surrounding the IP address in the examples?
 
#What is the meaning of the square brackets surrounding the IP address in the examples?
 
#What were the results of sending email between the VMs? Show log segments to verify your answers.
 
#What were the results of sending email between the VMs? Show log segments to verify your answers.

Latest revision as of 21:51, 9 February 2016


MAIL SERVER RESOURCES

Online References:

  • [ OPS335 Mail Server Notes ] Course Note providing Concepts and Overview of mail server setup
  • Postfix for Dummies Good Basic Guide to setup Postfix MTA


OVERVIEW & PREPARATION

This lab will show you how to set up a Postfix email server (MTA) on your VM2 and VM3 machines. You will also be setting up on your VM2 and VM3 machines the mailx package (MUA) to allow users to send and receive text-based mail messages. You should also be able to send email messages to your Seneca College email account.

The diagram below shows the layout of the what this lab should be able to accomplish:


Email-setup.png


INVESTIGATION 1: INSTALL & SETUP THE MAIL TRANSFER AGENT (MTA)

Important.png
Prerequistites
  1. Ensure all machines have been updated and that the clocks are set to the correct date and time.
  2. Due to the changes made in this lab3, you will now need your vm1 running (as the DNS server) in order for any of your virtual machines to be able to use the internet.

Confirm Network Connections

Before proceeding with this lab, we need to confirm our machines have connectivity to the Internet before we can install and start sending e-mail messages.

Perform the following steps:

  1. Make certain that you can connect to the Internet on your Host Machine via web-browser. Since your host should be using VM1 as its DNS server, you will need to make certain that the VM1 machine is running as well.
  2. Start Firefox on your Host Machine, and access your Seneca e-mail account (https://myseneca.ca).
  3. Confirm that you can access the web from your VM2 machine. You can install the wget or lynx applications in order to test this for your text-based server (NOTE: you should not have to authenticate yourself on the guest machine).

Install and configure Postfix on a VM

We will now be installing the postfix application which will act as the Mail Transfer Agent (MTA) that will send and receive e-mail messages between servers (VMs as well as servers that are outside of our virtual network).

Perform the following steps:

  1. Switch to your VM2 machine.
  2. Check the status of the sendmail service by using the systemctl command. If the sendmail service is running, use the systemctl command to stop and disable that service.
  3. Issue the following command to install the Postfix application (MTA):

    yum install postfix

  4. What is the purpose of installing the postfix application in terms of using e-mail? Record your answer in your lab logbook.

    NOTE: We need to configure the postfix application (i.e. our MTA) to recognize our recently-created domain name that we setup in lab3.

  5. Edit the Postfix configuration file: /etc/postfix/main.cf and edit this file to contain only the contents displayed below:

    mydomain = senecaID.org
    myorigin = $mydomain
    mynetworks = 127.0.0.0/8, 192.168.X.0/24
    relay_domains =
    inet_interfaces=all

    NOTE: Your MTA has the ability to resolve "fake" public address to an actual user account name. For example, if you have a user account called "msaul", you can have the MTA resolve the fake name "murray.saul" to the account name "msaul".
    In order to do this you need to create an alias which is contained in the MTA's alias file.

  6. Edit the /etc/postfix/aliases file and add your first name as an alias to be resolved to your VM2's account name:

    your-first-name       your-vm2-regular-username

  7. In order to update the MTA's database for the newly-create alias, issue the following command:
    postalias hash:/etc/aliases

  8. Finally, to start and enable your MTA, issue the following commands:

    systemctl start postfix.service
    systemctl enable postfix.service

  9. Check the /var/log/messages file to see that your MTA server started without error If there are any errors, correct them before continuing.


Record steps, commands, and your observations in INVESTIGATION 1 in your OPS335 lab log-book


INVESTIGATION 2: INSTALL & SETUP THE MAIL USER AGENT (MUA)

We will be using a simple text-based Mail User Agent called mailx to send messages between your running mail servers (MTAs).


Installing the Mail User Agent (MUA)

Perform the following Steps:

  1. Issue the following command to install the mailx application (MUA):

    yum install mailx

  2. Refer to the chart below to acquaint yourself on how to use the mailx application:
--- INSERT REFERENCE CHART ---


Testing mail with the internet

We will now test to see if your MTA for your VM2 machine is correctly running by sending email messages to other servers (both within and outside your virtual network).


Perform the following steps:

  1. Test email from your machine by sending an email to your Seneca account using the following command:

    mail -s "PART C3" <Your Seneca email address>

    NOTE: after you type in your letter, enter a period in the first column on the last line and hit the ENTER key.

  2. Check your learn email to see if you got the email (note that it may take a few minutes to arrive, so you may also wish to try an alternate email account if you have one). When you do receive that email make a note of the return address.
  3. If you did not receive the mail, check the mail logs on your machine to determine what the error is.
  4. Test email from your Host Machine by sending an email to your Seneca account using the following command:

    mail -s "PART C4" -r hacker@evil.com <Your Seneca email address>

  5. Check your Seneca email to see if you got the email. If you did make a note of the return address.
  6. Repeat the steps for INSTALL & SETUP THE MAIL TRANSFER AGENT (MTA) and INSTALL & SETUP THE MAIL USER AGENT (MUA) for your VM3.

Testing email using IP Addresses

If you were able to send e-mail to your Seneca e-mail account from your VM2 and VM3, then we should test to see if we can send email messages within our virtual private network. First, let's send a message using a static IP ADDRESS for each VM:

Perform the following Steps:

  1. Adjust your firewall (iptables) to allow traffic to port 25 on both VMs.
  2. Check your /var/log/maillog file to see the log entries get created when mail is sent and received, or notes when something goes wrong.
  3. Try sending an email from vm2 to your vm3 by issuing the command:

    mail -s "PART E2" yyyyyy@[192.168.X.4]

  4. Try sending an email from your vm3 to vm2 by issuing the command:

    mail -s "PART E3" root@[192.168.X.3]

Test email using host names

Let's complete this lab by sending email messages using our recently-created domain name:

Perform the following Steps:

  1. Use the host and hostname commands to confirm that each of your machines has the same hostname and that the DNS service verifies this to be true.
  2. Restart your MTA (postfix) server if you changed the hostname on either mail server.
  3. Try sending mail to yourself on both machines. For example, as the username <senecaID> on VM 3, use the command:

    $ mail <senecaID>@vm2.<yourdomain>.org

    NOTE: the machine will prompt for a subject: enter "testing" without the quotes.

  4. Enter the body of your e-mail message. When you have completed entering your email message, enter a period (.) in column 1 on the last line of your letter. This will send the signal: end-of-file and your letter will be mailed. You should end up back at the shell prompt. If you make a mistake, use CTRL-C to cancel the email (DO NOT USE CTRL-Z).
  5. Use the mailq command on both machines (you will need to be root) to view the mail queue. Why would this command be useful for an administrator?
  6. Use the mail command to check to see if you have received any mail.

Record steps, commands, and your observations in INVESTIGATION 2 in your OPS335 lab log-book


COMPLETING THE LAB

Upon completion of this lab you should have postfix mail servers running on two machines, and starting automatically when they do. These servers must have sent email both ways between each other (from VM 2 to VM 3, and from VM 3 to VM 2), and to your seneca email (or other external mail server).


EXPLORATION QUESTIONS

  1. What did changing the relay_domains parameter do?
  2. What firewall rule or rules, if any, did you have to enter so that email between your VMs would work?
  3. What is the meaning of the square brackets surrounding the IP address in the examples?
  4. What were the results of sending email between the VMs? Show log segments to verify your answers.