OPS335 Email Lab
Basic Mail (Postfix) Setup
This lab will show you how to set up a Postfix email server using a Fedora 20 installation.
- 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.
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. As your host should be using VM 1 as its DNS server, you will need to start it as well.
- 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.
Reviewing the mail command
- Read the mail manual page to remind yourself how it works.
Install and configure Postfix on a VM
- On Vm 2 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:
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:
systemctl start postfix.service systemctl enable postfix.service
- Check your /var/log/messages file to see that your postfix servers started without error.
- If there are any errors, correct them before continuing.
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>
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.
- 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.
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 the steps for 'Install and Configure Postfix on a vm' on your VM 3.
Testing email using IP Addresses
- If you have problems with the following adjust your firewall to allow traffic to/from port 25.
- 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.
- Try sending an email from vm02 to your vm03.
mail -s "PART E2" yyyyyy@[192.168.X.4]
Note: yyyyyy is your Seneca ID
Note: the square brackets around the host IP address
- Try sending an email from your vm03 to vm02.
mail -s "PART E3" root@[192.168.X.3]
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:
$ 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.
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.
Exploration questions:
- 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 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.