==ADDITIONAL IPTABLES TROUBLESHOOTING==
This lab will provide more hands-on experience with troubleshooting iptables issues.
===IPTABLES and Routing Troubleshooting Resources===
Some articles that you can use as a reference if you are still experiencing problems with iptables:
* [http://zenit.senecac.on.ca/wiki/index.php/OPS335_Lab_1#Linux_Network_Connection_Configuration_Troubleshooting Test Network Connectivity] (From Lab1)
* [http://www.microhowto.info/troubleshooting/troubleshooting_iptables.html Troubleshooting iptables]
* [https://community.rackspace.com/products/f/25/t/248 Basic IPTABLES Troubleshooting]
==INVESTIGATION 1 : IPTABLES TROUBLESHOOTING CHECKLIST==
By now, you have probably discovered that a simple mistake in your iptables rules can have very serious and unexpected consequences for not only your services, but the network connectivity in general. There is a general process (checklist) that you can following to help troubleshoot iptables in order to fix the problem.
<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 '''
netstat -atnp''' and ''' netstat -aunp''' to complement the '''systemctl status''' command.</td></tr><tr> <th>3 </th><td>'''Verify Network Connectivity by Deleting iptables Rules'''</td><td>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 deafult 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> <tr> <th>4</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 mahchine still applies (for the response that comes back to your request).</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 troubleshooting checklist for INVESTIGATION 1 in your OPS335 lab log-book''' ==INVESTIGATION 2: HANDS-ON IPTABLES TROUBLESHOOTING==
You will now get additional practice on troubleshooting iptables by downloading a running a shell script that will create iptables rules that will cause problems. You will then need to use tools and procedures (IPTABLES Troubleshooting Checklist) to determine the cause of the problem and fix that problem.
Record steps, commands, and your observations in INVESTIGATION 2 in your OPS335 lab log-book'''
== COMPLETING THE LAB ==
[[Image:lab1_signoff. png|thumb|right|300px|Students should be prepared with '''all required commands (system information) displayed in a terminal (or multiple terminals) prior to calling the instructor for signoff '''. ]]''' Arrange evidence ( command output) for each of these items on your screen, then ask your instructor to review them and sign off on the lab 's completion: '''
::<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.
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 booking at the table above, list the 4 tips for troubleshooting iptables (in order). <br><br>
#After completing this lab, how does the above-mentioned shell script work to cause problems with iptables?