Lab 7: Firewalls – Stateful Firewalls and Edge Router Filtering

advertisement
Lab 7: Firewalls – Stateful Firewalls and Edge
Router Filtering
Rich Macfarlane
7.1 Details
Aim:
The aim of this lab is to introduce the concepts of stateful firewalls, using Cisco Contextbased Access Control (CBAC) to configure perimeter routers. The lab also explores static
packet filtering as used for edge router Ingress and Egress filtering. Credentials and
network addressing for the lab will be supplied separately.
7.2 Activities
7.2.1 Create Virtual Topology
Connect to our vSphere virtual environment at vc2003.napier.ac.uk using a vSphere Client.
Navigate to the Module folder such as VMs & Templates>Production>CSN11111/8. You will be
assigned a group folder to work with which contains the 3 VMs needed for the lab (check Moodle for
the Groups and IP Addressing for each Group). Lab VMs: Windows7 VM running GNS3, a
Windows2003 VM and a Linux Ubuntu VM both running network services:
Student Laptop
REMOTE
MACHINE
Virtual Machines Cluster
vc2003.napier.ac.uk VLAN 205
192.168.X.0/24
INTERNET
VM – Linux
Web server
FTP server
Telnet server
VM – Win7-GNS3
Ubuntu
VLAN 206
192.168.Y.0/24
VM – Win2003
Windows7
GNS3 virtual
Cisco network
Web server
FTP server
Telnet server
Napier Network
146.176.x.x
Win2003
Lab Machine
LOCAL MACHINE
Windows 7 PC
Power on your Windows7-GNS3 VM, open a console window, login to the Windows7-GNS3 VM, and
run the GNS3 network simulator AS ADMINISTRATOR
Network Security
Stateful Firewalls & Edge Router Filtering – Rich Macfarlane 1
You can create a new project for Lab7, or a preconfigured starting project should be in the Projects
folder. If you wish to start with that just click Recent Projects button and select lab7_start, then
save as a project called lab7 or suchlike (save as, before you power on routers).
The topology, shown below, mimics two organisations connected via the untrusted Internet (the
serial link). The perimeter routers will be configured to explore the provision of security for the
organisations, introducing stateful firewalling and static filtering for good practise Ingress/Egress
perimeter filtering.
Starting Topology
You will be assigned two networks to attach the hosts to: 192.168.X.0/24 and 192.168.Y.0/24
And a network for the internal network between the routers: 10.1.Z.0/30
THE CORRECT NETWORKS MUST BE USED BY EACH STUDENT AS WE ARE SHARING VIRTUAL
NETWORKS.
PLEASE ONLY USE GROUP VMs AND NETWORK IP ADDRESSES ASSIGNED TO YOUR GROUP.
PLEASE DO NOT USE YOUR OWN IP ADDRESSES OR THE LAB DEMO ADDRESSES IN THIS
DOCUMENT!
Note down the networks, and annotate your own network diagram in GNS/on paper:
X network:
Y Network:
These must be used to configure the 2 interfaces of the GNS3 gateway routers (.254), and the 2
interfaces of the Linux and Windows VMs (.10), and the internal serial network between the routers.
7.2.2 GNS3 - Configure the Routers
On Win7-GNS3 VM, if not using the preconfigured starting project, create the topology.
On Win7-GNS3 VM, start the routers and run the console terminals. Then run the host Windows
machine’s task manager to check CPU usage. Keeping it running just behind GNS3 is good practise,
to monitor CPU usage.
Network Security
Stateful Firewalls & Edge Router Filtering – Rich Macfarlane 2
The CPU should reduce to well below 100% after within a few minutes. If the vSphere VM suspends
or is left idle for long periods a reboot of GNS3 may be needed to control the CPU use. If working on
your own host machine or the CPU never comes down from 100% you may need to recalculate the
idlepc value for the 7200 router type, until you find a value which reduces the CPU usage.
Router Interfaces
Once the GNS3 topology is created, configure the router interfaces (the configurations in Appendix A
can be can be used as a shortcut, or guide, to configuring any interfaces and rip routing not
configured yet on the routers). Change any default X, Y and Z network configurations to the
networks you have been assigned.
Remember to enable them with the no shut command.
Check the state of the interfaces on the routers with the show ip interface brief command,
as shown below.
Routing
Configure RIP if not already preconfigured, starting the RIP routing protocol on both routers and
advertise all connected networks, with the router rip and network 0.0.0.0 commands.
Check the routing table using the command show ip route. The connected and remote
networks should have routes (showing your X, Y and Z networks).
Save your Lab project regularly! Save the router configuration using copy run start, and
File>Save As and check the configuration file have been created, as detailed in previous labs.
Network Security
Stateful Firewalls & Edge Router Filtering – Rich Macfarlane 3
7.2.3 Configure the Hosts
Power on your Windows2003 VM and Linux Ubuntu VM. Configure the 192.168.X.10 and
192.168.Y.10 network IP Addresses on the Ubuntu and Windows2003 systems respectively, and set
the Default Gateways to the Router interface addresses at X.254 and Y.154 the appropriate hosts.
To configure the Linux system for IP Address and Default Gateway:
http://www.howtogeek.com/118337/stupid-geek-tricks-change-your-ip-address-from-thecommand-line-in-linux/
The following document has a section on setting the Windows IP and default gateway:
www.dcs.napier.ac.uk/~cs342/CSN11111/GNSAddVM.pdf
(Section: Windows-Setting Static IP Address and Default Gateway)
7.2.4 Test Network Connectivity
From each router, check connectivity to each local router interface, and each of the other routers
interfaces, and then attached hosts, as shown below. (work form the local interfaces, out hop by
hop) From R2:
Q. Where the direct pings successful?
If not, troubleshoot the configuration, until connectivity is achieved.
To test connectivity from the four networks attached to the routers, such as the 192.168.X and
192.168.30 networks first check the routing table on each router using the show ip route command.
This should show routes to all connected networks (C), and remote routes advertised by other
routers (R). The R2 routing table should look something like the below.
Network Security
Stateful Firewalls & Edge Router Filtering – Rich Macfarlane 4
Use the extended ping command to check connectivity to the stub networks with only switches. For
example, from the R2 router:
R2# ping
Protocol [ip]:
Target IP address: 192.168.15.254
Repeat count [5]:
Datagram size [100]:
Timeout in seconds [2]:
Extended commands [n]: y
Source address or interface: 192.168.30.254
Type of service [0]:
Set DF bit in IP header? [no]:
Validate reply data? [no]:
Data pattern [0xABCD]:
Loose, Strict, Record, Timestamp, Verbose[none]:
Sweep range of sizes [n]:
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.15.254, timeout is 2 seconds:
Packet sent with a source address of 192.168.30.254
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 20/116/192 ms
R2#
Check connectivity from all the networks.
Q. Where the extended pings successful?
If not, troubleshoot the configuration, until connectivity is achieved.
From the two VM’s connectivity can be checked using the ping tool from cmd window/terminal
windows.
In LINUX either limit the pings with –c3 or CTRL+C to stop the ping. DO NOT LEAVE PINGS
RUNNING AS WE ARE WORKING ON SHARED VIRTUAL NETWORKS!
Again start by checking the local interface is up and then work across the network, interface by
interface:
Network Security
Stateful Firewalls & Edge Router Filtering – Rich Macfarlane 5
Q. Can the Windows VM ping the Linux VM?
Q. Can the Linux VM ping the Windows VM?
Q. Can the Routers ping the Windows VM?
Q. Can the Routers ping the Linux VM?
Depending on the Windows VM you are using, the host firewall may block the incoming ICMP traffic
coming from the Linux machine or the routers. Switch off the firewall if necessary and check
connectivity from Linux VM and routers again.
7.2.5 Services - Test the Linux VM Web Server
From the Linux system, check the network services running, suing the netstat command. Try netstat
–h to check the options for the command. –t is used below to only show TCP services. Try the –u flag
to see UDP services, and the -n flag to check the port numbers of the services running.
Questions:
Network Security
Stateful Firewalls & Edge Router Filtering – Rich Macfarlane 6
Q. What protocol/port number combination is the web www service running on?
Q. What protocol/port number combination is the Telnet service running on?
Q. What protocol/port number combination is the FTP service running on?
From the Linux VM, check the local web server is running correctly, using the web browser:
From the Windows VM, use a web browser to test this web server can be connected to across the
network, as shown below.
Monitor Traffic
On Ubuntu, open a 2nd terminal window and resize to the width to width of the window. We can run
the tcpdump packet sniffer to monitor packets passing through the ethernet interface.
Try refreshing the web page, and you should see some traffic:
Keep the tcpdump trace window open to review traffic throughout the lab.
Network Security
Stateful Firewalls & Edge Router Filtering – Rich Macfarlane 7
7.2.6 Services - Test the Linux VM Telnet server
From the Windows VM, connect to the Telnet service running on the Linux VM, using the Windows
telnet client from the command window, or the Putty GUI client (should be on the Windows VM
desktop). You can also telnet from the R1 router if you prefer.
Log in with the Linux VM napier user’s credentials.
Once logged in you should have command line access to the Linux system. Use commands
ifconfig pwd etc to check you are logged into the Linux VM:
7.2.7 Services - Test the Linux VM FTP Server
From the Windows VM, connect to the FTP Server from, via a web browser using the URL
ftp://192.168.X.10 Log in with the napier user’s credentials.
You should get something like the following in your browser window: (it may take some time to
respond - move on to next section while its loading)
Network Security
Stateful Firewalls & Edge Router Filtering – Rich Macfarlane 8
7.2.8 Scan the R1 Perimeter Router for Services
Using the nmap network scanning tool, attackers can map networks and identify vulnerabilities on
target systems. Before we create a firewall on the R1 router, use nmap to scan for network services
running on the router, by running a port scan against the routers outside interface.
A typical scan would be a Port Scan which is used to determine the network services which are
running on a specific target machine by sending packets to each port and reporting the replies, as
shown below.
Eve
Scanning …
Port 21 - closed
Port 22 - closed
Port 23 – closed
…
Port 80 - open
…
Port 65,000
TCP SYN
TCP SYN ACK
The nmap users manual is available at:
http://nmap.org/book/man.html
From the Linux VM open a console window and use nmap -h | less to check the help to get an idea
of the variety of options.
Then run a default port scan against the router, as shown below.
Q. What services are running on the router?
Q. How many ports did nmap scan?
On the R1 Router, from a console window, start the routers web server with:
R2# config t
Enter configuration commands, one per line.
R2(config)# ip http server
R2(config)#
End with CNTL/Z.
From the Linux VM run the nmap port scan against the router again.
Q. What services are running on the router now?
Network Security
Stateful Firewalls & Edge Router Filtering – Rich Macfarlane 9
From the Linux VM use nmap to to run a port scan against the Windows VM, to determine what
public network services it is running.
Q. List some of the well known services which are running on the Windows VM?
As there is no perimeter firewalling, and the Windows host firewall is off, the port scan should
produce good results from the 1000 ports scanned, as shown below. In this way an intruder can map
possible target systems, and determine if they might have vulnerable services to exploit.
If the Windows firewall was on, the scan packets would have been blocked. (you can try turning on
the firewall and scanning again if you are not convinced)
Network Security
Stateful Firewalls & Edge Router Filtering – Rich Macfarlane 10
7.2.9 R1 Closed Perimeter Firewall using Cisco ACL Packet Filtering
Behind the R1 Router, we switched the XP host stateful Windows firewall off, so the system has no
protection. As we have seen from the nmap scans, the R1 edge router is also vulnerable to attack.
We can protect the network by creating a perimeter firewall on the R1 router. Static packet filtering
ACLs could be used.
Block All Ingress Traffic from the Untrusted Outside Network
On R1, configure an ACL to block all traffic originating from the outside network. This creates a
closed firewall. A closed security stance is generally best practice if possible, only allowing specific
traffic and denying everything else.
R1(config)# ip access-list extended OUT-IN
Allow RIP routing traffic.
R1(config-ext-nacl)# permit udp any any eq rip
Allow ICMP return traffic to the router so it can test connectivity.
R1(config-ext-nacl)# permit icmp any host 10.1.Z.1 echo-reply
Explicit deny all other traffic, and to log blocked packets.
R1(config-ext-nacl)# deny ip any any log
R1(config-ext-nacl)# exit
Check your ACL rules with:
R1# show access-lists
If the ACL is correct, apply the firewall rules to the R1 edge routers interface for inbound traffic.
R1(config)# interface s1/0
R1(config-if)# ip access-group OUT-IN in
R1(config-if)# exit
Network Security
Stateful Firewalls & Edge Router Filtering – Rich Macfarlane 11
R1(config)# interface S1/0
R1(config-if)# ip access-group OUT-IN
S1/0
Trusted, Internal
Network
Untrusted
Internet
Check the ACL was created, and applied to the interface correctly, by viewing R1’s running
configuration.
Q. Has the ACL been created correctly, and applied to the correct interface?
Q. Which type of firewalling is this? Static Packet filtering / Stateful / Application Inspection
Q. Which layer are we filtering at for the rule on rip traffic?
Test the R1 Closed Perimeter Firewall
Have the console window for R1 visible for the testing, as firewall logging is sent to the console
window by default.
From R1, ping R2, then ping the Linux VM server.
Q. Was the ping successful?
Q. Did R1 block any packets, or did the console display any firewall log information?
Q. Why?
From R2, ping R1, then ping the Windows VM from the Linux VM server.
ping c-2 192.168.Y.10
Q. Were the pings successful?
Q. Did R1 console display any log information? If so, detail the ip addresses and protocol:
In the R1 router console you should see the log of the packets being dropped, as shown below:
Network Security
Stateful Firewalls & Edge Router Filtering – Rich Macfarlane 12
From Windows VM ping the Linux VM server.
Q. Were the pings successful?
Q. Did R1 console display any log information? Which traffic is blocked? (IP Addresses, protocol,
port?)
Test the Linux Web Server
From the Windows VM, use a web browser to connect to the Apache web server running on the
Linux VM Server (Use CTRL+F5 to refresh the web page from the server, and not just the local
cache).
Q. Did R1 console display any log information? Which traffic is blocked? (IP Addresses, protocol,
ports)
Test the Linux Telnet server
From the Windows VM use the web browser to try and connect to the FTP server as before.
Test the Linux Telnet server
From the Windows VM, Telnet to the Linux VM, using Windows telnet client or Putty – logging in
with the napier user credentials.
Q. Was the Web, FTP and Telnet traffic successful?
Q. Did R1 console display any log information? If so, detail the IP Addresses, protocols and port
numbers blocked:
Q. Why is this traffic being blocked?
Network Security
Stateful Firewalls & Edge Router Filtering – Rich Macfarlane 13
The return traffic is being blocked by the ingress filtering on R1. The R1 console should show the
firewall log, similar to below.
To allow the return traffic needed for the various network services, we would need to implement all
the return firewall rules in the OUT-IN firewall ruleset. This can lead to large, complex, and insecure
rulesets.
Q. For the Web traffic what rule might be used? (such as for all client ports > 1024)
Q. Why is this type of rule not ideal?
Instead of creating these types of rules, stateful firewalls can be used keep track of connections
originated in the trusted inside network, and dynamically create return rules as necessary. Cisco
routers provide stateful inspection for individual protocols through the CBAC commands.
7.2.10 Stateful Perimeter Firewall on R1 Router using Cisco Context-Based
Access Control (CBAC)
To enhance the basic closed firewall, a stateful firewall can be created on the router, using Cisco
CBAC. We can configure a simple stateful firewall, similar in functionality to the Windows personal
firewall, on the outside interface of the R1 perimeter router.
A CBAC stateful inspection rule can be created for services originating in the trusted network. This
will allow the router to cache connection information for this egress traffic, and allow return traffic
automatically. Create a rule called IN-OUT-IN for ICMP and Web traffic:
R1(config)# ip inspect name IN-OUT-IN icmp
R1(config)# ip inspect name IN-OUT-IN http
Apply the Rule to the R1 edge routers internal interface for outbound traffic (traffic originating in the
trusted inside network which the Windows VM is in).
R1(config)# interface fa0/1
R1(config-if)# ip inspect IN-OUT-IN in
R1(config-if)# end
Network Security
Stateful Firewalls & Edge Router Filtering – Rich Macfarlane 14
Router(config)# interface fa0/1
Router(config-if)# ip inspect IN-OUT-IN in
R1
S1/0
Trusted, Internal
Network
Untrusted
Internet
fa0/1
View the current connections being cached by CBAC (the firewall state table):
R1# show ip inspect sessions
Q. Are any details of any connection states being stored?
Test ICMP Traffic
From Windows VM, ping the Linux VM server.
Q. Was the ping successful?
Q. Did R1 console display any log information?
The ICMP return traffic should now be allowed back through the stateful firewall
View the current connections being cached by CBAC (the firewall state table):
R1# show ip inspect sessions
Q. Are any details of any connection states being stored?
The CBAC state table should show the ICMP entry:
From Linux VM server send some ICMP packets to the Windows VM using ping.
Q. Was the ping successful?
Q. Did R1 console display any log information?
Q. Why is this?
Network Security
Stateful Firewalls & Edge Router Filtering – Rich Macfarlane 15
You should find that the stateful firewall allows the ICMP return traffic if the ping was initiated from
inside the trusted network (from the Windows VM), but not if the traffic originated from outside
(from the Linux VM).
The firewall should log the firewall rule matches to the console, such as the following, and that it
was filtered.
Test the Linux Web Server
From the Windows VM, use a web browser to connect to the Apache web server running on the
Linux VM Server (CTRL+F5 to refresh the page web from the server).
Q. Can we now access the Linux VM Web server from the Windows VM?
Q. What is allowing this traffic to flow?
Check the current connections being cached by the CBAC statefull firewall:
Q. Are any the states of any connections being stored?
Q. What are the source and destination IP Addresses and port numbers, and protocol?
Q. Which would change if we access the web server again?
Test your theory
The Web traffic connection should be cached, and the client (browser) port no should change.
Test the FTP Server
Use the browser on the Windows VM to try and connect to the FTP server as before.
Network Security
Stateful Firewalls & Edge Router Filtering – Rich Macfarlane 16
Test the Telnet server
From the Windows VM, Telnet to the Linux VM, using Windows telnet client or Putty.
Q. Was the FTP or Telnet traffic successful?
Q. Why?
Add FTP and Telnet to the Stateful Firewall
The stateful firewall is not configured for these protocols, so should still be blocking the return
traffic.
The ip inspect interfaces command can be used to check which stateful rules are
implemented on which interfaces, as shown below.
Create your own FTP and Telnet CBAC Stateful Inspection Rules for outgoing traffic .
Q. What are the stateful inspection rules?
To apply them, first remove the CBAC stateful firewall from the interface, and then add it to the
interface again.
R1(config-if)# no ip inspect IN-OUT-IN in
R1(config-if)# ip inspect IN-OUT-IN in
Test the Telnet Server
Use Putty to connect to the Telnet server on the Linux VM.
Q. Was the Telnet traffic successful?
Check the current connections being cached by CBAC:
Network Security
Stateful Firewalls & Edge Router Filtering – Rich Macfarlane 17
Q. Are there states of any connections being stored?
Q. What are the source and destination IP Addresses and port numbers?
Test the FTP server
From the Windows VM, connect to the FTP server using a browser.
Q. Was the FTP and Telnet traffic successful?
With the telnet connection (or on the Linux system) you can use netstat –ant to check the TCP
services/connections to the Linux box:
Q. What is different about the FTP connection(s), from the Telnet session?
Q. Why is this?
On the router, check the current connections being cached by CBAC.
Q. Are there any connections being stored?
Q. What are the source and destination IP Addresses and port numbers?
Q. As the filtering is looking into the FTP application payload to find the port numbers of the data
connection, which type of firewalling is this?
Static Packet filtering / Stateful / Application Inspection
Network Security
Stateful Firewalls & Edge Router Filtering – Rich Macfarlane 18
Scan the R1 Perimeter Router for Services
From the Linux VM open a console window and run nmap against the R1 router again, then against
the Windows VM.
Q. Is nmap able to report what public services are running on the router?
Q. Is nmap able to report what public services are running on the Windows VM?
The R1 perimeter firewall should now be blocking the nmap scan packets, as shown below.
Q. From the linux tcpdump window, which type of scan packets are being sent? Protocol/flag?
Nmap is only getting as far as sending host discovery packets – in this case TCP SYN to 80 and 443,
and as hosts seem down does not scan for open ports.
Review the Stateful Firewall Configuration
Check the current connections being cached by CBAC again.
Q. Are there any connections being stored?
Q. Are all the recent connections still being stored?
Q. Why not?
Use the show ip inspect config command to check the current configuration.
Q. What is the time out in seconds, for standard TCP sessions?
Network Security
Stateful Firewalls & Edge Router Filtering – Rich Macfarlane 19
Q. What is the current threshold for half open connections?
Q. What problems could this cause for the firewall?
The CBAC stateful firewall is configurable, and has time outs for connections being stored,
thresholds for open, and half open connections. This can be configured to help with management of
the state cache, and mitigate against DoS attacks.
7.2.11 R2 Perimeter Egress/Ingress Static Packet Filtering
Internet Service Providers (ISP) should implement RFC2827 filtering on their upstream devices, to
help mitigate attacks, including DoS and DDoS. This does not always happen, and it is good practice
to implement this on the perimeter firewall or edge router (located outside the perimeter firewall)
on ingress and egress traffic. RFC2827 filtering should block traffic with invalid source addresses
coming from the untrusted outside network, as well as blocking traffic leaving the inside trusted
network with invalid source addresses.
Ingress Filtering
Invalid source addresses in inbound traffic would include: (not an exhaustive list)
 RFC1918 – spoofed private addresses, such as 10.0.0.0/8, 192.168.0.0/16 etc
 RFC 2365 – spoofed multicast addresses, such as 239.0.0.0/8
 IANA reserved addresses – such as 0.0.0.0/8, 127.0.0.0/8 etc
Q. Can you think of other invalid source addresses should be blocked, inbound?
Traffic with source addresses of the inside network, or destination addresses of the outside network
should also be blocked.
Network Security
Stateful Firewalls & Edge Router Filtering – Rich Macfarlane 20
Egress Filtering
Similarly, invalid source addresses in outbound traffic include: (not an exhaustive list)
 Source address of the outside network.
 Destination address of the inside network.
 RFC1918 – spoofed private addresses, such as 10.0.0.0/8, 192.168.0.0/16 etc
 RFC 2365 – spoofed multicast addresses, such as 239.0.0.0/8
 IANA reserved addresses – such as 0.0.0.0/8, 127.0.0.0/8 etc
Create R2 Static Packet Filtering Firewall for Ingress Traffic Filtering
Configure an ACL to block all invalid traffic originating from the outside network. This creates a
closed firewall on R2.
R2(config)#
R2(config)# ip access-list extended INGRESS
Allow RIP routing traffic.
R2(config-ext-nacl)# permit udp any any eq rip
Allow ICMP return traffic to the router so it can test connectivity.
R2(config-ext-nacl)# permit icmp any host 10.1.Z.2 echo-reply
RFC2827 Filtering - deny traffic with invalid source addresses of the inside networks, and to log
blocked packets.
R2(config-ext-nacl)# deny ip 192.168.X.0 0.0.0.255 any log
Q. What other ACL would be needed for the other inside network?
Add this ACL
RFC1918 Filtering - deny traffic with invalid source addresses of Private network addresses and Local
loopback addresses, and to log blocked packets.
R2(config-ext-nacl)# deny ip 172.16.0.0 0.15.255.255 any log
R2(config-ext-nacl)# deny ip 127.0.0.0 0.255.255.255 any log
Q. Suggest other ACLs for Private networks (RFC1918), and for the other invalid source addresses?
(DO NOT add any firewall rules to block 10.0.x.x, or 192.168.x.x, as these are part of our lab
addressing scheme)
Explicit deny all other traffic, and to log blocked packets.
R2(config-ext-nacl)# deny ip any any log
Network Security
Stateful Firewalls & Edge Router Filtering – Rich Macfarlane 21
R2(config-ext-nacl)# end
R2#
Check the ACL was created correctly the show access-lists command
Before you apply the INGRESS firewall ruleset to R2, make sure you can ping from R1 to R2, from R1
to Linux VM, and can access the web server on the Linux VM from the Windows VM.
Apply the ACL to the R2 routers outside interface for inbound traffic.
R2(config)# interface S1/0
R2(config-if)# ip access-group INGRESS in
R2(config-if)# end
R1(config)# interface S1/0
R1(config-if)# ip access-group INGRESS
S1/0
Trusted, Internal
Network
Untrusted
Internet
Check the ACL was created, and apply correctly to the interface correctly, by viewing R2’s running
configuration.
Test the Closed Firewall
Have the console window for R2 visible for the testing, as the log is being sent to the console
window (standard output ).
From R2, ping R1, then ping the Linux VM server from R1.
Q. Was the ping successful?
Q. Did R1 console display any log information? Which protocols?
In the R2 router console you should see the log of the packets being dropped.
Test the Ingress RFC Filtering
Change the R1 f0/0 interface to have the IP Address of the 192.168.30.254 ip address, and perform
extended ping to the Linux VM server.
Q. Does the ping to the Linux server succeed?
Q. Where is it being blocked?
Network Security
Stateful Firewalls & Edge Router Filtering – Rich Macfarlane 22
The traffic should be blocked by the RFC2827 filtering rule, as the source address is that of an
internal network.
Test the Linux Web Server from Windows VM
From the Windows VM, use a web browser to connect to the web server running on the Linux VM
Server (CTRL+F5 to refresh the cache).
Test the Telnet server
From the Windows VM, Telnet to the Linux VM, using Putty – logging in with the napier user
credentials.
Q. Can the Windows VM get Web traffic, or Telnet traffic, from the Linux Server?
Q. Where is it being blocked? Which rule?
The R2 router should now be blocking the traffic with its INGRESS ruleset, as shown below.
The network behind R2 provides the public web server, so rules need to be added to allow web
traffic through the firewall.
Good practice is to remove the current ACL from the interface, then remove the ACL ruleset, then
recreate the entire ruleset from an offline text file (rather than attempting to edit/delte/insert
individual rules).
Copy the ACL rules to a text file, and remove the ACL from the interface.
R2(config)# interface S1/0
R2(config-if)# no ip access-group INGRESS in
Remove the INGRESS ACL from the router.
R2(config)# no ip access-list extended INGRESS
Check it has been removed using show access-lists
Add a new rule to the txt file to allow web traffic from the outside network to the Web server
machine only.
permit tcp any host 192.168.X.10 eq 80
Create a new INGRESS ACL ruleset from the text file, either pasting one line at a time, or all can be
pasted at once, from the correct command mode.
Network Security
Stateful Firewalls & Edge Router Filtering – Rich Macfarlane 23
Review the ACL checking the ruleset was created correctly, with the show access-lists command.
Apply the ACL to the R2 routers for inbound traffic.
Review R2’s running configuration, checking that the ACL was applied to the interface correctly.
Test the Telnet and Web servers
From the Windows VM, Telnet to the Linux VM, using a telnet client.
Test the Linux Web Server from Windows VM
From the Windows VM, use a web browser to connect to the web server running on the Linux VM
Server (CTRL+F5 to refresh the cache).
Q. Can the Windows VM connect to the Web server on the Linux box?
Q. What is allowing this?
Q. Can the Windows VM connect to the Telnet server on the Linux box?
Q. Where is it being blocked? Which rule?
The Telnet traffic should still be blocked at the R2 firewall with the drop any, and the Web traffic
passed with our specific rule.
You should be able to connect to the Linux VM Web server as shown below, but not to any other
services on the server.
Similar to our change for Web server access, change the R2 INGRESS ACL ruleset to allow Telnet
access to the Linux Server only.
Network Security
Stateful Firewalls & Edge Router Filtering – Rich Macfarlane 24
Q. What is the new ACL rule which has been added?
Test the Telnet server
From the Windows VM, Telnet to the Linux VM, using Putty – logging in with the napier user
credentials.
Q. Was the FTP or Telnet traffic successful?
Create Firewall ruleset on R2 for EgressTraffic Filtering
Configure an ACL to block all invalid traffic originating from the inside network.
R1(config)#
R1(config)# ip access-list extended EGRESS
RFC2827 Filtering – Create explicit deny ACL for traffic with invalid source addresses of the outside
network (10.1.0.0/16), and to log blocked packets.
Q. What is the ACL?
Add this rule to the EGRESS ACL
RFC2827 Filtering – Create explicit deny ACLs for traffic with invalid destination addresses of the
inside networks (192.168.X.0/24 and 192.168.30.0/24), and to log blocked packets.
Q. What are the ACLs?
Add these Rules to EGRESS ACL
RFC1918 Filtering – Create explicit deny ACL for traffic with invalid source address of the local
loopback (127.0.0.0/8), and to log blocked packets.
Q. What are the ACLs?
Add these Rules to EGRESS ACL
Q. What other RFC1918 ACLs might be needed?
Configure an ACL to allow all other traffic originating from the inside network out.
Network Security
Stateful Firewalls & Edge Router Filtering – Rich Macfarlane 25
R1(config-ext-nacl)# permit ip any any
R1(config-ext-nacl)# end
R1#
Apply the ACL to the R2 routers inside interface for outbound traffic.
R2(config)# interface fa0/1
R2(config-if)# ip access-group EGRESS in
R2(config-if)# exit
Check the ACL was created, and applied to the interface correctly, by viewing R2’s running
configuration, and using the show access-lists command.
7.2.12 (Optional Challenge) Create R2 Stateful Firewall
Create CBAC Stateful Inspection rules for the R2 router allowing the Linux VM access out to
the Windows VM web server and back.
A firewall rule would also need to be added to the R1 Ingress ACL to allow access to the web
server.
7.3 Appendix A – Sample Starting configurations
R1
!
interface FastEthernet0/0
ip address 192.168.15.254 255.255.255.0
duplex auto
speed auto
!
interface FastEthernet0/1
ip address 192.168.Y.254 255.255.255.0
duplex auto
speed auto
!
interface Serial1/0
ip address 10.1.Z.1 255.255.255.252
serial restart-delay 0
!
!
router rip
network 0.0.0.0
!
Network Security
Stateful Firewalls & Edge Router Filtering – Rich Macfarlane 26
End
R2
!
interface FastEthernet0/0
ip address 192.168.30.254 255.255.255.0
duplex auto
speed auto
!
interface FastEthernet0/1
ip address 192.168.X.254 255.255.255.0
duplex auto
speed auto
!
interface Serial1/0
ip address 10.1.Z.2 255.255.255.252
serial restart-delay 0
!
!
router rip
network 0.0.0.0
!
end
7.4 Appendix B – Sample Stateful Firewall and Edge
Router Filtering configurations
R1
!
upgrade fpd auto
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R1
!
boot-start-marker
boot-end-marker
!
logging message-counter syslog
!
no aaa new-model
ip source-route
ip cef
!
!
ip inspect name IN-OUT-IN icmp
ip inspect name IN-OUT-IN http
ip inspect name IN-OUT-IN ftp
ip inspect name IN-OUT-IN telnet
no ipv6 cef
!
multilink bundle-name authenticated
!
!
archive
log config
hidekeys
!
!
interface FastEthernet0/0
Network Security
Stateful Firewalls & Edge Router Filtering – Rich Macfarlane 27
ip address 192.168.30.254 255.255.255.0
duplex auto
speed auto
!
interface FastEthernet0/1
ip address 192.168.Y.254 255.255.255.0
ip inspect IN-OUT-IN out
duplex auto
speed auto
!
interface Serial1/0
ip address 10.1.Z.1 255.255.255.252
ip access-group OUT-IN in
serial restart-delay 0
!
!
router rip
network 0.0.0.0
!
ip forward-protocol nd
ip http server
no ip http secure-server
!
!
ip access-list extended OUT-IN
permit udp any any eq rip
permit icmp any host 10.1.Z.1 echo-reply
deny
ip any any log
!
control-plane
!
mgcp fax t38 ecm
mgcp behavior g729-variants static-pt
!
!
gatekeeper
shutdown
!
!
line con 0
stopbits 1
line aux 0
stopbits 1
line vty 0 4
login
!
end
R2
!
upgrade fpd auto
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R2
!
boot-start-marker
boot-end-marker
!
logging message-counter syslog
!
no aaa new-model
ip source-route
ip cef
!
Network Security
Stateful Firewalls & Edge Router Filtering – Rich Macfarlane 28
no ipv6 cef
!
multilink bundle-name authenticated
!
!
archive
log config
hidekeys
!
!
interface FastEthernet0/0
ip address 192.168.30.254 255.255.255.0
duplex auto
speed auto
!
interface FastEthernet0/1
ip address 192.168.X.254 255.255.255.0
ip access-group EGRESS in
duplex auto
speed auto
!
interface Serial1/0
ip address 10.1.Z.2 255.255.255.252
ip access-group INGRESS in
serial restart-delay 0
!
!
router rip
network 0.0.0.0
!
ip forward-protocol nd
ip http server
no ip http secure-server
ip http path flash:
!
!
ip access-list extended EGRESS
deny
ip 10.1.0.0 0.0.255.255 any log
deny
ip any 192.168.X.0 0.0.0.255 log
deny
ip any 192.168.30.0 0.0.0.255 log
deny
ip 127.0.0.0 0.255.255.255 any log
permit ip any any
ip access-list extended INGRESS
permit tcp any host 192.168.X.10 eq www
permit udp any any eq rip
permit icmp any host 10.1.Z.2 echo-reply
deny
ip 192.168.X.0 0.0.0.255 any log
deny
ip 192.168.30.0 0.0.0.255 any log
deny
ip 172.16.0.0 0.15.255.255 any log
deny
ip 127.0.0.0 0.255.255.255 any log
deny
ip any any log
!
!
control-plane
!
!
!
end
Network Security
Stateful Firewalls & Edge Router Filtering – Rich Macfarlane 29
Download