© Chris Carthern and William Wilson and Noel Rivera 2021
C. Carthern et al.Cisco Networkshttps://doi.org/10.1007/978-1-4842-6672-4_21

21. Firepower

Chris Carthern1  , William Wilson2 and Noel Rivera3
(1)
Bangkok, Krung Thep, Thailand
(2)
FPO, AP, USA
(3)
APO, AE, USA
 

No other network security device is as common as the firewall; however, modern firewalls have evolved leaps over the traditional state tracking firewalls. Modern firewalls provide options such as traffic normalization, application inspection, intrusion detection integration, and Virtual Private Network (VPN) capabilities among many other features. The Firepower series was born from a combination of Cisco’s ASA firewalls and Sourcefire’s Intrusion Prevention System (IPS). They are powerful next-generation security appliances that go far beyond being just a firewall.

In this chapter, we cover the more commonly used Firepower features. It would take an entire book to cover every feature.

Testing Policies in a Safe Environment

The Cisco Firepower system has an extensive set of features that take time and practice to master. The dilemma is: how do we construct complex policies that can be effective without affecting production networks and gain enough real-world experience to master the technology? In order to construct complex policies, a virtual or physical test bed is needed.

Cisco offers virtual versions of their next-generation Firepower appliance and the Firepower Management Center (FMC) . When you install the Firepower system, you can enable a 90-day evaluation license. This gives you the software, but you still need an environment to run it. VMWare is a common and easy-to-use virtualization solution. You can get player versions of their software for free or 60-day evaluation copies of their enterprise option. Another virtualization option is KVM (Kernel-based Virtual Machine) . It comes free on Linux, but it takes a bit more work to set up than VMWare. If you are using EVE-NG, it is using KVM to host the images. You just need to get the images onto the server.

For the operating system component, Microsoft provides 90-day evaluation versions of their operating systems. Linux is generally free.

None of this will work if you don’t have the hardware to run it. New servers are expensive, but off-lease and refurbished servers and professional desktops can be obtained for much cheaper. Everything I have in my lab is end of life but works for lab purposes.

Once you have the hardware, you can start putting it together. In this chapter, we use Kali Linux to test attacks against our system. We use Metasploitable as a target for attacks. It is a Linux image that is vulnerable to several known exploits. We use Ubuntu with Splunk as a monitoring server. We use Windows 10 for our end hosts. We use Firepower 6.6.1 for our firewall and management system, and we use Cisco CSR1000V virtual routers on each side of the firewalls. All of this is running on VMWare ESXi.

Management Access and Configuration

The Firepower series security appliances are managed by a web front end. Most organizations centrally manage the platforms using the Firepower Management Center (FMC). If you are used to command line configuration, you may be slightly disappointed. You can see a running configuration from the Firewall appliances, but much of it is just for viewing and cannot be configured from the command line.

We are using Firepower 6.6 for our examples in this chapter. The interface was changed for this release. If you have Firepower 6.4 in production, the examples in this book will look different, but the concepts are the same.

Initial Setup

The first step is to get the software. It is assumed that you already have a Cisco account with access to download the images. When you go to the software download search on Cisco’s web page, type Firepower. You will see options for Firepower NGFW Virtual and for Firepower Management Center Virtual Appliance. You will need both.

The KVM and ESX images are only available for major versions. You need to download a major version and then patch it. For example, if you look in the 6.4.0.9 folder, you only see patches. You need to install 6.4.0 before you can install the 6.4.0.9 patch. In our case, we are starting at 6.6.1. Firepower 6.6.1 is a major enough version that we can download the virtual image. We can also download the patch from 6.6.0.

../images/336497_2_En_21_Chapter/336497_2_En_21_Figa_HTML.jpg

The upgrade file comes as a TAR. That is a type of Linux archive file. It is uploaded to the system as an archive. The KVM image is a QCOW2 file. It can be imported to KVM as is. The ESX image is a GZIP. You need to deflate it before using it. The VMware image has an option for VI if you have Virtual Center or ESXi if you have a standalone ESXi server. In our example, we are using Virtual Center.

Deploy the Management Console Machine

In this section, we will cover what you need to deploy the virtual machine on Virtual Center. It is assumed you are already familiar with your virtualization solution. We will focus on the Firepower-specific configuration.

When you deploy the virtual machines, do not select all files. Pick the VI OVF if you are using Virtual Center and the ESXi one if you are not. Select the VMDK file. Optionally, you can pick the relevant MF. It will not give you an error if you do not upload a Makefile.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig1_HTML.jpg
Figure 21-1.

Image files for Firepower Threat Defense

As you go through the wizard, you keep most of the defaults. For lab purposes, you can change the storage to thin provisioning. That will save you space on your lab hard drives. In production, you would not do this. Figure 21-2 shows an example of deploying a template.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig2_HTML.jpg
Figure 21-2.

Customize template

At the Select networks step, pick the port group for your management network. In the Customize template step, enter the information for managing the FMC. Make sure not to lose the password. You will need it to log into the console.

Once you complete the OVF deployment wizard, turn on the virtual machine. It will take a while to set up. After the console has stopped showing setup messages, you can use a web browser to continue configuration.

Licensing

Before you add anything to the FMC, you need to configure licensing. FMC 6.6 uses Smart Licensing, even though there is an option for offline license reservations. To configure Smart Licensing, click the settings gear, and then click Smart Licenses. Figure 21-3 shows the System menu where you can find the Licensing option. Notice that the System button in version 6.6 is a gear icon and does not say System.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig3_HTML.jpg
Figure 21-3.

FMC licensing

From there, you can click an option to start your evaluation period. If you have a Smart Account, you can generate a token just like with any other device and register the FMC with Smart Licensing.

If you use an On-Premises Smart License server, there are a few other steps. You will first need to go to Settings ➤ Integration and see the Smart Software Satellite Configuration screen. Figure 21-4 shows the configuration for an On-Premises license server.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig4_HTML.jpg
Figure 21-4.

On-Prem license server

Use https://FQDN_or_hostname_of_Satellite/Transportgateway/services/DeviceRequestHandler as the URL. It will ask for a certificate . The certificate is not the certificate of the license manager. It is a special certificate. At the time of this writing, it is available at http://www.cisco.com/security/pki/certs/clrca.cer.

Deploy the Threat Defense Virtual Machines

The process for deploying the OVF for the Threat Defense virtual machines is mostly the same as with the FMC. The difference is on the Select networks and Customize template pages.

On the Select networks page, you associate the interfaces with port groups. The Management0-0 interface is typically in the same port group as the FMC management interface. The GigabitEthernet0-# associates with data interfaces on the FTD device. Don’t worry about it if you don’t need that many interfaces. You can remove them after deploying. Figure 21-5 shows the mapping of FTD interfaces with VMware port groups.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig5_HTML.jpg
Figure 21-5.

Select networks

../images/336497_2_En_21_Chapter/336497_2_En_21_Fig6_HTML.jpg
Figure 21-6.

Customize template for FTD

The Customize template page shown in Figure 21-6 has the same information as with the FMC, but it includes extra fields to allow you to configure registration to the FMC during deployment. In our example, we will manually register the device to the FMC.

Networking Requirements

Cisco recommends using SR-IOV for the network adapters used by the virtual FTD devices. Many of us do not have labs that support SR-IOV, or it is not practical to use it. If you do not use SR-IOV, you may need to allow promiscuous mode on your virtual port group for the firewall interfaces.

Stand-Alone Firepower Threat Defense Appliances

If your organization is so small that you only need a single firewall, you probably don’t need the functionality of the full Firepower Management Center. Until recently, the virtual firewalls could only be managed using the FMC. In FTD 6.4 and above, there is local management, and the capabilities of local management are improving with each release.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig7_HTML.jpg
Figure 21-7.

Stand-alone setup wizard

When you log into a standalone FTD for the first time, it will present you with a setup wizard as showing in Figure 21-7. The defaults are to automatically get an address from the outside interface, block unsolicited outside traffic, and allow traffic from the inside. This is like the defaults for small office and home office appliances.

As you go through the wizard, you are given the option to make the FTD stand-alone or to manage it through the cloud with CDO. If you select CDO, it will ask for information to connect to CDO. We show this in Figure 21-8.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig8_HTML.jpg
Figure 21-8.

Stand-alone or CDO

If you choose stand-alone, it will suggest that you configure your policies. We will discuss policies using the FMC. In the FMC and FTD version 6.6, the capabilities are similar. In older versions, the stand-alone version is more limited.

Adding Devices to the FMC

The first step in adding devices to the FMC is to allow the FTD to talk to it. If you did this when you deployed the virtual machine, you don’t need to do it again. If you are using an FTD 4000 or 9000 series, you may have done it when creating the container. We will discuss containers later.

In other cases, we need to use the command line to configure the manager. Once we configure the manager on the command line, the local web interface will stop working. Figure 21-9 shows the configuration to connect an FTD to the FMC.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig9_HTML.jpg
Figure 21-9.

Configure FTD for FMC management

Use the line configure manager add <manager IP> <key> to allow an FTD device to be managed by the FMC. The key is a registration key. It is always best practice to use complex keys, but it will only be used for initial registration. We are using “cisco” as the key for simplicity.

To finish adding a device, go to the FMC and browse to Devices ➤ Device Management. Then click the Add button, and then select Device. The Add Device form is shown in Figure 21-10. Optionally, you can create groups to help organize your devices.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig10_HTML.jpg
Figure 21-10.

Register a device

Provide the IP address or hostname of the FTD device. Use the registration key you configured on the FTD. Select the licenses you will use. For demonstration purposes, we are using all licenses for this device. You must configure an access control policy here. In this example, I created a blank policy for network discovery. We will cover this in the “Access Policies” section. After entering all the information, click Register and wait for it to complete.

Updating and Patching

Before going operational, you should patch the FMC and managed FTDs using the recommended release.

Click the settings gear in the top right, and then click Updates. There are three categories of updates: Product, Rule, and Geolocation. For initial deployment, we are concerned with Product Updates. The updates page is shown in Figure 21-11.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig11_HTML.jpg
Figure 21-11.

Product Updates

You have a choice of uploading updates from your local computer or downloading updates from Cisco. When you download from Cisco, you will get patches, but not major version changes. If you upload updates, you will upload the updated TAR file you downloaded from Cisco.

Once the files are on the FMC, you can click the button to install them on the platforms. It is best practice to update the FMC first and then update the managed FTDs. Upgrades will cause the systems to reboot. During initial configuration, it isn’t a problem to reboot firewalls. In production, you should have high availability configured.

Rule and Geolocation Updates and Scheduling

Product Updates cause reboots. Most administrators will only update products during outage windows, and they will watch the system to make sure everything comes up correctly. Rule and Geolocation Updates are less risky and are often scheduled.

Even though intrusion signature rule updates can be scheduled, you might not want to automatically deploy rules. The deployment of rules can cause a brief outage. The warning you will get when you deploy updates is shown in Figure 21-12.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig12_HTML.jpg
Figure 21-12.

Rule Updates

Geolocation Updates do not have the same issue as intrusion signatures. They can be safely installed using automatic updates.

Objects Overview

The Firepower system has several types of objects. In most cases, we will discuss them in the context of the configuration task. At a minimum, we need to introduce the concept of objects before we continue.

An object is something you define for later use. Policies reference objects. You can change the value of objects, and the policies will inherit the change. Just because you have an object defined does not mean that it is used anywhere.

In most deployments, you will not touch a large proportion of the available object types. We will limit our discussion to providing an overview of the most common objects.

To look at the available object types, browse to Objects ➤ Object Management.

Access List

The access lists in this section are not used in the access control policies. Even though there are other uses, the most common place to use access lists is with VPN configurations. The access list is used with posturing redirection.

We will not be covering access list objects further in this book. They are only mentioned so we can clarify that they are not the same as access lists used in access control policies.

Address Pools

Address pools are commonly used with remote access VPNs. We will revisit this in the “Virtual Private Networks” section.

DNS Server Group

A common use of DNS Server Group objects is to configure DNS to VPN users.

FlexConfig

We have a brief section on FlexConfig later in this chapter. Firepower is the combination of ASA and Sourcefire IPS. The interface is based on Sourcefire’s Defense Center. Not all ASA configuration is integrated into the interface yet. FlexConfig is a workaround. It allows you to push ASA configuration to the FTDs for options that aren’t supported in the graphical interface.

Interface

Firepower is a zone-based system. The interfaces defined under Object Management are zones. When we configure our devices, we add the device interfaces to zones. If a zone hasn’t been pre-created, we can create it when setting up a device.

FMC is designed as a distributed system. You can have interfaces from more than one device in the same zone, and then you can configure access rules based on the zone.

Network

The network objects are the heart of access control policies and a few other policies. Networks can be defined as hosts, ranges, or FQDNs. The networks can be organized in groups, and the groups can be nested. Even though you can create network objects on the fly when editing policies, it is best practice to pre-stage network object groups.

PKI

PKI, or Public Key Infrastructure , contains information about certificate authorities that you can trust and information about certificate enrollment. Configuring certificates in this section does not mean they are used anywhere. PKI configuration on Firepower is slightly different than what you have encountered on other systems. It is a common source of confusion.

We cover PKI in more depth in the “Virtual Private Networks” section.

Port

Port objects define ranges and groups of ports that you use in access control policies. Port objects are not necessarily ports. The objects can include protocols other than TCP or UDP. A limitation of port groups is that they cannot be nested. That means you can’t have a port group inside another port group. When migrating from ASAs that use nested port groups, the groups must be flattened. The Firepower Migration Tool can do this for you, but you are at the mercy of how it names the groups.

RADIUS Server Group

This object defines RADIUS servers that will be used with VPN and similar configurations. This object is not used when the FMC itself uses RADIUS for administrative authentication.

URL

URL objects are used when filtering by URL. We will cover this briefly in the “Access Policies” section.

Variable Set

Variable sets are primarily used to supply variables to intrusion detection rules.

VPN

Most reusable VPN settings are configured under this object. When we configure VPNs later in the chapter, we will define these objects and then reference them in the VPN configuration.

Device Configuration Overview

After adding an FTD device to the FMC, you need to provide the configuration. By default, the interfaces on a new FTD device will be disabled and not configured.

Browse to Devices ➤ Device Management. Click the pencil by the device you want to edit. Click the Interfaces tab. Click the pencil for the interface you want to configure. You should see something similar to Figure 21-13. Give the interface a name and enable it. Add it to a zone. If you haven’t created any zones, pick New in the dropdown and define a new zone.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig13_HTML.jpg
Figure 21-13.

Interface zone configuration

Notice the Propagate Security Group Tag checkbox. We will loop back to that later.

When you click the IPv4 tab, as shown in Figure 21-14. You will see an option to configure using either Static, DHCP, or PPPoE.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig14_HTML.jpg
Figure 21-14.

IPv4 configuration

The Advanced tab allows you to add some security controls.

Good access rules are not effective if it’s easy to impersonate the characteristics that the access rules look for. Anti-spoofing helps protect against impersonation attempts. There are numerous programs to generate packets with any chosen MAC and IP addresses with valid payloads; therefore, the ability to impersonate traffic is not difficult, but thanks to a concept called scoping, we can determine the scopes or zones from which certain types of traffic originate. For example, if 192.168.16.0/24 is used in the DMZ, it should not be present as source in the ingress of the Inside zone interface but rather only on the egress of the Inside zone interface. In other words, packets from any source in the DMZ should not be entering the inside interface as source but rather as destination.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig15_HTML.jpg
Figure 21-15.

Anti-spoofing and fragmentation

When considering fragmentation and firewalls, the most secure policy is not to fragment at the firewall. This is for two reasons: (a) it consumes resources from the firewall that could be dedicated to inspecting and/or normalizing traffic, and (b) it enables fragmentation-based firewall evasion techniques. For these reasons, it is best if you can avoid fragmentation at the firewall. Figure 21-15 shows where we can configure these controls.

Field

Meaning

Size

Interface IP reassembly queue size.

Chain length

Max number of IP fragments per fragmented transport PDU.

Timeout

Time to wait for the fragment reassembly.

To disable fragmentation for an interface, set the maximum chain size to 1. If that isn’t practical at your organization, it is best practice to configure your network to minimize fragmentation as much as possible.

High Availability

High availability is important for minimizing outages. The primary type of high availability supported on Firepower is active/passive failover. It is not much different than with the legacy ASA firewalls.

To configure failover, start with two identical Firepower Threat Defense appliances added to the FMC. They should be cabled identically and have the same version of Threat Defense operating system. The secondary device does not need to have any configuration or licenses assigned. It will inherit those from the primary appliance. The appliances need to have at least one connection for failover and state traffic. You can use the same connection, if there isn’t too much state traffic to saturate the link. The failover link is used to sync configuration, and the stateful failover link is used to sync application content between peers. There should not be any pending deployments. If there are any pending deployments, it is best practice to push them to the device before creating the HA pair. Deployment is shown in Figure 21-16.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig16_HTML.jpg
Figure 21-16.

Deploy changes to FTD

After verifying cabling and FTD versions, go to Devices and click Add ➤ High Availability, as shown in Figure 21-17.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig17_HTML.jpg
Figure 21-17.

Add ➤ High Availability

Create a name for the pair and select Firepower Threat Defense as the device type. Make sure you pick the correct firewall as the primary peer. The configuration from the primary will be pushed to the Secondary. If the existing configuration is on the firewall selected as secondary, it will be overwritten. HA interface configuration is shown in Figure 21-18.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig18_HTML.jpg
Figure 21-18.

Configure failover links

Configure the links for failover. In my example, I am using a single link for both failover and state. Pick IP addresses that are not used elsewhere in your network. These don’t need to be routable because they are only on the link between the appliances. For additional security, you can enable IPsec on the links.

Once you click Add, you need to wait for a while. Even once Tasks show the high availability deployment is complete, the health policy might not have caught up. The system may show the pair in a degraded state for a few minutes after it is created. Error messages about failover state are normal while high availability is stabilizing. Messages such as what is shown in Figure 21-19 are common while synchonizing and are not cause for concern.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig19_HTML.jpg
Figure 21-19.

Failover state

After everything is synchronized, you will manage the pair as a single device. Use the pencil icon for the pair to edit the configuration for the pair. As you can see in Figure 21-20, there is only one pencil icon for the pair of devices.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig20_HTML.jpg
Figure 21-20.

HA pair created

Troubleshooting is slightly different. Troubleshooting is still individual to the firewall. Troubleshooting is almost always done on the active appliance. In our example, the primary appliance is active. If there is a failover event, then the secondary appliance will be active. You need to pay attention to which one is active before troubleshooting. To get into the troubleshooting menu, click the tool icon for the active appliance.

Containers

The Firepower 4100 and 9300 series appliances support containers. The result is like multiple context in ASAs, even though the implementation is different. A container allows you to have multiple distinct firewall application images running. They don’t need to be the same version. They are completely isolated images that are allocated physical resources on the appliance.

Containers can be used for active/active failover in the same way as multi-context failover on the ASA. One physical appliance will host the active firewall for some instances, and the other will host the active firewall for other instances.

Lower-end appliances and the virtual appliances do not support this feature. For the virtual firewall, you can leverage your virtualization infrastructure to achieve a similar result. In that case, you will deploy multiple instances of the Threat Defense image and balance the load using tools available in VCenter.

Clustering

Clustering makes multiple appliances appear as a single appliance. This option is only available on the Firepower 4100 and 9300 series appliances. If you have a requirement for true active/active forwarding within a single logical firewall, this is a good option.

Clustering allows you to create a spanned port channel that appears as if it came from a single device. The devices on each side of the cluster will think that they are connected to a single appliance.

Routing

Firepower supports static routing, OSPFv2, OSPFv3, RIP, and BGP. Multicast routing is under the routing menu, but it is out of the scope of this book.

Did you notice that we didn’t list EIGRP? The current version of Firepower does not allow EIGRP configuration from the Routing tab. It requires FlexConfig to push ASA configuration onto the appliances.

The concepts for routing protocols are the same as with routers, with a few limitations.

Static

Static routing is common on firewalls. In many implementations, you have a default route pointing to the outside interface and a summarized route for your internal networks.

If you have more than one path leaving the network, you may need multiple default routes with different metrics. Tracking can be used to determine if the primary path is degraded.

To create a tracking object, browse to Objects ➤ Object Management ➤ SLA Monitor. Click the button Add SLA Monitor. When the form shown in Figure 21-21 comes up, provide an address to be monitored, a name, an ID, and the interface.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig21_HTML.jpg
Figure 21-21.

New SLA monitor object

After creating the object, browse to Devices ➤ Device Management and edit the firewall that needs the static route. Click the Routing tab. Depending on whether you already have a route created, either click Add Route or click the pencil to edit an existing route. Figure 21-22 shows an example of editing a static route.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig22_HTML.jpg
Figure 21-22.

Static route

Pick the interface for the route. We named our interfaces Inside, Outside, and DMZ. Yours may differ. Select the networks that should be routed. We are creating a default route, so we selected any-ipv4. If you need to route specific networks, you need to create a network object. You can create one inline by using the plus button by Available Network. This allows you to create a network object. If you need to use a group on network objects, you should pre-create it under Object Management.

The gateway points to a host network object. We used the plus button to create a host network object containing the IP address of the next hop router.

Route tracking is optional. We are using the tracking object that we just created. When the tracking object shows that pings fail, it will remove the route. If we create a second static route with a less preferred (higher) metric, it will be used when the track fails.

Before the configuration is active, we need to deploy it. Once deployment is complete, we can look at the state of routing. Even though you can run commands through the Advanced Troubleshooting option for a device in the FMC, it is easier to use the CLI. This is shown in Figure 21-23. For even more flexibility, you can enable system support diagnostic-cli.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig23_HTML.jpg
Figure 21-23.

Routing Configuration

When I look at the routing table in Figure 21-24, we see that it is pointing to the less preferred route. This is because the default gateway is down. We cab see the issue in the SLA output in Figure 21-25.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig24_HTML.jpg
Figure 21-24.

Routing table

../images/336497_2_En_21_Chapter/336497_2_En_21_Fig25_HTML.jpg
Figure 21-25.

Timeout in the SLA object

Once we fix the issue, we see routing to the primary gateway.

OSPF

The FMC supports two OSPF processes. Each process maintains its own topology table. If you want to share routes between processes, you need to redistribute.

When you set up a process, you need to pick Internal Router, ABR, ASBR, or ABR & ASBR. The selection limits what you can configure. The process needs to be an ABR to allow multiple areas. It needs to be an ASBR to allow redistribution.

In our example shown in Figure 21-26, we select ABR & ASBR so we can unlock all the options. In most cases, this is not what you need in production.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig26_HTML.jpg
Figure 21-26.

Add Area

When you click Add Area, you configure the area ID and select the networks to advertise. For example purposes, we selected any-ipv4. In most cases, you want to be more specific. It is best practice to create a custom network object group to use. The options for area type are normal, stub, or NSSA. The use of these options aligns with routers. If you scroll down in the Add Area frame, you will see authentication options. The FMC supports MD5 or cleartext passwords. After setting up the areas, we configure interfaces that will participate in OSPF. Click the Interfaces tab and add interfaces. We will see a page similar to Figure 21-27. In many cases, you will use the default settings.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig27_HTML.jpg
Figure 21-27.

Add interface to OSPF

If required, you can change hello times, configure authentication passwords or key chains, and configure unicast neighbors from this window.

If you need to redistribute into OSPF, click the Redistribute tab. The configuration is similar to routers. If you need to control redistribution, you can create a route map. You can create the route map from this window or from Object Management. Ensure that you select Use Subnets. Otherwise, it will default to only redistributing classful networks. Figure 21-28 shows an example of the OSPF redistribtion page.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig28_HTML.jpg
Figure 21-28.

Redistribution in OSPF

Once you are done with routing, deploy your changes to the appliances.

BGP
For organizations with several inside- and outside-facing interfaces, OSPF may be used for interior routing, and BGP may be used for external routing. BGP is configured in two parts on the FMC. You configure the autonomous system and general process-level settings under General Settings. This is shown in Figure 21-29. Then you configure address families under the appropriate virtual router and address family.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig29_HTML.jpg
Figure 21-29.

BGP General Settings

After enabling the process, you can add networks to the address family. Select IPv4 under BGP, and then go to the Networks tab. Click the Add button. As we see in Figure 21-30, you are prompted to select a network object. When you add a network in BGP, it needs to have an exact match in the routing table for it to advertise it. If BGP is not advertising any network, verify that the advertised networks match exactly with what is in the routing table. Using the command line to show route is the easiest way to see the routing table.

If you want to use aggregates (summaries), that can be done with the Aggregate tab. For an aggregate to be advertised, some component of the aggregate needs to be advertised already.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig30_HTML.jpg
Figure 21-30.

Add network to BGP

When you configure a neighbor, you can control what is sent to the neighbor and what is received from the neighbor. The options are the same as with a router, except the FMC uses a web interface, as seen in Figure 21-31. The options to control incoming and outgoing prefixes require objects. You can use the plus button to create objects on the fly or use Object Management. The content of the objects is the same as with routers.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig31_HTML.jpg
Figure 21-31.

BGP Add Neighbor

DHCP Server

In an enterprise network, address assignment is usually the role of a dedicated server. However, the Firepower firewalls can act as a DHCP server or a proxy for a DHCP server.

DHCP is configured from the DHCP tab of a device’s configuration, as shown in Figure 21-32.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig32_HTML.jpg
Figure 21-32.

DHCP server

You can automatically obtain options for domain suffix, DNS, and WIN; or you can manually configure them. In the Server section, add a pool of addresses by using the Add button. If you need additional options, click the Advanced tab. This may be needed for VoIP phones that require Option 150 to find their TFTP server.

If you prefer to relay an enterprise DHCP server, click DHCP Relay. Set the interfaces that will listen for DHCP requests in the DHCP Relay Agent tab. Click the DHCP Servers tab and configure information to find the DHCP server. This is similar to using IP helper address on a router. As we can see from the error shown in Figure 21-33, you cannot have a relay and a server on the same interface.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig33_HTML.jpg
Figure 21-33.

DHCP Relay

Network Address Translation

Network Address Translation (NAT) is used to translate addresses between interfaces. In most cases, you use RFC 1918 addresses on the inside of your network and public addresses on your external interfaces. NAT can be used to hide your inside addresses or to map many inside addresses to a single public IP address or a small pool of public IP addresses.

Note

In the examples in this book, we use RFC 1918 addresses on both sides of the firewall. Since it is a lab environment, we are not assigning any public addresses.

NAT on firewalls uses the same principle as NAT on routers, but the configuration is different. This leads to a few caveats when setting up NAT on a firewall.

Firepower uses NAT policies that can be attached to more than one firewall. You get to the policy through Devices ➤ NAT. Click New Policy and then Threat Defense NAT to create a policy for Firepower Threat Defense appliances. Figure 21-34 shows Firepower NAT or Theat Defense NAT. Firepower refers to the older Firepower devices and modules. We want Threat Defense.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig34_HTML.jpg
Figure 21-34.

New NAT policy

When you create a policy, it needs a name. You will be asked to assign devices to the policy. You do not need to do that at this point. You can create a policy and assign devices to it later. In our example, we have Site1, FTD_Site1, and FTD_Site2 as options. Site1 is a group. You can use groups instead of selecting individual firewalls. In this case, the group only contains FTD_Site1. If you make your policy flexible, you can apply it to more than one device. Figure 21-35 shows a new policy targetting two devices.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig35_HTML.jpg
Figure 21-35.

New Policy wizard

Once you get into the policy, you see three sections: NAT Rules Before, Auto NAT Rules, and NAT Rules After. This concept came from the ASA firewalls. Auto NAT has fewer options to configure than manual NAT. It is only concerned with the source. If you do not need destination information in a rule, it is recommended that you use auto NAT. In ASA firewalls, manual NAT rules are processed before auto NAT unless you added a token to tell the system to look at the rule after auto NAT. That is the source of “Before” and “After.”

Regardless of if you are configuring auto NAT or manual NAT, you need to choose static or dynamic. Static NAT is used for one-to-one mappings. Servers that need to be reachable from outside the firewall often have a static mapping. Most endpoints can use dynamic mappings. With a dynamic mapping, the translated address may change. Figure 21-36 shows an example configuring dynamic NAT.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig36_HTML.jpg
Figure 21-36.

Types of NAT

Many people equate dynamic NAT to Port Address Translation (PAT). They are commonly used together, but you can use each without the other. If you have a pool of public addresses, the system can dynamically issue them without need of PAT. PAT is needed when you don’t have enough addresses in your outside pool and the system needs to translate port numbers so it can reuse IP addresses. Similarly, you can statically change a port number. In some cases, the port a server listens to is not what outside users see.

The following table shows the address used in our network. We add another FTD to our FMC for the second site in this example.

Network Description

Network ID

Site 1 Outside

172.16.50.0/24

Site 1 Inside

192.168.14.0/24

Site 1 DMZ

192.168.41.0/24

Site 1 Remote Access VPN

10.150.150.0/24

Site 2 Outside

172.16.60.0/24

Site 2 Inside

192.168.13.0/24

We pre-created most of the network objects. You can create them on the fly or create them through Objects ➤ Object Management ➤ Network. In some of our examples, we are using network groups that must be created under Object Management.

The first rule we are going to create is DMZ or Inside going outside. We will use PAT for these because they are for dynamic connections going out. This rule will translate any traffic from the inside interface at Site 1 to the outside interface. This is equivalent to setting the nat inside and nat outside interfaces on a router. Figures 21-37 through 21-39 walk you through the PAT process.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig37_HTML.jpg
Figure 21-37.

NAT rule select interfaces

Select the Site1_Inside network as the original source. This is similar to an access list selecting the source on a router. Leave the translated source blank. That will be translated using a PAT pool.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig38_HTML.jpg
Figure 21-38.

NAT source

In the PAT Pool tab, check the Enable PAT Pool box. Select Address in the dropdown. Click the plus next to the address to create a network object. Configure a range of IPs to use in the PAT pool . After creating the PAT pool, select the object in the dropdown and save. Ensure you have a large enough PAT pool to support your network. If you have too many connections tranlating to too few outside addresses, you can exhaust your PAT pool. This happens when PAT uses every port on every external address.

../images/336497_2_En_21_Chapter/336497_2_En_21_Figb_HTML.jpg
We repeated the process for Site 1 DMZ and for Site 2 Inside. For Site 2 Inside, we used the destination interface as the translated source instead of using a pool. Our resulting policy is shown in Figure 21-39.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig39_HTML.jpg
Figure 21-39.

Dynamic rules

Dynamic rules will provide network connectivity for devices, but we also need some static rules for servers in the DMZ. In our example, we have two servers in the DMZ. We want the server at IP address 192.168.41.15 to appear as 172.16.50.15 to the outside, except we want TCP/80 on 192.168.41.16 to appear as TCP/8080 on 172.16.50.15. We will create the specific rule that changes ports first.

Since we are only modifying the source, we could use auto NAT. We are using manual NAT for demonstration purposes. This is shown in Figure 21-40.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig40_HTML.jpg
Figure 21-40.

Static NAT with port translation

In our example, we used the host network object DMZ_Router as the original source and the host network object called DMZ_Outside for the translated source. We translated packets from HTTP to HTTP_Alt. By default, NAT is two way. If you need to make it unidirectional, you can check the Unidirectional box under Advanced. In our case, we want it to be two way.

The second rule is similar to the first except we used the network object Metasploitable as the source. We still used DMZ_Outside as the translated source. We left all other fields in the Translation tab blank.

We will walk through setting up a couple Virtual Private Networks (VPNs) later in this chapter. It is best practice to use a separate firewall to terminate your VPNs as your filtering firewall that has NAT. It causes risk and complexity to put everything on one appliance. One of the complications is with NAT. NAT sees the VPN traffic as coming from the Outside zone. We need to add exceptions to the policy so the VPN traffic doesn’t get translated. We also need to ensure rules are configured to use routing, so they don’t cause a black hole.

The following figure shows the top two rules that will translate packets received on the outside interfaces of each site that came from a VPN to themselves. We also checked the Perform Route Lookup for Destination Interface checkbox under Advanced. Figure 21-41 shows the stat of our policy after adding the additional rules.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig41_HTML.jpg
Figure 21-41.

Final NAT policy

After completing the rules, we saved and deployed. This policy is assigned to two firewalls, but the FMC knows to only push relevant configuration to each. It may give you a warning about rules that will never be matched. You could fix this by using interface groups such that you only have relevant rules or break the policy up for each firewall. Breaking the policy up is the cleaner solution. Figures 21-42 and 21-43 show how the policy is reflected on each device.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig42_HTML.jpg
Figure 21-42.

NAT Configuration Site 1

../images/336497_2_En_21_Chapter/336497_2_En_21_Fig43_HTML.jpg
Figure 21-43.

NAT Configuration Site 2

The command show nat shows the configuration and the number of hits. We don’t have very many hits because we just deployed the configuration and haven’t done any testing. The command show xlate will show the translations and have addresses. If NAT isn’t working, verify your addresses are correct. If they are not, you need to go to Object Management and correct them and then deploy the configuration again. After making changes to NAT, the command clear xlate clears out the translation table. In the following example, we originally had the incorrect address for DMZ-Outside. It should have been 172.16.50.15. We can see this in the output shown in Figure 21-44.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig44_HTML.jpg
Figure 21-44.

Xlate table with error

After fixing the object, we cleared the specific translation. In this example, it had already cleared before we attempted to delete it. Now you can see the correct translation in Figure 21-45.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig45_HTML.jpg
Figure 21-45.

Corrected Xlate table

When we use a browser to go to http://172.16.50.15, it redirects to our Metasploitable host . When you used http://172.16.50.16:8080, we were redirected to the web interface for a Cisco router. We show this result in Figure 21-46.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig46_HTML.jpg
Figure 21-46.

Static NAT test

Our real test of the NAT exceptions for VPN will be in the “Virtual Private Networks” section.

When we get to the “Troubleshooting” section of this chapter, we will revisit issues with NAT and show you how to identify problems.

Note

In the OSPF section, we configured the firewall to advertise all the routes to the outside router using OSPF. Since we are using NAT, we do not need to advertise them. Advertising them can mask other configuration and security issues. The only network the outside world needs to know about is the outside interface network.

FlexConfig

The graphical interface does not support every feature that was brought over from the ASA yet. The workaround is FlexConfig. FlexConfig allows you to push ASA commands to the Firepower appliances. Cisco provides several templates for common tasks. You only need to fill out the variables and associate FlexConfig to a platform. There are some ASA features that are not currently supported on Firepower, but you can fill most of the gaps in the graphical interface using FlexConfig.

One restriction is you cannot push configuration through FlexConfig, if it is supported in the graphical interface. A major disclaimer you need to be aware of is some configurations will not automatically unconfigure when you remove a policy. In some cases, you need to push an unconfigure object to undo changes.

We will illustrate FlexConfig with EIGRP. As of Firepower 6.6, EIGRP is not supported in the graphical interface. However, it is on the road map for the next major release.

The templates for FlexConfig are under Object Management. If you need a template that is not pre-created, you can create it here. The templates are under FlexConfig Object, and variables are defined under Text Object. If you want a better understanding of how a FlexConfig object works, view one of the pre-created scripts to see how it uses commands, conditions, loops, and variables. An example of part of the list of built in FlexConfig objects is shown in Figure 21-47.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig47_HTML.jpg
Figure 21-47.

FlexConfig objects

For our example, we will start with EIGRP_Configure but modify it for our environment.

We will start by setting up the variables that we will use in our FlexConfig Object. Go to Text Object and change the value for eigrpAS to 100, as shown in Figure 21-48. This is the autonomous system configured on our DMZ router. We are changing this globally and not only for the policy.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig48_HTML.jpg
Figure 21-48.

Change AS variable

Next, we need to set the router ID. The default value is blank. Go to the Text Object menu. Click the pencil next to eigrpRouterId to edit it. We want to add an override for FTD1. Figures 21-49 and 21-50 show the process to add an override for a variable.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig49_HTML.jpg
Figure 21-49.

Add override

We configured the override with a value of 192.168.41.1 for FTD1’s router ID.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig50_HTML.jpg
Figure 21-50.

Add system variable override

Now we need to do something similar for eigrpNetworks. We will create a new variable with a list of networks. We will set the default to 0.0.0.0 and override it for FTD1. The network we created has an error. This is on purpose, so we can show how to troubleshoot FlexConfig errors. ASA and Firepower require subnet masks and not wildcard masks when you configure routing. If you look at Figure 21-51, you will notice we used wildcard mask syntax.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig51_HTML.jpg
Figure 21-51.

System variable for eigrpNetworks

In the FlexConfig Object frame, click the Copy button next to EIGRP_Configure as shown in Figure 21-52.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig52_HTML.jpg
Figure 21-52.

Copy default object

This will allow us to edit the template. We are not changing any settings, but it is best practice to create a new object, so we have the option. We cannot edit a prebuilt object. Figure 21-53 shows the copied template.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig53_HTML.jpg
Figure 21-53.

Copy of EIGRP configuration template

Now we go to Devices ➤ FlexConfig and create a policy. Assign the target appliance(s) to the policy as shown in Figure 21-54.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig54_HTML.jpg
Figure 21-54.

Create FlexConfig policy

Find the template FlexConfig object we just created and add it to the policy as shown in Figure 21-55.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig55_HTML.jpg
Figure 21-55.

Add objects to policy

Save the configuration and click the button to preview the configuration. If the configuration is what you expect, deploy the policy. If it is not right, we need to troubleshoot. If variables are not set correctly, the line is ignored. That is one of the common issues when configuring FlexConfig. Figure 21-56 shows an example of the FlexConfig preview.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig56_HTML.jpg
Figure 21-56.

Preview configuration

Take note of the warning when you deploy shown in Figure 21-57. FlexConfig is powerful, but can be dangerous.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig57_HTML.jpg
Figure 21-57.

Deploy FlexConfig

Do you remember the error we mentioned? When deployment fails, we can look at details. Figure 21-58 shows us why the configuration failed.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig58_HTML.jpg
Figure 21-58.

Deployment failure details

After fixing the eigrpNetworks text object, we can redeploy. Figure 21-59 shows EIGRP come up on the DMZ router that we pre-staged.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig59_HTML.jpg
Figure 21-59.

EIGRP neighbor on router

System Configuration and Platform Settings

System configuration and platform settings include many configuration options for securing the management platform and the individual Firepower appliances. The settings under System ➤ Configuration apply to the management console. They do not apply to the firewalls. The firewalls get their settings from Platform Settings under the Devices menu. This allows you to push different settings to platforms, if needed. In this section, we provide an overview of each.

System Configuration Settings

System configuration refers to the Firepower Management Center configuration. Many of these settings apply to how firewalls are managed, but they do not directly apply to the firewalls.

Some common settings for management security are Access List, SNMP, Login Banner, Shell Timeout, User Configuration, and UCAPL/CC Compliance. Access List allows you to configure IP access lists for SMP, SSH, and HTTPS access. SNMP allows you to configure the SNMP version used and the parameters. It is recommended to use SNMPv3 with authentication and privacy. Login Banner configures the banner an administrator will see when logging into the FMC either through the Web or command line. Shell Timeout allows you to set a timeout for the command line or browser. The default timeout values are indefinite for shell and 60 minutes for HTTPS. Most organizations will change those defaults. User Configuration includes settings on password history, lockouts, and maximum concurrent sessions. Some of these settings are new in 6.6. If you are using an older version of the FMC, you will not see them. UCAPL/CC Compliance is for high-security environments. Setting compliance mode runs a script to lock down several settings, and it cannot be undone. You should only use this setting if you are absolutely sure you need to use it. If you use it on the FMC, you also need to set it on the platforms.

A few other common settings are Audit Log, Email Notification, HTTPS Certificate, Access Control Preferences, Intrusion Policy Preferences, Remote Storage Device, and Time Synchronization. Audit Log allows you to send audit and syslog data to an external server. We discuss that in more detail in the Monitoring Overview section. You use Email Notification to configure the connection to the SMTP server that can be used in notification rules. HTTPS Certificate is how you configure the HTTPS certificate for the FMC’s management interface. It is recommended that you change the certificate from the self-signed certificate to a trusted certificate. A recent issue with the self-signed certificate is that it was created in a way that is rejected by Safari on macOS. Unfortunately, there are also some issues with generating a certificate from trusted certificate authorities on Firepower. The HTTPS certificate must have basic constraints marked as critical. Some certificate authorities do not support this, and you need to jump through hoops to install the certificate through the command line. The HTTPS Certificate page allows you to enable client certificates. This will force certificate authentication for administrators. Only check this if you have already configured external authentication to allow certificates. Access Control and Intrusion Policy Preferences are really about comments. The default setting is to not allow comments when you change the policies. Optional will give administrators a box where they can add a comment or cancel. Required forces them to add a comment. Comments can be nice so you can review rules later and know when and why they were created. Remote Storage Device is important for backups. This menu allows you to configure a remote NFS, SMB, or SSH destination for reports and backups.

Platform Settings

Platform settings are the settings that get pushed to the firewall appliances. Even though many things are managed and monitored by the FMC, firewalls have their own management plane and data plane. They can send alerts directly to log destinations without aggregating them at the FMC. If you maintain several firewalls with different requirements, you can push a different policy to each.

To get to the policy, browse to Devices ➤ Platform Settings, as shown in Figure 21-60.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig60_HTML.jpg
Figure 21-60.

Platform Settings

Once in the Platform Settings menu, click New Policy ➤ Threat Defense Settings. Give the policy a name and assign it to devices. Many of the settings are like what you saw in the “System Configuration” section.

Fragment Settings, shown in Figure 21-61, is an important data plane setting. We mentioned it in the context of an interface. You can also push settings to the device. It is optimal if you can architect your network so you can disallow fragmentation.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig61_HTML.jpg
Figure 21-61.

Fragment Settings

ICMP settings allows you to rate limit or block certain ICMP messages. The default is to rate limit ICMP unreachable messages to one per second. That helps mitigate port scanning risks. If you want to explicitly block or permit a type of ICMP, click Add to create a rule. Unless you pre-created it, you will need to create ICMP objects when you create the rule.

SSL allows you to set minimum versions for TLS, DTLS, and Diffie-Hellman. You can also create protocol-specific rules that include which algorithms may be used. For example, you may need to remove 3DES as an encryption algorithm for FIPS compliance. Figure 21-62 shows an example TLS policy setting.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig62_HTML.jpg
Figure 21-62.

Platform SSL

Syslog settings are interesting. You have a lot more granularity for Syslog from the platform than from the FMC. The Syslog menu is not only Syslog. It also contains rules for sending log messages to email destinations. We go into logging slightly more in the logging and Monitoring Overview section.

Timeouts are important for preventing resource starvation. Other than the console timeout, the default settings in Timeouts meet the needs of most organizations.

External Authentication

Many organizations require external authentication for administrative tasks. Firepower currently supports RADIUS or LDAP . If a user is configured locally, however, the system will use that user and not query RADIUS or LDAP. You can also have a local user that uses external authentication.

To set up external authentication objects, browse to System ➤ Users, and then click the External Authentication tab. This is only for administrative access. This is not where we set up authentication for VPN or NAC.

While you were on the way to External Authentication, you might have noticed User Roles. Firepower provides 11 built-in roles and allows you to create custom roles. Most of these roles only apply to FMC authentication. FTD is limited in the roles. Most of the time, you are only concerned with FMC authorization. FTD authentication and authorization only applies to the CLI. In our example, we will use the built-in roles.

Notice the default user role. The default setting is None. We clicked None and changed it to Security Analyst (Read Only). That will assign an administrator Security Analyst (Read Only) permissions if the user authenticates but isn’t explicitly authorized a role. This is shown in Figure 21-63.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig63_HTML.jpg
Figure 21-63.

External Authentication

We pre-staged an LDAP object. If you want to use certificate-based authentication, to include smart cards, you need to use LDAP.

LDAP allows you to connect with either plaintext or SSL/TLS. You need a username that can read the LDAP. You need to set a base Distinguished Name (DN). A filter is optional but will reduce the number of results. It is recommended that you create a filter to look only at objects that may be Firepower administrators. You must configure an attribute that will be used for the username. It is best practice to use the DN of groups to set roles, but it is optional. Figure 21-64 shows an example LDAP configuration.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig64_HTML.jpg
Figure 21-64.

Configure LDAP for authentication

Once you have everything configured, click Test at the bottom right of the frame. An overview of the test results will appear at the top of the screen. Detailed results will be at the bottom under Test Output.

If you do not need to use certificate-based authentication, RADIUS may be a better option. This allows you to leverage the flexibility of identity servers such as ISE. When we configure RADIUS, we can have the RADIUS server push attributes that will provide the role. Through the use of complex ISE rules, the same user might not always be assigned the same role. In our example, we will show a simple configuration where noc_admin is always assigned Administrator access and helpdesk_admin is always assigned Discovery Admin access. This is illustrated in Figure 21-65.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig65_HTML.jpg
Figure 21-65.

Add RADIUS for external authentication

In RADIUS configuration on the FMC, we used the RADIUS Class attribute to identify the role. We need to configure ISE results to match. Figure 21-66 shows an ISE authorization profile that is sending the attribute “Class=Admin” in the RADIUS response.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig66_HTML.jpg
Figure 21-66.

ISE authorization profile for FMC admin

Before enabling the RADIUS external authentication, you can test it. Use the Test button at the bottom of the RADIUS configuration page. Enter a username and password for the user you want to test. If everything is correctly configured, you will see a match on the RADIUS attribute you used and the GUID for the assigned role. Save and apply your changes. You should see output similar to Figure 21-67 when you test the RADIUS object.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig67_HTML.jpg
Figure 21-67.

Test RADIUS authentication

Monitoring Overview

Monitoring in Firepower is comprised of a few different components. There is health monitoring for the FMC and the appliances. There is Syslog for each of the platforms. There is an audit log for administrative tasks. Then there is logging for security events from the access and intrusion prevention policies.

Management Console

By default, logging goes to the FMC. Let’s look at the audit log under System ➤ Monitoring ➤ Audit, as shown in Figure 21-68, first.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig68_HTML.jpg
Figure 21-68.

Monitoring menu

The audit log shows changes and access to pages. The data can be overwhelming. If you click the Edit Search link, you can search for events based on user, subsystem, message, time, source IP, and whether there was a configuration change. We can see an example of the audit log in Figure 21-69.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig69_HTML.jpg
Figure 21-69.

Audit log

Syslog, as illustrated in Figure 21-70, contains a wealth of information for troubleshooting issues with the management console. It is essentially a web view of the Linux log files. You can use the box in the top left to search for strings in the log files.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig70_HTML.jpg
Figure 21-70.

FMC Syslog

The logs that you will use during daily operations are under Analysis, shown in Figure 21-71. Cisco pushes some of this information to the home dashboard. Analysis allows you to get summary visualizations and detailed connection and event information. One issue with connection events is we need to log connection for them to appear in the log. Cisco’s recommendation is to not log every connection. We will revisit the connection log and intrusion event log after we create some policies and generate some events.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig71_HTML.jpg
Figure 21-71.

Analysis of data logs

Remote Syslog

Like many things in the Firepower architecture, remote syslog for the management console is configured separately than for the firewall appliances.

To configure the audit log for remote syslog, browse to System ➤ Configuration ➤ Audit Log, as seen in Figure 21-72. The system will send using UDP/514, by default. If you require TLS, you can configure the Audit Log Certificate. When Audit Log Certificate is used, it will use TCP/1554 and encrypt the data.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig72_HTML.jpg
Figure 21-72.

Configure remote audit logging

Configuring remote logging for the appliances is in the Platform Settings policy, shown in Figure 21-73. In our example, we are editing the Platform Settings policy we previously created. We enabled logging in the first screen.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig73_HTML.jpg
Figure 21-73.

Enable logging on platform

Next, we need to create a syslog server. We show an example in Figure 21-74. Optionally, you can filter out events and rate limit syslog messages. There are granular controls on filtering events for various sources. We are keeping the defaults in our examples.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig74_HTML.jpg
Figure 21-74.

Add syslog server

Once you have configured the filters and format the way you want, save the policy and deploy it to the appliances.

eStreamer

The eStreamer service is designed to send information of data events to an external service. It requires a plugin on the logging server. The eNcore plugin is available for most logging servers. Figure 21-75 shows the eStreamer Event Configuration page.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig75_HTML.jpg
Figure 21-75.

eStreamer configuration

In System ➤ Integration ➤ eStreamer, we need to add the host for our monitoring server. When you configure the host, it will ask for an IP/hostname and a password. After adding the host, there is a download button to the right of the hostname or IP address. That will download a certificate. You need the certificate and password when configuring eNcore on the logging server.

Figure 21-76 shows configuration of eStreamer using eNcore on Splunk. The certificate was downloaded from the FMC and placed in the plugin folder on the Splunk server. The password for the certificate was provided in the configuration. In addition to the eNcore plugin, a Firepower plugin is available to help parse Firepower data.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig76_HTML.jpg
Figure 21-76.

Splunk eNcore configuration

Health Policies

Health policies monitor the health of your appliances. The default policy works for most organizations, but sometimes you need to adjust the policy. One way to view an overview of the system’s health is through System ➤ Health ➤ Monitor. In our example, we have a critical alert for FTD_Site2. The alert says that GigabitEthernet0/0 is not receiving any packets. In a typical network, you expect that packets will be received within the monitor interval.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig77_HTML.jpg
Figure 21-77.

Health monitor

If the firewall is on a network that has so little traffic that it creates the alert Figure 21-77, you may want to configure a policy to disable the alert. In this example, we created a new policy based on the default health policy. We changed the Interface Status Enabled setting to Off and then assigned the policy to FTD_Site2. Some policy elements are either on or off, while others allow you to set thresholds. This is shown in Figure 21-78.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig78_HTML.jpg
Figure 21-78.

Disable interface monitoring

If you need to completely stop monitoring a device, you can blacklist it. A better term for blacklist could be maintenance mode. You aren’t blacklisting the device from the system. You are only blacklisting it from monitoring. The option is shown in Figure 21-79.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig79_HTML.jpg
Figure 21-79.

Blacklist from monitoring

Access Policies

Access policies are the meat of a firewall. Access policies determine what traffic is allowed through the system. Next-generation firewalls do not simply look at ports and protocols; they can do deep inspection. This can help protect against exploits that use channels which are normally allowed.

The Firepower system includes capabilities to prefilter, inspect encrypted traffic, inspect files, use security intelligence, create rules based on security tags, and create rules based on user identity. In this section, we focus on rules based on ports and protocols and applications.

Baselining and Discovery

It is nearly impossible to protect a system when you don’t know what you are protecting. In an ideal world, you know about every asset and every legitimate connection and can create rules based on that knowledge. In many cases, you need to use tools to discover your network. As we have been walking through examples in this book, we started with a discovery policy. The basic network discovery policy collects high-level information about applications on the network. The default discovery policy only discovers applications. To modify it to also discover hosts, we need to browse to Policies ➤ Network Discovery, as shown in Figure 21-80.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig80_HTML.jpg
Figure 21-80.

Network Discovery

The default setting discovers applications on all networks. We want to add a setting to discover hosts, but only on our networks. If we leave 0.0.0.0/0 as the network, it will discover numerous hosts that are not of interest. In our example, shown in Figure 21-81, we configured network discovery for hosts on all RFC 1918 addresses. We could also detect users, but we have not configured any methods for discovering identities. After changing the discovery options, we deployed to the firewalls.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig81_HTML.jpg
Figure 21-81.

Add host discovery

Now that we are discovering hosts, Figure 21-82 shows the host table fill up. Other tables and visualizations show the applications running on each host and possible vulnerabilities.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig82_HTML.jpg
Figure 21-82.

List of discovered hosts

Access Policy Basics

A basic access policy is extremely similar to a router access list. Just like router access lists, a firewall policy is processed top down. When a rule is matched, it stops and executes that action for the rule. Rules based on source and destination addresses and ports are processed quickly, so they are useful when you don’t need deeper inspection.

In our example, we are going to start a new policy. Browse to Policies ➤ Access Control, and then click the New Policy button. You will see a page similar to Figure 21-83. We need to give the policy a name and default action. The only options at this point are Block all traffic, Intrusion Prevention, and Network Discovery. If we selected Intrusion Prevention, it would allow traffic if it wasn’t explicitly denied unless the intrusion prevention policy blocked it. We are selecting Block all traffic as our default. After the policy is created, we can change the default action. We are not using a base policy. A base policy allows you to create a general policy with rules that other policies can inherit.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig83_HTML.jpg
Figure 21-83.

Create new access policy

Firepower is a zone-based firewall. It does not use the concept of security levels. We need to account for that. We start by creating rules to permit all outgoing traffic. We put those rules in the default section. That makes it easier to override by adding rules above it in the mandatory section. We used Inside_Site1 and/or Inside_Site2 as the source zones. This is shown in Figure 21-84. When you have two source zones, it can match either of them. Zone are mutually exclusive so it can not match both at the same time. We left everything else default. The default is any network, destination, and no logging. We used Allow as the action. That means that the firewall will do some inspection on the data and not just trust it. Another option is Trust. If you select Trust, the data will pass through without additional inspection. Trust should only be used for latency-sensitive traffic that is really trusted.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig84_HTML.jpg
Figure 21-84.

Allow inside traffic

Next, we want to allow monitoring data to the Splunk server in the DMZ. We create a rule with a destination zone DMZ and source zone Outside_Site1. We allow the network object Management_Net access to the network host object Splunk. We configure destination ports associated with eStreamer and Syslog, as shown in Figure 21-85.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig85_HTML.jpg
Figure 21-85.

Splunk rule

We created one final rule, shown in Figure 21-86, for now. This rule allows anything from the outside to the Metasploitable host in the DMZ. Again, we are not logging.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig86_HTML.jpg
Figure 21-86.

Metasploitable incoming

Even though we didn’t log permitted connections, we want to see what is denied. We click the gray button next to the default action and select Log at Beginning of Connection. The default log location is the management console event viewer. We can also log to Syslog or send SNMP traps, as shown in Figure 21-87. This would require another destination configuration, in addition to what we demonstrated in the “Monitoring Overview” section. Now we have a basic policy and we can deploy.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig87_HTML.jpg
Figure 21-87.

Logging on default action

After the policy was deployed, we generated a small amount of traffic. We went back into the policy and clicked Analyze Hit Counts. This validated that traffic was hitting the intended rules. We show the results of our test in Figure 21-88.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig88_HTML.jpg
Figure 21-88.

Analyze Hit Counts

Application-Based Rules

In the last section, we built a basic policy. Now we will add to it. We want to use deep packet inspection to make sure users at Site 2 are only using bandwidth for business-relevant websites. In this example, we create a rule to block websites with very low to medium business relevance, but only in the time range defined by the object WorkHours. We also went to the Logging tab and selected to log at the beginning of the event.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig89_HTML.jpg
Figure 21-89.

Facebook rule

../images/336497_2_En_21_Chapter/336497_2_En_21_Figc_HTML.jpg

Next, we create a rule to block certain types of Facebook traffic. This capability eliminates the issue of companies wanting employees to be able to get important information from Facebook, but not wanting them to use the other features. One limitation with these types of rules is they often require inspection of data that is often encrypted. A solution is to use an SSL policy to decrypt traffic. However, that takes additional resources and configuration. Everything that is not blocked will be evaluated by a later rule. We also want to know who is violating this rule, so we log it. We show part of this example in Figure 21-89.

After deploying the rules, we have some data in our connection events. Our time-based rule blocking medium business-relevant traffic without any additional details was too aggressive, but serves as a good example. As shown in Figure 21-90, sites like Google and MSN were blocked due to too low business relevance.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig90_HTML.jpg
Figure 21-90.

Connection events

Intrusion Policies Introduction

Intrusion policies take inspection one step deeper. They will inspect information inside packet headers, the body, or summary data about connections. They can block traffic that is likely malicious even if the access control policy allows it. However, you need to assign a Threat license to a firewall to use this feature.

If you remember, we configured the rule for the Metasploitable host wide open. Let’s see how it fares against Firepower’s intrusion detection component.

Using Armitage in Kali, we launched an attack against a vulnerable service on the Metasploitable host. We immediately got a root shell. This is shown in Figure 21-91.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig91_HTML.jpg
Figure 21-91.

Root shell exploit

We could make an access rule blocking FTP, but let’s assume we want FTP open. We will go back into the rule for the server and attach it to an intrusion policy. To attach an intrusion policy to a rule, go to the Inspection tab and select a policy and a variable set. Cisco provides four default policies, as demonstrated in Figure 21-92. We will use Balanced Security and Connectivity.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig92_HTML.jpg
Figure 21-92.

Intrusion rule

When we attempt to run the exploit again, it connects to the FTP service but as we see in Figure 21-93, it fails to create a shell using the backdoor.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig93_HTML.jpg
Figure 21-93.

Exploit failed

Intrusion Policy Tuning

In the previous section, we used an intrusion policy without explaining it. Using intrusion policies without understanding them is a major cause of false positives. False positives occur when you get an alert for legitimate traffic. When there are a lot of false positives, administrators stop paying attention to the alerts. We need to tune a few things to remove false positives.

It is base practice to create a new policy and tune it for your organization. You will start with one of Cisco’s policies as the base. When Cisco adds new rules to the base policy, they will be pushed to your policy. This allows you to disable or adjust rules without losing rule set updates. If you don’t know where to start, Balanced Security and Connectivity is a good place. If testing shows that it is not restrictive enough, you can move to a more restrictive base policy. If it only needs slight adjustment, you can reenable rules that are disabled by default. The same concept applies to make a policy more permissive.

Before we create a new policy, we will look at the variable set. A variable set is used to fill in variables in rules. They are accessed through Objects ➤ Object Management ➤ Variable Set. The variables define networks and ports. Common variables are $HOME_NET and $EXTERNAL_NET.

A problem with the default variables is most are set to any. They need to be adjusted to reflect the networks and ports in your infrastructure. In the default state, rules that should only trigger on EXTERNAL to HOME flows will trigger for any flows. If you need to define them differently for different portions of your network, you can create more than one variable set. The default variable set is shown in Figure 21-94.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig94_HTML.jpg
Figure 21-94.

Default intrusion prevention variables

When you edit a variable, you can create a list of included networks or ports and then remove excluded objects. A good example for excluding networks may be to define $EXTERNAL_NET as any and then exclude the inside networks. In the example shown in Figure 21-95, we use the Inside and DMZ networks but exclude the Splunk server from $HOME_NET.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig95_HTML.jpg
Figure 21-95.

Edit HOME_NET variable

Now we can move to Policies ➤ Intrusion and click Create Policy. A page similar to what we show in Figure 21-96 appears. You can set the base to a custom policy or one maintained by Cisco. It is a good idea to create a policy even if you are not ready to customize it. It will give you the flexibility to adjust the policy as you find false positives or negatives.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig96_HTML.jpg
Figure 21-96.

Create intrusion policy

For our example, we want to find the rule that was triggered for the vsFTP exploit. The action inherited from the base policy was Drop and Generate Events. We are changing it to only Generate Events. That means it will log, but not drop. Look at Figure 21-97 for an example on how to change the state of a rule.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig97_HTML.jpg
Figure 21-97.

Change rule in intrusion policy

When we browse to My Changes, as shown in Figure 21-98, we can see that there is only one rule. The other rules are included in the base policy, which is inherited in our custom policy. We only see rules that we changed.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig98_HTML.jpg
Figure 21-98.

My Changes

The final step is to associate the custom policy with access control policy rules. In practical application, you should create your intrusion policy first. Otherwise, you may have several rules to update.

In complex networks, you may have several intrusion policies and variable sets in the same access policy. We show this in Figure 21-99. You can associate a different policy to each rule and another for the default action.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig99_HTML.jpg
Figure 21-99.

Update access rule for intrusion policy

After deploying the policy with the change, we were able to get a root shell on the target server again. Even though the firewall allowed the traffic, it still logged it. The logs include a summary view and the ability to look at the packet and details about the alert. We see the alert details in Figure 21-100.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig100_HTML.jpg
Figure 21-100.

Details of alert

Virtual Private Networks

Virtual Private Networks (VPNs) provide an extension to an organization’s infrastructure. It gives the appearance that networks are directly connected even if they are across the world. In most cases, the connections are encrypted. Encryption is important for ensuring confidentiality and integrity of the data. In this section, we discuss site-to-site and remote access VPNs.

Site to Site

VPNs between sites usually use IPsec. We can configure VPNs to authenticate the tunnels using pre-shared keys (PSKs) or certificates. PSKs are easier to configure, but using PSKs is less secure than using correctly configured certificates.

We will start our example using PSKs. Browse to Devices ➤ VPN ➤ Site to Site, as shown in Figure 21-101. Then we will choose Add VPN ➤ Firepower Threat Defense Device.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig101_HTML.jpg
Figure 21-101.

Site-to-site VPN menu

The configuration page allows you to configure a point-to-point VPN, a hub and spoke, or a full mesh. A full mesh will dynamically create tunnels between all devices included in the VPN. A hub and spoke will create tunnels between each site’s device and one device that is selected as the hub. We are only using two sites, as demonstrated in Figure 21-102, so we will choose Point to Point.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig102_HTML.jpg
Figure 21-102.

Site-to-site VPN initial page

When we add a node, we are prompted for some information. Most of the settings are intuitive. A few items that can cause confusion are the checkbox for “This IP is Private,” the certificate map, and the protected networks. Figure 21-103 shows the page you will see when you add an endpoint to a site to site VPN configuration.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig103_HTML.jpg
Figure 21-103.

Add node to VPN

The checkbox for private IPs is really asking if the IP is behind a NAT boundary. If the IP will be NATed by another device, the NAT-T protocol is used to assist the VPN. Certificate maps are used to pull information out of certificates for authenticating and authorizing devices. Protected networks are the networks you want to advertise to the other side.

The IKE and IPsec tabs , shown in Figures 21-104 and 21-105 provide details about the algorithms we will use for authentication and encryption. Notice that it is using automatic key. That allows the FMC to push a key that it generates to each node.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig104_HTML.jpg
Figure 21-104.

Site-to-site IKE configuration

We will leave the default settings in the IPsec tab. The reverse route checkbox tells the system to send routes to the peer. If you need to push those routes into a routing protocol to send to neighboring routers, you need to redistribute into the protocol.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig105_HTML.jpg
Figure 21-105.

IPsec tab

The Advanced tab has an option to bypass access control policies for VPN traffic. We are selecting that in our example, shown in Figure 21-106. If you do not select this option, you need to configure access control rules for traffic that is allowed between sites. The data will be coming from the outside interface of each device.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig106_HTML.jpg
Figure 21-106.

Bypass access controls

Click Save, and then deploy to the firewalls. After deployment completes, we should have routes. You can see routes on a firewall command line interface using show route. We show an example of the virual route in Figure 21-107. You will need to create interesting traffic to create a connection. Traffic should be generated from hosts inside one site with a destination inside the other site. Attempting to generate traffic between firewalls will not work.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig107_HTML.jpg
Figure 21-107.

Virtual routes are learned over VPN

The health monitor provides some insight on the status of VPNs, but the command line on the Firepower appliances is the best way to validate the tunnel. If you have a high availability pair, make sure you are on the active device. Figure 21-108 shows the expected result for a site to site tunnel.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig108_HTML.jpg
Figure 21-108.

Tunnel information

Certificate authentication is more secure but is slightly more complicated. We need to create a trustpoint that the devices will use. If both sides of the VPN are managed in the same FMC domain, you can only select a single trustpoint that both devices use. Some trustpoints use autoenrollment and will generate a private key and a certificate for a device when the trustpoint is associated with a device. If you use an autoenrollment protocol, such as SCEP, the process is easy. Many of us use manual enrollment. The process for manual enrollment on the FMC is a bit convoluted.

We will set up the certificate-based site-to-site VPN slightly wrong at first. We are doing this so we can show you what the error looks like in the logs. Browse to Objects ➤ Object Management ➤ PKI ➤ Cert Enrollment. When you click Add Cert Enrollment, you see a few options. PKCS12 is a type of offline manual enrollment. We will be using that option in our example.

../images/336497_2_En_21_Chapter/336497_2_En_21_Figd_HTML.jpg

We will generate the PKCS12 file using OpenSSL on a Linux system. You could also use the shell on the FMC as it is a Linux variant.

Use the following command to create a certificate signing request and an associated private key. You may want to use better names for your files so you can keep track of them. Keep the private key safe!
openssl req -new -newkey rsa:2048 -nodes -keyout server.key -out server.csr
OpenSSL will ask you some questions. Fill them out per your requirements. When it asks for a CN, use the FQDN that will resolve to the IP address of the outside interface of your firewall. Take the contents of the CSR file that was created by the command and use them to request to your certificate authority. When you go to your certificate authority, grab the root CA certificate and place it on your Linux system. You will need it in a later step. You should pick the IPsec template from your certificate authority when you request the certificate. Take the Base64 certificate you received and place it with the private key and CA certificate. Run the following command to get the PKCS12 file. This assumes you called the private key file server.key, the CA certificate CACert.cer, and the certificate for the device server.cer:
openssl pkcs12 -export -out site1.pfx -inkey server.key -in server.cer -certfile CACert.cer
Take the PFX file and upload it to the FMC. Check the Allow Overrides checkbox. This will be important later.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig109_HTML.jpg
Figure 21-109.

Add PKCS12 file

Now we need to add the enrollment to the devices. Browse to Devices ➤ Certificates as shown in Figure 21-110. Add the enrollment to both firewalls. A common mistake is to use a different enrollment for each FTD device, but that will not work with the VPN configuration. We will need to use the same enrollment and then add an override to give them different keys. We will get to that after we show that this does not work as it is. We are showing this because it is a common issue.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig110_HTML.jpg
Figure 21-110.

Add enrollment to FTD

If you get an error that says it failed, look at the error message to troubleshoot. In this example, we can see that FTD_Site1 failed while FTD_Site2 worked. If there is a problem with the CA certificate, you may see a red X over just the CA icon. We show an example of this type of failure in Figure 21-111. If you see a magnifying glass for both, it usually means the certificate is valid. You can click the button to get details for the certificate.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig111_HTML.jpg
Figure 21-111.

Certificate error

In our example, the error was caused by a high availability error. FTD_Site1 is an HA pair, but the state link was disconnected. The reason it gave us the error that the trustpoint was not known is because of what is called a split-brain issue where the devices in the HA pair are out of sync. After fixing the certificate issue, we go back into site-to-site VPN connection and change the authentication to certificate. We can only choose one certificate trustpoint for the configuration. The VPN configuration does not allow for one trustpoint per device. If we used SCEP, this wouldn’t be an issue. Each device would get a unique certificate automatically. Figure 21-112 shows how we map the certificate to the VPN configuration.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig112_HTML.jpg
Figure 21-112.

VPN certificate authentication

If you browse to Devices ➤ Troubleshooting, you may see indications of problems, but a lack of logs on the Troubleshooting page does not mean everything is good. In our example, the certificate will not authenticate because both devices are using the same certificate. We need to configure an override. We can see from Figure 21-113 that there are certificate validation errors.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig113_HTML.jpg
Figure 21-113.

VPN certificate authentication error

To fix the issue, we need to switch the VPN back to PSK Automatic. Then we delete the certificate enrollment for Site 2. Then we go back to Objects ➤ Object Management ➤ PKI ➤ Cert Enrollment and configure an override, as demonstrated in Figure 21-114. We need to create a PKCS12 file for the Site 2 device in the same way we did for Site 1. Edit the certificate enrollment we previously created and add an override for Site 2. An override will use a different configuration for the overridden configuration. In this case, we upload site2.pfx as the certificate for Site 2.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig114_HTML.jpg
Figure 21-114.

PKI object override

With the override in place, go back to Device ➤ Certificates and reenroll the trustpoint for FTD2. Then configure the VPN back to certificate-based authentication. When making changes to IKEv2, you may need to go into the command line and clear the security association with clear crypto ikev2 sa. Now that we have the override in place, the certificate-authenticated VPN will work. We deploy the new configuration. After generating traffic from internal hosts, we see the VPN session establish without error.

For additional security, we could have also used certificate maps.

Remote Access

Remote access VPNs allow end users to connect to their organization’s internal network. The two main types of remote access VPNs are IPsec and SSL VPNs. Even though IPsec is still in use, SSL VPNs are more common. One reason is that it is easier for firewalls and NAT boundaries to handle SSL traffic than it is for IPsec. In our example, we will configure an SSL VPN.

The first step we need to do is create a profile that will be pushed to the clients. ASAs had an option to configure the client profile as part of the VPN wizard. As of Firepower 6.6, that feature does not exist, and we need to create the profile offline. The tool to create a profile is called the AnyConnect Profile Editor. If you search Cisco software downloads for AnyConnect, you will see an installer for the profile editor as an option. While you are on the page to download AnyConnect files, you need to download the head-end package for AnyConnect. There are options for Windows, Mac, and Linux.

We can leave most of the defaults for the policy. The one change we are making in our example is adding our secure gateway in the list of servers. After adding the gateway, we save the file to our management PC so we can upload it to the FMC in the next step. Figure 21-115 shows an example of the AnyConnect Profile Editor.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig115_HTML.jpg
Figure 21-115.

Create client VPN profile

Back on the FMC, we browse to Objects ➤ Object Management ➤ VPN ➤ AnyConnect File. Click the Add AnyConnect File button and upload the profile. Select Profile as the file type. We also need to upload the head-end client packages that you previously downloaded. Figure 21-116 shows the AnyConnect File page under VPN objects.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig116_HTML.jpg
Figure 21-116.

AnyConnect file

Before we configure a policy, we need to configure addressing for the clients. We will use address pools. Under Object Management ➤ Address Pools ➤ IPv4 Pools, add a pool. We create a pool in a similar way as shown in Figure 21-117.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig117_HTML.jpg
Figure 21-117.

Address pool

Next, we will select VPN ➤ Group Policy. There is a default policy, but it is best practice to create your own. We show an example of the Group Policy page in Figure 21-118. In the General tab, we are unselecting IPsec and using only SSL. We associated the pool we just created to the policy. We configured a banner that users will see when they log into the system. We left split tunneling as the default. Split tunneling can allow users to pass some traffic over the tunnel and route some traffic unencrypted toward their default gateway. Forcing all traffic through the tunnel is the default. It is considered more secure, but it also takes more resources. Under DNS, we configured the DNS information that will be pushed to the clients. In the AnyConnect tab, we selected the client profile. We left everything else with default settings.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig118_HTML.jpg
Figure 21-118.

Configure VPN group policy

Now we need to add a RADIUS server for authentication and authorization. If you are using certificate authentication, you can check the box to use RADIUS to authorize only. In our example, we are authenticating passwords through RADIUS. Enabling dynamic authorization is important if you are using posturing. With posturing, your authorization can change depending on your compliance state. The RADIUS Server Group page is shown in Figure 21-119.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig119_HTML.jpg
Figure 21-119.

Add RADIUS for VPN

The next part of the configuration is under Devices ➤ VPN ➤ Remote Access. When you click to add a VPN, it will open a wizard. The first page of the Wizard is shown in Figure 21-120.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig120_HTML.jpg
Figure 21-120.

Add remote access VPN

On the next page, we are selecting AAA only. Other options are certificate only or AAA and certificate. If you select certificate only, the system will verify that it trusts your certificate and then send your user information from the certificate to RADIUS for authorization.

When we get to the Access & Certificate tab, we are enabling the VPN on our outside interface. We are selecting the identity certificate that we configured with the site-to-site VPN.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig121_HTML.jpg
Figure 21-121.

Access & Certificate

We selected to bypass the access control policy for decrypted traffic. That does not mean that there is not any access control. Filters on the group policy or access control lists pushed from ISE are still applied. If you choose not to check this box, you need to create access policy rules for allowed traffic from clients using Firepower access control policies.

Before we test the VPN, we need to set up everything in ISE. RADIUS requests will come from the firewall itself and not the FMC. We need to create a network resource for the Site 1 FTD appliance.

Since we want to use downloadable access control lists (dACLs) , we need to create them in ISE first. We show a simple example in Figure 21-122. When we use any in the source, it is replaced by the IP of the client.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig122_HTML.jpg
Figure 21-122.

Create dACL

We need to create authorization profiles that use the dACLs, as shown in Figure 21-123.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig123_HTML.jpg
Figure 21-123.

Authorization profile

Finally, we can tie it together in a rule in a policy set, as shown in Figure 21-124.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig124_HTML.jpg
Figure 21-124

VPN authorization rules

When we test the VPN, we can go to the web page for the firewall and download AnyConnect from there. If the end user does not have administrative access to their workstation, it is better to pre-install the client. In our test, we connected using a pre-installed instance of AnyConnect. First, we tested an account with low access and then one with high access. When we look at ISE’s RADIUS Live Logs in Figure 21-125, we can see both connections and the dACLs that we pushed.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig125_HTML.jpg
Figure 21-125.

RADIUS Live Logs

You can also see information about the connection in the FMC. Viewing Remote Access VPN User Activity Analysis ➤ Users ➤ User Activity, shown in Figure 21-126, lets you view the details of user activity on your network. The system logs historical events and includes VPN-related information such as connection profile information, IP address, geolocation information, connection duration, throughput, and device information.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig126_HTML.jpg
Figure 21-126.

User information

When we look at access lists from the FTD CLI, we can see the access list pushed from ISE. Figure 21-127 shows the dynamic ACL from the Firepower CLI.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig127_HTML.jpg
Figure 21-127.

Dynamic access list

The command show vpn-sessiondb anyconnect, demonstrated in Figure 21-128, shows information about the connection.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig128_HTML.jpg
Figure 21-128.

Show VPN output

Troubleshooting

Troubleshooting Firepower can involve navigating both the web interface and the command line. Individual firewalls send some logs to the FMC, but interactive commands need to be run on the firewalls themselves. If you browse to Devices ➤ Device Management, there is a tool icon next to each device. We highlight this button in Figure 21-129. That takes you into the troubleshooting menu. If you are on an HA pair, make certain you have the correct device. Traffic does not pass through a passive device, so troubleshooting commands will not give you much information if you do not select an active device.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig129_HTML.jpg
Figure 21-129.

Device troubleshooting

From here, you can see health statistics and options for generating troubleshooting files and advanced troubleshooting. Generating troubleshooting files is commonly used when working with TAC. Advanced troubleshooting, shown in Figure 21-130, provides interactive troubleshooting information. If you are using Firepower 6.7 or higher, the buttons will look different but the option is still there.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig130_HTML.jpg
Figure 21-130.

Troubleshooting page

In Advanced Troubleshooting, we can download files, run commands, run traces, and capture packets. We show an example of running a CLI command in Figure 21-131.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig131_HTML.jpg
Figure 21-131.

Advanced Troubleshooting page

The CLI page is a nice way to run commands against the FTD, but you need to know the exact command and it only supports ping, show, and traceroute. It does not support auto-completion or context-sensitive help. If you are not certain of the exact command, the CLI offers more flexibility.

Packet Tracer allows you to inject a test packet to an interface and trace what happens. We show an Packet Tracer example in Figure 21-132. It will tell you if it hit an access control policy or NAT policy and the disposition of the packet. It is useful in what if scenarios.

In this example, we tested a packet on the outside interface. It was dropped due to the access control policy.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig132_HTML.jpg
Figure 21-132.

Packet Tracer

If you want to see the disposition of real packets, you can start a packet capture. You can create a capture with filter criteria or look at anything. If packets are not making it to their destination interface, you can see why by using a capture with trace. We show an example in Figure 21-133. When a flow is not working, we will likely see results other than ALLOW.
../images/336497_2_En_21_Chapter/336497_2_En_21_Fig133_HTML.jpg
Figure 21-133.

Capture with trace output

Summary

This was a massive chapter, but it only scraped the tip of the iceberg on the features available on the Firepower system. Firepower is the combination of several other products. The two main influences of Firepower are ASA and Sourcefire Defense Center, but other products show their influence in the framework.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.134.118.95