<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.comfac.net/index.php?action=history&amp;feed=atom&amp;title=Training_Lab_2%3A_Firewall_Rules_and_Aliases</id>
	<title>Training Lab 2: Firewall Rules and Aliases - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.comfac.net/index.php?action=history&amp;feed=atom&amp;title=Training_Lab_2%3A_Firewall_Rules_and_Aliases"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.comfac.net/index.php?title=Training_Lab_2:_Firewall_Rules_and_Aliases&amp;action=history"/>
	<updated>2026-06-05T11:00:51Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://mediawiki.comfac.net/index.php?title=Training_Lab_2:_Firewall_Rules_and_Aliases&amp;diff=228&amp;oldid=prev</id>
		<title>Justinaquino: Created page with &quot;__NOTOC__  &lt;div style=&quot;background-color:#fff3e6; border:1px solid #cc6600; padding:10px; margin-bottom:15px;&quot;&gt; &#039;&#039;&#039;Lab 2: Interfaces, Firewall Rules, and Aliases&#039;&#039;&#039;&lt;br&gt; This hands-on lab covers configuring the HQ DMZ interface, building firewall rules, creating aliases, and applying restrictive access policies. All configuration is performed on &#039;&#039;&#039;fw1-HQ&#039;&#039;&#039; at &lt;code&gt;https://172.17.1.1&lt;/code&gt;. &lt;/div&gt;  == Prerequisites ==  * Lab topology from Training_Lab_1:_Initial_Confi...&quot;</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.comfac.net/index.php?title=Training_Lab_2:_Firewall_Rules_and_Aliases&amp;diff=228&amp;oldid=prev"/>
		<updated>2026-04-23T06:58:28Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;__NOTOC__  &amp;lt;div style=&amp;quot;background-color:#fff3e6; border:1px solid #cc6600; padding:10px; margin-bottom:15px;&amp;quot;&amp;gt; &amp;#039;&amp;#039;&amp;#039;Lab 2: Interfaces, Firewall Rules, and Aliases&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt; This hands-on lab covers configuring the HQ DMZ interface, building firewall rules, creating aliases, and applying restrictive access policies. All configuration is performed on &amp;#039;&amp;#039;&amp;#039;fw1-HQ&amp;#039;&amp;#039;&amp;#039; at &amp;lt;code&amp;gt;https://172.17.1.1&amp;lt;/code&amp;gt;. &amp;lt;/div&amp;gt;  == Prerequisites ==  * Lab topology from Training_Lab_1:_Initial_Confi...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:#fff3e6; border:1px solid #cc6600; padding:10px; margin-bottom:15px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Lab 2: Interfaces, Firewall Rules, and Aliases&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;&lt;br /&gt;
This hands-on lab covers configuring the HQ DMZ interface, building firewall rules, creating aliases, and applying restrictive access policies. All configuration is performed on &amp;#039;&amp;#039;&amp;#039;fw1-HQ&amp;#039;&amp;#039;&amp;#039; at &amp;lt;code&amp;gt;https://172.17.1.1&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
* Lab topology from [[Training_Lab_1:_Initial_Configuration|Training Lab 1]] is in place&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;HQ LAN:&amp;#039;&amp;#039;&amp;#039; &amp;lt;code&amp;gt;172.17.1.0/24&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;HQ DMZ:&amp;#039;&amp;#039;&amp;#039; &amp;lt;code&amp;gt;172.17.2.0/24&amp;lt;/code&amp;gt;&lt;br /&gt;
* Access to fw1-HQ web interface and VPN connection&lt;br /&gt;
&lt;br /&gt;
== Lab Overview ==&lt;br /&gt;
&lt;br /&gt;
This lab starts with configuring the DMZ interface at HQ, going through the steps to assign and configure a new interface. This new interface will be used as an example of configuring an additional internal interface treated as a DMZ, with significant restrictions to the other internal networks.&lt;br /&gt;
&lt;br /&gt;
Then we&amp;#039;ll go through use cases and examples for firewall rules and aliases. Some firewall rules come in the context of NAT, which is covered in a later lab.&lt;br /&gt;
&lt;br /&gt;
== Exercise 1: Configure the DMZ Interface ==&lt;br /&gt;
&lt;br /&gt;
=== Step 1: Review Interface Assignments ===&lt;br /&gt;
&lt;br /&gt;
Browse to &amp;#039;&amp;#039;&amp;#039;Interfaces &amp;gt; Assign&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
The firewall&amp;#039;s interfaces are assigned in order, from &amp;lt;code&amp;gt;vtnet0&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;vtnet4&amp;lt;/code&amp;gt;. Our DMZ interface will be &amp;#039;&amp;#039;&amp;#039;OPT1&amp;#039;&amp;#039;&amp;#039;, which is assigned to &amp;lt;code&amp;gt;vtnet2&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Step 2: Enable and Configure OPT1 ===&lt;br /&gt;
&lt;br /&gt;
Browse to &amp;#039;&amp;#039;&amp;#039;Interfaces &amp;gt; OPT1&amp;#039;&amp;#039;&amp;#039; and configure:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Setting&lt;br /&gt;
! Value&lt;br /&gt;
|-&lt;br /&gt;
| Enable&lt;br /&gt;
| ✓ Checked&lt;br /&gt;
|-&lt;br /&gt;
| Description&lt;br /&gt;
| DMZ&lt;br /&gt;
|-&lt;br /&gt;
| IPv4 Configuration Type&lt;br /&gt;
| Static IPv4&lt;br /&gt;
|-&lt;br /&gt;
| IPv4 Address&lt;br /&gt;
| 172.17.2.1/24&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Save and Apply Changes.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
After saving, OPT1 is still the underlying identifier in &amp;lt;code&amp;gt;config.xml&amp;lt;/code&amp;gt;, but the interface is displayed as &amp;#039;&amp;#039;&amp;#039;DMZ&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== Exercise 2: Test Connectivity to DMZ ==&lt;br /&gt;
&lt;br /&gt;
=== Ping the DMZ Gateway ===&lt;br /&gt;
&lt;br /&gt;
From the HQ-Client VM:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
training@hq-client:~$ ping 172.17.2.1&lt;br /&gt;
PING 172.17.2.1 (172.17.2.1) 56(84) bytes of data.&lt;br /&gt;
64 bytes from 172.17.2.1: icmp_seq=1 ttl=64 time=0.298 ms&lt;br /&gt;
64 bytes from 172.17.2.1: icmp_seq=2 ttl=64 time=0.979 ms&lt;br /&gt;
64 bytes from 172.17.2.1: icmp_seq=3 ttl=64 time=1.27 ms&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ping server1 from HQ-Client ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
training@hq-client:~$ ping -c 5 172.17.2.10&lt;br /&gt;
PING 172.17.2.10 (172.17.2.10) 56(84) bytes of data.&lt;br /&gt;
64 bytes from 172.17.2.10: icmp_seq=1 ttl=63 time=0.711 ms&lt;br /&gt;
64 bytes from 172.17.2.10: icmp_seq=2 ttl=63 time=1.75 ms&lt;br /&gt;
...&lt;br /&gt;
5 packets transmitted, 5 received, 0% packet loss&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This ping traverses two virtual networks, so latency is roughly doubled. Steady replies indicate good connectivity.&lt;br /&gt;
&lt;br /&gt;
== Exercise 3: Connectivity from DMZ Network ==&lt;br /&gt;
&lt;br /&gt;
=== Verify Default Block Behavior ===&lt;br /&gt;
&lt;br /&gt;
Newly-added interfaces have &amp;#039;&amp;#039;&amp;#039;no firewall rules by default&amp;#039;&amp;#039;&amp;#039;. All traffic initiated on that interface is blocked.&lt;br /&gt;
&lt;br /&gt;
Log in to server1 via SSH from HQ-client:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
training@hq-client:~$ ssh training@172.17.2.10&lt;br /&gt;
Password for training@server1: password&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From server1, attempt to ping:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
training@server1:~ % ping -c 5 172.17.2.1&lt;br /&gt;
PING 172.17.2.1 (172.17.2.1): 56 data bytes&lt;br /&gt;
--- 172.17.2.1 ping statistics ---&lt;br /&gt;
5 packets transmitted, 0 packets received, 100.0% packet loss&lt;br /&gt;
&lt;br /&gt;
training@server1:~ % ping google.com&lt;br /&gt;
ping: cannot resolve google.com: Host name lookup failure&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting: Check ARP Cache ===&lt;br /&gt;
&lt;br /&gt;
Check the ARP cache to confirm Layer 2 connectivity:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
training@server1:~ % arp -an&lt;br /&gt;
? (172.17.2.10) at 08:00:27:ec:c0:6b on em0 permanent [ethernet]&lt;br /&gt;
? (172.17.2.1) at 08:00:27:59:b4:35 on em0 expires in 139 seconds [ethernet]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A valid MAC address for the gateway confirms the server is on the correct network segment. An &amp;#039;&amp;#039;&amp;#039;incomplete&amp;#039;&amp;#039;&amp;#039; entry indicates a Layer 2 issue.&lt;br /&gt;
&lt;br /&gt;
=== Check Firewall Logs ===&lt;br /&gt;
&lt;br /&gt;
Browse to &amp;#039;&amp;#039;&amp;#039;Status &amp;gt; System Logs &amp;gt; Firewall&amp;#039;&amp;#039;&amp;#039; on fw1-HQ to see blocked traffic.&lt;br /&gt;
&lt;br /&gt;
=== Add Temporary Allow-All Rule ===&lt;br /&gt;
&lt;br /&gt;
On &amp;#039;&amp;#039;&amp;#039;Firewall &amp;gt; Rules &amp;gt; DMZ&amp;#039;&amp;#039;&amp;#039;, add a temporary rule:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Setting&lt;br /&gt;
! Value&lt;br /&gt;
|-&lt;br /&gt;
| Action&lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| Interface&lt;br /&gt;
| DMZ&lt;br /&gt;
|-&lt;br /&gt;
| Protocol&lt;br /&gt;
| any&lt;br /&gt;
|-&lt;br /&gt;
| Source&lt;br /&gt;
| any&lt;br /&gt;
|-&lt;br /&gt;
| Destination&lt;br /&gt;
| any&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Save and Apply Changes.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Verify connectivity from server1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
training@server1:~ % ping -c 3 172.17.2.1&lt;br /&gt;
training@server1:~ % ping -c 3 google.com&lt;br /&gt;
training@server1:~ % ping -c 3 172.17.1.100&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All three should succeed with the allow-all rule in place.&lt;br /&gt;
&lt;br /&gt;
== Exercise 4: Create Aliases ==&lt;br /&gt;
&lt;br /&gt;
Aliases ease management by grouping IPs, networks, or ports.&lt;br /&gt;
&lt;br /&gt;
Browse to &amp;#039;&amp;#039;&amp;#039;Firewall &amp;gt; Aliases&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
=== Alias: PrivateNetworks ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Field&lt;br /&gt;
! Value&lt;br /&gt;
|-&lt;br /&gt;
| Name&lt;br /&gt;
| PrivateNetworks&lt;br /&gt;
|-&lt;br /&gt;
| Description&lt;br /&gt;
| All RFC1918 private IP space&lt;br /&gt;
|-&lt;br /&gt;
| Type&lt;br /&gt;
| Network&lt;br /&gt;
|-&lt;br /&gt;
| Members&lt;br /&gt;
| 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Alias: server1 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Field&lt;br /&gt;
! Value&lt;br /&gt;
|-&lt;br /&gt;
| Name&lt;br /&gt;
| server1&lt;br /&gt;
|-&lt;br /&gt;
| Description&lt;br /&gt;
| server1.example.com&lt;br /&gt;
|-&lt;br /&gt;
| Type&lt;br /&gt;
| Host&lt;br /&gt;
|-&lt;br /&gt;
| Member&lt;br /&gt;
| 172.17.2.10&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Alias: server2 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Field&lt;br /&gt;
! Value&lt;br /&gt;
|-&lt;br /&gt;
| Name&lt;br /&gt;
| server2&lt;br /&gt;
|-&lt;br /&gt;
| Description&lt;br /&gt;
| server2.example.com&lt;br /&gt;
|-&lt;br /&gt;
| Type&lt;br /&gt;
| Host&lt;br /&gt;
|-&lt;br /&gt;
| Member&lt;br /&gt;
| 172.17.2.20&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Alias: DNSservers ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Field&lt;br /&gt;
! Value&lt;br /&gt;
|-&lt;br /&gt;
| Name&lt;br /&gt;
| DNSservers&lt;br /&gt;
|-&lt;br /&gt;
| Type&lt;br /&gt;
| Host&lt;br /&gt;
|-&lt;br /&gt;
| Members&lt;br /&gt;
| server1, server2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Alias: SMTPservers ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Field&lt;br /&gt;
! Value&lt;br /&gt;
|-&lt;br /&gt;
| Name&lt;br /&gt;
| SMTPservers&lt;br /&gt;
|-&lt;br /&gt;
| Description&lt;br /&gt;
| authorized outbound SMTP servers&lt;br /&gt;
|-&lt;br /&gt;
| Type&lt;br /&gt;
| Host&lt;br /&gt;
|-&lt;br /&gt;
| Members&lt;br /&gt;
| server1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Alias: RemoteAdmin ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Field&lt;br /&gt;
! Value&lt;br /&gt;
|-&lt;br /&gt;
| Name&lt;br /&gt;
| RemoteAdmin&lt;br /&gt;
|-&lt;br /&gt;
| Description&lt;br /&gt;
| IPs authorized for remote management&lt;br /&gt;
|-&lt;br /&gt;
| Type&lt;br /&gt;
| Host&lt;br /&gt;
|-&lt;br /&gt;
| Members&lt;br /&gt;
| 192.0.2.100 (student&amp;#039;s system)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Alias: WebServers ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Field&lt;br /&gt;
! Value&lt;br /&gt;
|-&lt;br /&gt;
| Name&lt;br /&gt;
| WebServers&lt;br /&gt;
|-&lt;br /&gt;
| Description&lt;br /&gt;
| publicly-reachable web servers&lt;br /&gt;
|-&lt;br /&gt;
| Type&lt;br /&gt;
| Host&lt;br /&gt;
|-&lt;br /&gt;
| Members&lt;br /&gt;
| server1, server2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Alias: WebPorts ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Field&lt;br /&gt;
! Value&lt;br /&gt;
|-&lt;br /&gt;
| Name&lt;br /&gt;
| WebPorts&lt;br /&gt;
|-&lt;br /&gt;
| Description&lt;br /&gt;
| allowed ports to public web servers&lt;br /&gt;
|-&lt;br /&gt;
| Type&lt;br /&gt;
| Ports&lt;br /&gt;
|-&lt;br /&gt;
| Members&lt;br /&gt;
| 80, 443&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Save each alias, then Apply Changes.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Exercise 5: Allow Remote Firewall Administration ==&lt;br /&gt;
&lt;br /&gt;
Add a rule on &amp;#039;&amp;#039;&amp;#039;Firewall &amp;gt; Rules &amp;gt; WAN&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Setting&lt;br /&gt;
! Value&lt;br /&gt;
|-&lt;br /&gt;
| Interface&lt;br /&gt;
| WAN&lt;br /&gt;
|-&lt;br /&gt;
| Protocol&lt;br /&gt;
| any&lt;br /&gt;
|-&lt;br /&gt;
| Source&lt;br /&gt;
| Single host or alias — RemoteAdmin&lt;br /&gt;
|-&lt;br /&gt;
| Destination&lt;br /&gt;
| WAN address&lt;br /&gt;
|-&lt;br /&gt;
| Description&lt;br /&gt;
| allow all from remote admin IPs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Save and Apply Changes.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Verify from your host:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ping 192.0.2.2&lt;br /&gt;
$ curl -I https://192.0.2.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exercise 6: Configure Restrictive DMZ Rules ==&lt;br /&gt;
&lt;br /&gt;
Remove the temporary allow-all rule (or ensure it is at the top, to be deleted later). Then add the following rules in order using the &amp;#039;&amp;#039;&amp;#039;Add&amp;#039;&amp;#039;&amp;#039; button (add to bottom):&lt;br /&gt;
&lt;br /&gt;
=== Rule 1: Allow Ping to Firewall DMZ IP ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Setting&lt;br /&gt;
! Value&lt;br /&gt;
|-&lt;br /&gt;
| Action&lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| Interface&lt;br /&gt;
| DMZ&lt;br /&gt;
|-&lt;br /&gt;
| Protocol&lt;br /&gt;
| ICMP&lt;br /&gt;
|-&lt;br /&gt;
| ICMP Type&lt;br /&gt;
| Echo request&lt;br /&gt;
|-&lt;br /&gt;
| Source&lt;br /&gt;
| DMZ net&lt;br /&gt;
|-&lt;br /&gt;
| Destination&lt;br /&gt;
| DMZ address&lt;br /&gt;
|-&lt;br /&gt;
| Description&lt;br /&gt;
| Allow ping to firewall&amp;#039;s DMZ IP&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Rule 2: Allow DNS to DMZ IP ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Setting&lt;br /&gt;
! Value&lt;br /&gt;
|-&lt;br /&gt;
| Action&lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| Interface&lt;br /&gt;
| DMZ&lt;br /&gt;
|-&lt;br /&gt;
| Protocol&lt;br /&gt;
| TCP/UDP&lt;br /&gt;
|-&lt;br /&gt;
| Source&lt;br /&gt;
| DMZ net&lt;br /&gt;
|-&lt;br /&gt;
| Destination&lt;br /&gt;
| DMZ address&lt;br /&gt;
|-&lt;br /&gt;
| Destination Port&lt;br /&gt;
| DNS (53)&lt;br /&gt;
|-&lt;br /&gt;
| Description&lt;br /&gt;
| Allow DNS lookups to DNS Resolver&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Rule 3: Reject All Else to Private Networks ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Setting&lt;br /&gt;
! Value&lt;br /&gt;
|-&lt;br /&gt;
| Action&lt;br /&gt;
| Reject&lt;br /&gt;
|-&lt;br /&gt;
| Interface&lt;br /&gt;
| DMZ&lt;br /&gt;
|-&lt;br /&gt;
| Protocol&lt;br /&gt;
| any&lt;br /&gt;
|-&lt;br /&gt;
| Source&lt;br /&gt;
| any&lt;br /&gt;
|-&lt;br /&gt;
| Destination&lt;br /&gt;
| Single host or alias — PrivateNetworks&lt;br /&gt;
|-&lt;br /&gt;
| Log&lt;br /&gt;
| ✓ Checked&lt;br /&gt;
|-&lt;br /&gt;
| Description&lt;br /&gt;
| Reject all else from DMZ to private networks&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This prevents DMZ hosts from reaching any other internal services and logs blocked attempts.&lt;br /&gt;
&lt;br /&gt;
=== Rule 4: Allow DNS Outbound to Internet ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Setting&lt;br /&gt;
! Value&lt;br /&gt;
|-&lt;br /&gt;
| Action&lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| Interface&lt;br /&gt;
| DMZ&lt;br /&gt;
|-&lt;br /&gt;
| Protocol&lt;br /&gt;
| TCP/UDP&lt;br /&gt;
|-&lt;br /&gt;
| Source&lt;br /&gt;
| Single host or alias — DNSservers&lt;br /&gt;
|-&lt;br /&gt;
| Destination&lt;br /&gt;
| any&lt;br /&gt;
|-&lt;br /&gt;
| Destination Port&lt;br /&gt;
| DNS (53)&lt;br /&gt;
|-&lt;br /&gt;
| Description&lt;br /&gt;
| Allow recursive queries from DNS servers to Internet&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Rule 5: Allow SMTP Outbound to Internet ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Setting&lt;br /&gt;
! Value&lt;br /&gt;
|-&lt;br /&gt;
| Action&lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| Interface&lt;br /&gt;
| DMZ&lt;br /&gt;
|-&lt;br /&gt;
| Protocol&lt;br /&gt;
| TCP&lt;br /&gt;
|-&lt;br /&gt;
| Source&lt;br /&gt;
| Single host or alias — SMTPservers&lt;br /&gt;
|-&lt;br /&gt;
| Destination&lt;br /&gt;
| any&lt;br /&gt;
|-&lt;br /&gt;
| Destination Port&lt;br /&gt;
| SMTP (25)&lt;br /&gt;
|-&lt;br /&gt;
| Description&lt;br /&gt;
| Allow SMTP servers to send to Internet&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Rule 6: Allow HTTP Outbound for Management (Disabled) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Setting&lt;br /&gt;
! Value&lt;br /&gt;
|-&lt;br /&gt;
| Action&lt;br /&gt;
| Pass&lt;br /&gt;
|-&lt;br /&gt;
| Disabled&lt;br /&gt;
| ✓ Checked&lt;br /&gt;
|-&lt;br /&gt;
| Interface&lt;br /&gt;
| DMZ&lt;br /&gt;
|-&lt;br /&gt;
| Protocol&lt;br /&gt;
| TCP&lt;br /&gt;
|-&lt;br /&gt;
| Source&lt;br /&gt;
| DMZ net&lt;br /&gt;
|-&lt;br /&gt;
| Destination&lt;br /&gt;
| any&lt;br /&gt;
|-&lt;br /&gt;
| Destination Port&lt;br /&gt;
| HTTP (80)&lt;br /&gt;
|-&lt;br /&gt;
| Description&lt;br /&gt;
| Management — temp allow HTTP outbound from servers&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This rule is disabled by default and should only be enabled during updates.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Save and Apply Changes after each rule.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Exercise 7: Verify Restrictive Ruleset ==&lt;br /&gt;
&lt;br /&gt;
=== Review Rule Order ===&lt;br /&gt;
&lt;br /&gt;
Ensure the temporary allow-all rule is at the top. With it at the top, all traffic matches it first and the restrictive rules are ineffective.&lt;br /&gt;
&lt;br /&gt;
From server1, start a constant ping to HQ-client:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
training@server1:~ % ping 172.17.1.100&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replies confirm the allow-all rule is passing traffic.&lt;br /&gt;
&lt;br /&gt;
=== Delete Allow-All Rule ===&lt;br /&gt;
&lt;br /&gt;
Delete the temporary allow-all rule and &amp;#039;&amp;#039;&amp;#039;Apply Changes&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
The restrictive ruleset is now enforced for all &amp;#039;&amp;#039;&amp;#039;new&amp;#039;&amp;#039;&amp;#039; connections. The running ping is still permitted because the firewall is stateful — already-permitted connections are never re-evaluated.&lt;br /&gt;
&lt;br /&gt;
=== Kill the Ping State ===&lt;br /&gt;
&lt;br /&gt;
Browse to &amp;#039;&amp;#039;&amp;#039;Diagnostics &amp;gt; States&amp;#039;&amp;#039;&amp;#039;. Filter for &amp;lt;code&amp;gt;172.17.2.10:&amp;lt;/code&amp;gt; (note the colon to avoid matching similar IPs). Click the &amp;#039;&amp;#039;&amp;#039;✕&amp;#039;&amp;#039;&amp;#039; symbol next to the ping state to delete it.&lt;br /&gt;
&lt;br /&gt;
The ping stops immediately.&lt;br /&gt;
&lt;br /&gt;
=== Check Firewall Logs ===&lt;br /&gt;
&lt;br /&gt;
Browse to &amp;#039;&amp;#039;&amp;#039;Status &amp;gt; System Logs &amp;gt; Firewall&amp;#039;&amp;#039;&amp;#039;. Log entries show the blocked traffic.&lt;br /&gt;
&lt;br /&gt;
Click the red &amp;#039;&amp;#039;&amp;#039;X&amp;#039;&amp;#039;&amp;#039; in the Action column on a log entry to see which rule blocked the connection. User-defined rules show &amp;lt;code&amp;gt;USER_RULE&amp;lt;/code&amp;gt; with the configured description.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting Reference ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Symptom&lt;br /&gt;
! Likely Cause&lt;br /&gt;
! Resolution&lt;br /&gt;
|-&lt;br /&gt;
| Cannot ping gateway from DMZ host&lt;br /&gt;
| No firewall rules on DMZ interface&lt;br /&gt;
| Add pass rule or verify existing rules&lt;br /&gt;
|-&lt;br /&gt;
| Cannot resolve DNS from DMZ&lt;br /&gt;
| DNS port blocked; no DNS rule&lt;br /&gt;
| Add TCP/UDP pass rule to DMZ address port 53&lt;br /&gt;
|-&lt;br /&gt;
| Can reach Internet but not HQ LAN&lt;br /&gt;
| Reject rule to PrivateNetworks is working&lt;br /&gt;
| Verify rule order and alias contents&lt;br /&gt;
|-&lt;br /&gt;
| Ping stops after deleting allow-all rule&lt;br /&gt;
| Stateful firewall; existing state was killed&lt;br /&gt;
| Expected behavior — new connections follow current rules&lt;br /&gt;
|-&lt;br /&gt;
| Cannot SSH to server1&lt;br /&gt;
| Layer 2 / ARP issue or VPN problem&lt;br /&gt;
| Check &amp;lt;code&amp;gt;arp -an&amp;lt;/code&amp;gt; on server1; verify MAC address&lt;br /&gt;
|-&lt;br /&gt;
| Firewall web UI unreachable from WAN&lt;br /&gt;
| No WAN allow rule for remote admin&lt;br /&gt;
| Add WAN rule with RemoteAdmin alias as source&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== IP Addressing Quick Reference ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Host / Network&lt;br /&gt;
! IP Address / Range&lt;br /&gt;
|-&lt;br /&gt;
| fw1-HQ LAN&lt;br /&gt;
| 172.17.1.1/24&lt;br /&gt;
|-&lt;br /&gt;
| fw1-HQ DMZ&lt;br /&gt;
| 172.17.2.1/24&lt;br /&gt;
|-&lt;br /&gt;
| fw1-HQ WAN&lt;br /&gt;
| 192.0.2.2&lt;br /&gt;
|-&lt;br /&gt;
| HQ-Client&lt;br /&gt;
| 172.17.1.100&lt;br /&gt;
|-&lt;br /&gt;
| server1&lt;br /&gt;
| 172.17.2.10&lt;br /&gt;
|-&lt;br /&gt;
| server2&lt;br /&gt;
| 172.17.2.20&lt;br /&gt;
|-&lt;br /&gt;
| RemoteAdmin&lt;br /&gt;
| 192.0.2.100&lt;br /&gt;
|-&lt;br /&gt;
| HQ LAN Network&lt;br /&gt;
| 172.17.1.0/24&lt;br /&gt;
|-&lt;br /&gt;
| HQ DMZ Network&lt;br /&gt;
| 172.17.2.0/24&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Lab Completion Checklist ==&lt;br /&gt;
&lt;br /&gt;
* [ ] DMZ interface enabled and configured (172.17.2.1/24)&lt;br /&gt;
* [ ] Connectivity tested from HQ-Client to DMZ&lt;br /&gt;
* [ ] Default block behavior verified from DMZ&lt;br /&gt;
* [ ] Aliases created (PrivateNetworks, DNSservers, SMTPservers, RemoteAdmin, WebServers, WebPorts, server1, server2)&lt;br /&gt;
* [ ] Remote admin rule added on WAN&lt;br /&gt;
* [ ] Restrictive DMZ rules configured and applied&lt;br /&gt;
* [ ] Stateful behavior demonstrated (ping continues after rule change, stops after state kill)&lt;br /&gt;
* [ ] Firewall logs reviewed and interpreted&lt;br /&gt;
&lt;br /&gt;
This concludes Lab 2.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Previous Module:&amp;#039;&amp;#039;&amp;#039; [[Training:_Interfaces_and_Firewall_Rules|Section 2 — Interfaces and Firewall Rules]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Source: Netgate FUND001-LIVE-Lab2-Rules.pdf&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>Justinaquino</name></author>
	</entry>
</feed>