1,234
edits
Changes
→Sending a Mail Message from your vm2 Machine to your Seneca Email Account
==OVERVIEW & PREPARATION==
We are going to spread the remaining email labs over a few weeks, so that by the end of this topic, you will have a sufficient understanding of what services are involved in sending, filtering, and reading email. You will also have the skills to configure a basic mail setup using the default services provided for your Centos7 Linux distribution.
[[Image:Email-servers.png]]
This lab will show you how to set up a Mail User Agent ('''MUA'''), using the '''mailx''' package on your '''vm2''' machine to send and receive e-mails on your local VM. In this case, the '''Postfix''' package which represents your '''MTA''' is most likely already installed and running on your local VM. In addition to sending and receiving emails on your Local VM, you will also be able to send a text-based e-mail from your '''vm2 machine''' to your '''Seneca mail account'''. You will also learn how to make multiple MTAs in the same network collaborate in sending emails. In addition, you will learn where the message store (MS) is located that stores mail messages until they are viewed and either deleted or transferred to other folders.
Although, you will not be able to receive mail messages from outside sources (such as your Seneca email account), this lab acts as a starting point in order to run a basic email server. You are NOT required to go into tremendous depth (just the minimum requirements). For example, we will not go over every aspect of the Postfix MTA service, but you should know what it represents and what is its main purpose, as opposed to the following: [https://en.wikipedia.org/wiki/Postfix_%28software%29#Architecture complex diagram 1] , [https://www.credativ.de/blog/postfix-architecture-overview complex diagram 2].
===Online References:===
* [http://www.simplehelp.net/2008/12/01/how-to-send-email-from-the-linux-command-line/ Mail Send Command] (examples how to send e-mail using mail command)
* [http://www.johnkerl.org/doc/mail-how-to.html#prompt_commands View and Manage Received e-mail Mesages] (Common commands to view and manage received email messages)
* [https://support.google.com/mail/answer/29436?hl=en Reading Full Email Headers] (Explanation of message header information)
* [http://wiki.dovecot.org/MailServerOverview Here's an overview] (common mail server terms)
==INVESTIGATION 1: INSTALL, SET-UP, AND USE THE MAIL USER AGENT ('''MUA''')==
We will be using a simple text-based '''Mail User Agent ('''MUA)''') called '''mailx''' in this lab to '''both send and receive ''' mail messages within your VM2 machine''' vm2''' machine and to '''only send ''' mail messages from your '''vm2''' machine to your Seneca e-mail account'''.
'''NOTE:''' Due Because you're using private IP addresses and no external DNS servers are pointing to the simplicity of this mail server setup, and the setup of Seneca College's mail serveryour network, you '''<u>cannot</u>''' send Seneca e-mail messages from outside your environment to your '''VM2vm2''' machine.
=== Installing the Mail User Agent (MUA)===
#Make certain you are in your '''vm2''' machine.
#Issue the following command to install Install the '''mailx''' application (MUA):<br>'''using yum install mailx'''<br><br>
:'''NOTE:''' You can refer to the link below to acquaint yourself on how to send e-mail messages using '''mailx''' application:<br> [http://www.simplehelp.net/2008/12/01/how-to-send-email-from-the-linux-command-line/ Mail Send Command Examples]
===Sending a Mail Message from your VM2 vm2 Machine to your Seneca Email Account=== {{Admon/important|Note|These instructions no longer work reliably. You can still send email to your own email server, and look at the server logs to see that it did really get sent. But it probably won't be accepted for one of a multitude of good reasons. If it doesn't work for you: don't worry about it for lab submission purposes.}}
We will now test to see if your MTA for your VM2 vm2 machine is correctly running by sending email messages from your VM2 vm2 machine to your Seneca e-mail account.
'''Perform the following steps:'''
#Make certain you are still in your '''vm2''' machine.
#Test email from your machine by sending an email to your '''Seneca email account''' using the following command:<br>'''mail -s "Lab4a - test1" <Your Seneca email address>'''<br><br>'''NOTE:''' after you type in the body of the mail message, move to an empty line, type period "." and then press the ENTER key combination '''<ctrl><d>''' to send the message.<br><br>#Check your Seneca email account (Inbox / Junk Email Folder) to see if you got the email (note that it may take a <u>few minutes to arrive</u>, so you may also wish to try an alternate email account if you have one like gmail, etc). When you do receive that email, make a note of the return address.
#If you did not receive the mail, check the mail logs on your vm2 machine to determine any errors messages that would indicate a mail server setup problem.
#Test Once you have succeeded in sending the first email from your '''Host Machine''' by sending an , send a second email to your Seneca account the same destination using the following command:<br>'''mail -r "someone@hacker.com (Canadian Revenue Agency)" -s "Lab4a - test2" <Your Seneca email address>#Check your Seneca email to see if you got the email. If you did, make a note of the return address. How would you think that including the '''-r''' option could be used by penetration hackers to gain access to a computer system? What sort of steps do you think should be taken to help prevent this type of attack from happening?
===Sending a Mail Message within your VM2 vm2 Machine (vm2)===
We will now test both your MUA (mailx) and MTA (postfix) by sending and receiving e-mail messages on the local VM2 vm2 machine only.
'''Perform the following Steps:'''
#Send an email message locally (i.e. only within) your VM2 vm2 machine ) by issuing the command:<br>'''mail -s "Lab4a - Local - Test1" <yourSenecaID>'''
#After you type in the body of the mail message, move to an empty line, type period "." and press the ENTER key to send the message.
#Issue Login with your '''regular user''' and issue the following command to read the mail message you send to yourself:<br>'''mail'''<br><br>'''NOTE:''' You can refer to the link below to view a reference chart on how to read and delete received e-mail messages at the mail command prompt:<br>[http://www.johnkerl.org/doc/mail-how-to.html#prompt_commands Commands to View and Manage Received e-mail Mesages]<br><br>
#Issue the following command: '''cat /var/spool/mail/<yourSenecaID>'''<br>What do you see? What does this show you in terms of where mail is stored on your e-mail server?
#If you received an e-mail message, the message and subject line should appear as a listing in your mail command.<br><br>'''NOTE:''' If you did not receive a mail message, check your mail server settings, check to see if you your mail server is running and also check '''/var/log/maillog''' and '''/var/log/messages'''(this step requires '''root''' privilege).<br><br>#Type Once you have received the message, type the mail message number that is displayed in your e-mail message list in the prompt and press ENTER. You should be able to confirm the message body that you sent.
#Exit the mail program by typing the letter '''q''' and press ENTER.
#Re-issue the '''mail''' command. What happened? Issue the command: '''cat /var/spool/mail/<yourSenecaID>'''. What do you notice?
#Exit the mail command.
'''Record steps, commands, and your observations in INVESTIGATION 1 in your OPS335 lab log-book'''
==INVESTIGATION 2: IDENTIFYING A DEFAULT SETUP MTA TO SEND MAIL TRANSFER AGENT MESSAGES ('''MTA'''NO ENCRYPTION)==
=== Email Headers Verify the Postfix Service Status ===
#The '''postfix''' application should be installed by default. If it isn't, install it.
#Postfix is capable of sending email with the default configuration, so start and enable this service, and verify that the postfix service is running.
#Look for the running postfix service in the list of listening ports by issuing the following command:<br><source>ss -atnp</source>
#Which service is postfix running? Locate the port used by SMTP, and look for connections with the state LISTEN (i.e. currently listening).
#Write your observations in your lab logbook.
# If the '''nc''' command is not installed on your vm2 machine, install it (install '''nc''' command for your '''vm3''' as well).
# Connect from your '''vm2''' to itself using the '''nc''' command by issuing the following command:<br><source >nc localhost 25</source>
# You should see a response: <br><source >220 vm2.yourdomain.ops ESMTP Postfix</source>
# You could theoretically use SMTP commands to send an email here, but this would be a very unusual use of your mail server. You have an '''MUA''' for a reason.
#Enter the command '''QUIT''' to close the connection to the server, then '''<ctrl>-c''' to terminate the nc command.
::'''Switching Viewing Modes in MS Outlook Web ApplicationNOTE:'''If it worked, this indicates that the postfix service is running, listening, and responding to connections.
# In your '''vm2''' machine, launch in editing session for the postfix configuration file called:<ol type='''/etc/postfix/main.cf'''# Our first editing change to the Postfix configuration will be to make the service "alisten"><li>Click for incoming connections on the external interface (i.e '''optionseth0''' located at from the top-right corner VMs point of view).<br>Change the value of the MS Outlook web application window (following parameter to what is displayed below:<br><source>inet_interfaces = all</source># We should also set the left of string that will end up in the '''From:''' header in messages sent by this server.<br>Change the '''Sign Outmydomain''' option to YOUR domain name (shown below):</lisource>mydomain = yoursenecaid.ops<li/source>Click # Also you must set the '''Outlook Versionhostname''' on for this server so that will correctly specify the left-side of hostname in the ''Options'From:''' windowheader in a sent mail message.</libr>Make certain the following parameter only appears once (shown below):<source>myorigin = $myhostname<li/source>Click #Ensure that your '''hostname''' and '''DOMAIN''' name is properly set on your machine, otherwise you will need to de-select set the '''Use the light versionmyhostname''' (iparameter.e<br>{{Admon/important|Warning|Make sure there are no other un-commented copies of those above-mentioned parameters in the Postfix configuration file. no check mark)}}<br></liol><livalue="6">Click Restart the postfix service, then use the '''Savess''' button near the top of command to confirm that the Options window to save your settings.MTA is now listening on <u>all</liu>interfaces (not just loopback)</li>Sign-out of your MS Outlook Session, and login again.<br><brli>Test by connecting to it (using the '''nc'''NOTE: If command) from your MS Outlook application does not change versions, then close all of your web-browsers, and then log into your Seneca email account.'''<br><br>vm3''' machine.</li></ol>
==INVESTIGATION 3: SENDING EMAIL BETWEEN MTAs for vm2 and vm3 (NO ENCRYPTION)==
'''Perform the following steps:'''
#Repeat the configuration from investigation 2 on '''Right-clickvm3''' on the mail message (swap vm2 and vm3 when issuing command so that you recently sent with subject line "Lab4a - Header Message".#Within the context menuare configuring vm3, select '''View Message Details'''.<br><br>'''NOTE: If no mail message headers appear, try the previous step again until you see mail message header information.'''<br><br>#To make the header information easier and using your vm2 server to read, highlite test the text, copy and paste into a text editor (like '''gedit'''connections).<br><br>#Below is an example of header information Once that was sent by user msaul within their domain name msaul.org:<br><br> <source lang="bash">Received: from SN1PR07MB2288.namprd07.prod.outlook.com (10.164.47.158) by DM3PR07MB2284.namprd07.prod.outlook.com (10.164.33.158) with Microsoft SMTP Server (TLS) id 15.1.409.15 via Mailbox Transport; Thu, 18 Feb 2016 15:08:51 +0000Received: from BLUPR07CA088.namprd07.prod.outlook.com (10.160.24.43) by SN1PR07MB2288.namprd07.prod.outlook.com (10.164.47.158) with Microsoft SMTP Server (TLS) id 15.1.409.15; Thu, 18 Feb 2016 15:08:49 +0000Received: from BN1BFFO11FD041.protection.gbl (2a01:111:f400:7c10::1:173) by BLUPR07CA088.outlook.office365.com (2a01:111:e400:8ae::43) with Microsoft SMTP Server (TLS) id 15.1.409.15 via Frontend Transport; Thu, 18 Feb 2016 15:08:49 +0000Authentication-Results: spf=none (sender IP is 142.204.244.22) smtp.mailfrom=msaul.org; senecacollege.ca; dkim=none (message not signed) header.d=none;senecacollege.ca; dmarc=none action=none header.from=msaul.org;Received-SPF: None (protection.outlook.com: msaul.org does not designate permitted sender hosts) 'Received: from vm2.localdomain (142.204.244.22) by BN1BFFO11FD041.mail.protection.outlook.com (10.58.144.104) with Microsoft SMTP Server id 15.1.415.6 via Frontend Transport; Thu, 18 Feb 2016 15:08:49 +0000' 'Received: by vm2.localdomain (Postfixcomplete, send an email from userid 1000) id 4EB6210866B2; Thu, 18 Feb 2016 05:08:44 -0500 (EST)' Date: Thu, 18 Feb 2016 05:08:44 -0500To: <murray.saul@senecacollege.ca>Subject: Lab4a - Header Message 'User-Agent: Heirloom mailx 12.5 7/5/10' MIME-Version: 1.0Content-Type: text/plain; charset="us-ascii"Content-Transfer-Encoding: 7bitMessage-ID: <20160218100844.4EB6210866B2@root on vm2.localdomain> 'From: Murray Saul <msaul@msaul.org>''Return-Path: msaul@msaul.org' </source>#Study the sections in <span style="color:red;font-weight:bold">"red"</span> to determine the following information of the e-mail source (i.e. "starting-point"):<ul><li>'''Full Name''' of sender</li><li>'''return e-mail address''' of sender</li><li>'''domain name''' where sender resides</li><li>'''UID''' of send's user account</li><li>'''name''' of MUA program</li><li>'''name''' of MTA program<li>'''domain name''root on vm3' of MTA</li><li>'''IPADDR''' of MTA<br><br></li></ul>#Using <u>your</u> e-mail header detail, determine the same information of your e-mail source (and then reply '''from vm3 to vm2''').#Using <u>your</u> e-mail header detailIf both messages arrive, determine the same information for '''Seneca's''' mail server on the receiving end of the e-mail message.#How many different both MTAs where used in this process? Can you guess why so many transfers? Record your observations in your lab logbookare working.#Use either If not, use the '''nslookup''', '''host''', or '''dig''' utilities to query those servers (type MX resource records) to see if troubleshooting tools and techniques you can obtain additional information regarding those mail servers. === Viewing Local Mail Message Headers (VM2)=== You have the ability when sending already learned to diagnose and receiving e-mails locally on your VM2 machine to also view e-mail header details when using fix the '''mail''' commandproblem. #Make certain you are in your '''VM2''' machine.#Send another e-mail from your VM2 account to yourself, but using your first name instead by issuing the following command:<br>'''mail -s "Lab4a - Local - Test3" <yourFirstNamebr>'''#Now, issue the '''mail''' command to see if you received that e-mail message.#At the mail prompt, enter the command '''h''' (for detailed header) following by the number of that the "... Test3" email within the list. This sets the e-mail to display detailed header information with mail message.#View that message by entering the mail message number in the list. Did it work? {{Admon/tip important |View Mail Message Header Information in Vi Text EditorBackup your VMs!|You can save the mail message header information in MUST perform a file to view in a text editor like vi. In order to do this, simply enter the following command at the mail prompt:<br>'''save x ~/message.txtfull backup''' (where x represents the number of the email in the list).}} <ol><li value="6">Note similar information regarding how the mail message was transmitted with ALL of your VM2 machine</li><li>Record your observations in VMs whenever you complete your lab logbook.</li></ol> === Resetting MS Outlook Web Application to Lite Version (If Required) === '''If your MS Outline web application was previously using the lite version, and you wish to revert to this original setting, perform the following steps:OPS335 labs''' #Click the or when working on your '''settingsOPS335 assignments''' icon (looks like a gear located left to the help (?) icon.#Click You should be using the General categories under the options on the left-side of the options menu.#Click Light Versiondump or rsync command, and you should use the Bash shell script that you were adviced to create in the details area order to the right, make certain that the Use the light version backup all of Outlook on the web is selected (i.e. check mark appears), and click on Save at the topyour VMs.}}#Sign-out of your MS Outlook Session, and login again.<br><br>'''NOTE: If your MS Outlook application does not change versions, then close all of your web-browsers, and then log into your Seneca email account.''' '''Record steps, commands, and your observations in INVESTIGATION 2 3 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 vm2 to vm3, and from vm3 to vm2), and to your seneca email (or other external mail server).
::<span style="color:green;font-size:1.5em;">✓</span>Arrange proof that you can send e-mail from your '''vm2''' machine to your '''Seneca College e-mail account''', and than you can '''send and receive e-mail messages between on your vm2 and vm3 machines'''.
::<span style="color:green;font-size:1.5em;">✓</span>Download and run '''https://ict.senecacollege.ca/~andrew.smith/ops335/labcheck4a.bash''' on your '''host''' machine.
::<span style="color:green;font-size:1.5em;">✓</span>Completed Lab4a log-book notes.
-->
==EXPLORATION QUESTIONS==
#Briefly list the students steps to install the MUA on your server for text-based messaging.#Briefly list the steps to trouble-shoot your server if you could not send e-mail messages from your VM2 vm2 machine to an external e-mail server.#Write the command to send an e-mail message from your VM2 vm2 to your Seneca College e-mail account.#What are the commands to issue in the mail prompt to:<ul><li>Read the first e-mail message displayed</li><li>Save the 4th e-mail message to the file pathname: ~/maildir/3.msg.txt</li><li>Delete the 3rd e-mail message displayed</li><li>Exit the mail command prompt and return to the shell</li></ul><br>#What were the results of sending emails locally on your VM2 vm2 machine? Show log segments to verify your answers.# What is the purpose of an MTA?# What is the purpose of an MUA?# Draw a simple diagram showing how an MUA and an MTA are used to send e-mail messages between different servers.#List the steps to show your email header to trace test a running postfix service using the transmission between Mail Transfer Agents among different mail serversnc application.