→Online Submission (Ahad Mammadov's Classes only)
== OBJECTIVE & PREPARATION ==
In Lab 2a, we set the firewall rules for your '''host''' machine. In this lab, we will '''create firewall rules for our virtual machines''' within our virtual private network. This lab will also apply '''
"best practices "''' and ''' "troubleshooting techniques "''' using iptables.
=== Online Resources===
* [http://www.microhowto.info/troubleshooting/troubleshooting_iptables.html Troubleshooting iptables]
==INVESTIGATION 1: IPTABLES RULES
AS A SCRIPT==
First, issue an ''iptables command'' to set the policy to disable '''all forwarding traffic''', and remove the rule that is rejecting it.
# Next, set the default policy to drop '''all inbound traffic''', and remove the rule that is rejecting traffic.
# Issue an iptables command to list rules for verification.<br /><br />The remaining tasks will relate to that same '''inbound''' traffic chain
.<br /><br />
# Issue an ''iptables command'' to delete the default ssh rule.
# Issue an ''iptables command'' to add a rule that allows ssh traffic (i.e. tcp packets with destination port 22) that originates from any machine within your virtual network.
# Issue an ''iptables command'' to allow icmp traffic from addresses in your virtual network.
# Test that your machines can still use ping and ssh to communicate with each other.
Store the commands you used to modify the iptables into a shell script called: '''firewall_restore. bash'''# Set up a cron entry so that your rules are automatically applied every time the machine boots.# Now copy the script to your other VMs and make it apply to them when they boot as well.
# Reboot each machine and make sure this works before you move on.
==INVESTIGATION 2: IPTABLES TROUBLESHOOTING CHECKLIST==
<table border="1" cellspacing="0" cellpadding="5" >
<tr> <th>1</th><td>'''Test Network Connectivity'''</td><td>You can use the [
http:// zenit. senecac. on.ca/wiki /index.php/OPS335_Lab_1#Linux_Network_Connection_Configuration_Troubleshooting steps in lab 1] as a guide, but keep in mind the firewall may be blocking pings and DNS requests.</td></tr>
<tr> <th>2</th><td>'''Verify Service is Running & listening on the correct interfaces'''</td><td>You should learn to read the output of '''ss -atnp''' and '''ss -aunp''' to complement the '''systemctl status''' command.</td></tr>
<tr> <th>3</th><td>'''List your iptables Rules & Perform a "Walk-Thru"'''</td><td>For many decades, when troubleshooting programs that don't run properly, programmers will resort to reading their "source-code" line-by-line and pretend they are the computer to perform the operation. The programmer "walks-through" the code to force them to think like a computer in order to spot and fix subtle problems.<br><br>Therefore, you can follow a packet's path as you understand it should follow. Keep in mind [
http:// zenit. senecac. on.ca/wiki /index.php/OPS335_Lab_2#How_Firewalls_.28iptables.29_Relate_to_the_Labs_in_this_Course the diagram from the lecture last week]. What chain applies first on which machine? What's the first rule that matches the packet? What happens if no rules match the packet?<br><br>Don't forget that even if you're tracing the path of outgoing traffic - the INPUT chain on your machine still applies (for the response that comes back to your request).</td></tr>
<tr> <th>4</th><td>'''Use the log target to list unexpected traffic'''</td><td>Add a final rule to your input chain to log all traffic. Any traffic you are allowing will have already been accepted and will not reach this rule, so you will start a log of all the packets you are not allowing. Observing the logs while you attempt to use the service that is not being allowed will show you the type of traffic you need to allow.</td></tr>
<tr> <th>5</th><td>'''Verify Network Connectivity by Deleting iptables Rules'''</td><td>As a last resort, if you have no idea what's going on and need to confirm that you're still sane - clear all the iptables rules and check your configuration then. Keep in mind that the '''iptables -F''' command will delete all your rules but will not set the default policies to ACCEPT. This will tell you for sure whether your problem was (or was not) caused by iptables.<br><br>If you do this - have a ready way to restore the rules you just deleted. Restarting the iptables service is usually a good start and a '''shell script''' to add your custom rules is a reasonable next step.</td></tr></table>
At this point, you should be able to understand any iptables rules you experience in this course, including the <u>default</u> ones in CentOS. If you see a iptables rule that you don't understand, you can <u>delete</u> it and see what happens. But if you simply delete this rule, take the time to figure out what that rule did and why you needed to delete it. It was likely there for a purpose (other than to drive you crazy).
'''Record the troubleshooting checklist in your OPS335 lab log-book'''
#Finish the exercises, and record any information you feel you'll need to remember to solve problems like this in the future (e.g. in an assignment and/or in a practical test).
Record steps, commands, and your observations in INVESTIGATION 3 in your OPS335 lab log-book'''
== COMPLETING THE LAB ==
In completing this lab you have gained further practice using iptables. Each of your machines should now be protected by a custom firewall that we will continue to build on throughout the course. You have also gained experience troubleshooting iptables and determining what rules might need to be changed to allow desired traffic (or block undesired traffic).
''Depending on your professor you will either be asked to submit the lab in class, or online. Follow the appropriate set of instructions below.' ''
::<span style="color:green;font-size:1.5em;">✓</span>List iptables rules for ALL machines.
::<span style="color:green;font-size:1.5em;">✓</span>Prove that you can ping and ssh from your host machines to all of your vms.
the labcheck2b.bash checking bash shell script by issuing the command:<br><br>'''wget http:// matrix. senecac.on.ca/~ peter. callaghan/ files/OPS335/labcheck2b.bash '''<br><br>set execute permission and run the shell script on your '''c7host''' machine. ::*For '''Peter's classes''', follow his Online Submission instructions in Moodle. ::*For '''Murray's classes''', run command (piping to the '''more''' command) and show output to instructor.::<span style="color:green;font-size:1.5em;">✓</span> Completed Lab2 log- book notes.
#List 3 separate techniques that you used to help troubleshoot to detect and fix iptables from running the shell script in the previous section.
<br><br>#Without looking at the table above, list tips for troubleshooting iptables. <br><br>
#After completing this lab, how does the above-mentioned shell script work to cause problems with iptables?