Difference between revisions of "OPS335 Email Lab"

From CDOT Wiki
Jump to: navigation, search
m (moved OPS335 Lab 4 to OPS335 W13 Lab 5: Reorganizing order of labs.)
(several changes for the upgrade to F17)
Line 1: Line 1:
 
[[Category:OPS335]][[Category:OPS335 Labs]]
 
[[Category:OPS335]][[Category:OPS335 Labs]]
 
==Basic Mail (Postfix) Setup==
 
==Basic Mail (Postfix) Setup==
This lab will show you how to set up a Postfix email server using a Fedora 16 installed PC.
+
This lab will show you how to set up a Postfix email server using a Fedora 17 installed PC.
*You will need at least two systems to do this lab. The first could be Fedora on your removable hard drive while the second could be a virtual machine.
+
*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.
{{Admon/important|Prerequistites|Your hard drive should have Fedora 16, 64 bit Live edition already installed.<br />Both host and guest should have all software updated.<br />Ensure the clocks on both machines are set to the correct date and time.}}
+
{{Admon/important|Prerequistites|Your hard drive should have Fedora 17, 64 bit Live edition already installed.<br />Both host and guest should have all software updated.<br />Ensure the clocks on both machines are set to the correct date and time.}}
 
=== Testing your network ===
 
=== Testing your network ===
 
*Start Firefox on your host and authenticate yourself on Senenet with your Seneca account.
 
*Start Firefox on your host and authenticate yourself on Senenet with your Seneca account.
 
*Ensure you can surf the web on your host machine.
 
*Ensure you can surf the web on your host machine.
*Ensure you can access the web on your VM02 (you can use wget for that). NOTE: you should not have to authenticate yourself on the guest.
+
*Ensure you can access the web on your VM02 (you can use wget or lynx for that). NOTE: you should not have to authenticate yourself on the guest.
  
 
===Testing email to the outside world using mailx and sendmail===
 
===Testing email to the outside world using mailx and sendmail===
*Sendmail is installed and running by default on Fedora 16 so there is no need to install it.
+
*Sendmail is installed and running by default on Fedora 17 so there is no need to install it.
 
*Install mailx on both the host and the guest.  
 
*Install mailx on both the host and the guest.  
 
  yum install mailx
 
  yum install mailx
{{Admon/important|Warning|When sending email to your seneca account in this lab, use your old learn address.  The server for the new outlook addresses does not accept mail coming from the 142.204 network.}}
+
{{Admon/important|Warning|When sending email to your Seneca account in this lab, use your old learn address.  The server for the new outlook addresses sometimes rejects mail coming from the 142.204 network (this may be fixed by now).}}
*Test email from the host by sending an email to your seneca account.  
+
*Test email from the host by sending an email to your Seneca account.  
  mail -s "PART C3" xxxxxx@myseneca.ca
+
  mail -s "PART C3" <Your Seneca email address>
Note: xxxxxx is your Seneca ID.<br />
+
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.
 
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 myseneca email to see if you got the email. If you did make a note of the return address.
+
*Check your learn email to see if you got the email. If you did make a note of the return address.
*Test email from the host by sending an email to your myseneca account.  
+
*Test email from the host by sending an email to your Seneca account.  
  mail -s "PART C4" -r hacker@evil.com xxxxxx@myseneca.ca
+
  mail -s "PART C4" -r hacker@evil.com <Your Seneca email address><br />
Note: xxxxxx is your Seneca ID.<br />
 
 
Note: after you type in your letter, enter a period in the first column on the last line and hit the ENTER key.
 
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 myseneca email to see if you got the email. If you did make a note of the return address.
+
*Check your Seneca email to see if you got the email. If you did make a note of the return address.
 
*Repeat these steps on the guest machine.
 
*Repeat these steps on the guest machine.
  
 
===Install and configure Postfix===
 
===Install and configure Postfix===
 
*On both machines do the following:
 
*On both machines do the following:
**Stop sendmail.  
+
**Stop and disable sendmail.  
 
  systemctl stop sendmail.service
 
  systemctl stop sendmail.service
 +
systemctl disable sendmail.service
 
*Install Postfix
 
*Install Postfix
 
  yum install postfix
 
  yum install postfix
Line 38: Line 38:
 
   relay_domains =
 
   relay_domains =
 
   inet_interfaces=all
 
   inet_interfaces=all
*Start Postfix on both machines:
+
*Start and enable Postfix on both machines:
 
  systemctl start postfix.service
 
  systemctl start postfix.service
 +
systemctl enable postfix.service
  
 
===Testing email using IP Addresses===
 
===Testing email using IP Addresses===
*If you have problems with the following you may have to set SELinux to permissive mode and/or adjust your firewall to allow traffic to/from port 25.
+
*If you have problems with the following adjust your firewall to allow traffic to/from port 25.
 
*Try sending an email from vm02 to your host.  
 
*Try sending an email from vm02 to your host.  
 
  mail -s "PART E2" yyyyyy@[192.168.X.1]
 
  mail -s "PART E2" yyyyyy@[192.168.X.1]
Line 50: Line 51:
 
  mail -s "PART E3" zzzzzz@[192.168.X.3]  
 
  mail -s "PART E3" zzzzzz@[192.168.X.3]  
 
Note: zzzzzz is your Seneca ID<br />
 
Note: zzzzzz is your Seneca ID<br />
 +
  
 
===Test email using host names===
 
===Test email using host names===
For this part make sure that your f16 machine has a correct host name - f16.yourdomain.org.
+
For this part make sure that your f17 machine has a correct host name - f17.yourdomain.org.
 
Restart postfix if you change this.
 
Restart postfix if you change this.
  
Now try sending mail to yourself on both machines. For example, as <senecaID> on f16, use the command:
+
Now try sending mail to yourself on both machines. For example, as <senecaID> on f17, use the command:
  $ mail <senecaID>@f16
+
  $ mail <senecaID>@vm02
 
the machine will prompt for a subject: enter "testing" without the quotes.
 
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.
 
*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.
  
*Use the mailq command (you will need to be root) to view the mail queue.  
+
*Use the mailq command on both machines (you will need to be root) to view the mail queue.  
 
Use the mail command to check if you have mail.
 
Use the mail command to check if you have mail.
  

Revision as of 18:05, 3 January 2013

Basic Mail (Postfix) Setup

This lab will show you how to set up a Postfix email server using a Fedora 17 installed PC.

  • 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.
Important.png
Prerequistites
Your hard drive should have Fedora 17, 64 bit Live edition already installed.
Both host and guest should have all software updated.
Ensure the clocks on both machines are set to the correct date and time.

Testing your network

  • Start Firefox on your host and authenticate yourself on Senenet with your Seneca account.
  • Ensure you can surf the web on your host machine.
  • Ensure you can access the web on your VM02 (you can use wget or lynx for that). NOTE: you should not have to authenticate yourself on the guest.

Testing email to the outside world using mailx and sendmail

  • Sendmail is installed and running by default on Fedora 17 so there is no need to install it.
  • Install mailx on both the host and the guest.
yum install mailx
Important.png
Warning
When sending email to your Seneca account in this lab, use your old learn address. The server for the new outlook addresses sometimes rejects mail coming from the 142.204 network (this may be fixed by now).
  • Test email from the host by sending an email to your Seneca account.
mail -s "PART C3" <Your Seneca email address>

Note: <Your Seneca email address> is 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.

  • Check your learn email to see if you got the email. If you did make a note of the return address.
  • Test email from the host by sending an email to your Seneca account.
mail -s "PART C4" -r hacker@evil.com <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.

  • Check your Seneca email to see if you got the email. If you did make a note of the return address.
  • Repeat these steps on the guest machine.

Install and configure Postfix

  • On both machines do the following:
    • Stop and disable sendmail.
systemctl stop sendmail.service
systemctl disable sendmail.service
  • Install Postfix
yum install postfix
  • Edit the Postfix configuration file, /etc/postfix/main.cf, and change the following lines ( be sure that there are no other instances of that line as well, comment as needed):
 mydomain = <senecaID>.org
 myorigin = $mydomain
 mynetworks = 127.0.0.0/8, 192.168.X.0/24
 relay_domains =
 inet_interfaces=all
  • Start and enable Postfix on both machines:
systemctl start postfix.service
systemctl enable postfix.service

Testing email using IP Addresses

  • If you have problems with the following adjust your firewall to allow traffic to/from port 25.
  • Try sending an email from vm02 to your host.
mail -s "PART E2" yyyyyy@[192.168.X.1]

Note: yyyyyy is your Seneca ID
Note: the square brackets around the host IP address

  • Try sending an email from your host to vm02.
mail -s "PART E3" zzzzzz@[192.168.X.3] 

Note: zzzzzz is your Seneca ID


Test email using host names

For this part make sure that your f17 machine has a correct host name - f17.yourdomain.org. Restart postfix if you change this.

Now try sending mail to yourself on both machines. For example, as <senecaID> on f17, use the command:

$ mail <senecaID>@vm02

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.
  • Use the mailq command on both machines (you will need to be root) to view the mail queue.

Use the mail command to check if you have mail.

Test your configuration and view your logs

  • Restart your postfix servers on both machines.
  • Check your /var/log/messages file to see that your postfix servers started without error.
  • Send some emails from both guest and host to each other and to the outside world.
  • Check your /var/log/maillog file to see that your email messages were sent correctly.

Learning the mail command

  • Read the mail manual page and learn how it works.

Completing the Lab

  1. Create a copy of your main.cf file on vm02 (your guest) with this lab - but delete all commented and blank lines first - like this. [cat /etc/postfix/main.cf | grep -v ^# | awk 'NF > 0 {print $0}']
  2. What is the output of the iptables-save command on both your host and guest machines?
  3. What firewall rule or rules, if any, did you have to enter on the guest and/or host so that email to/from each other would work?
  4. What is the meaning of the square brackets surrounding the IP address in the examples?
  5. What were the results of sending email between the host and the vm? Show log segments to verify your answers.