{"_id":"58d1672d13e8100f00eee61f","__v":0,"project":"56a938852036420d002d23a0","version":{"_id":"56a938852036420d002d23a3","__v":1,"project":"56a938852036420d002d23a0","createdAt":"2016-01-27T21:37:09.719Z","releaseDate":"2016-01-27T21:37:09.719Z","categories":["56a938862036420d002d23a4"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"","version_clean":"1.0.0","version":"1.0"},"user":"560b40145148ba0d009bd0b5","category":{"_id":"56a938862036420d002d23a4","version":"56a938852036420d002d23a3","__v":3,"pages":["56a938872036420d002d23a6","56abf9759327b30d00f7c2a5","56afa3529ca3b20d0017571a"],"project":"56a938852036420d002d23a0","sync":{"url":"","isSync":false},"reference":false,"createdAt":"2016-01-27T21:37:10.291Z","from_sync":false,"order":0,"slug":"documentation","title":"Documentation"},"parentDoc":null,"updates":[],"next":{"pages":[],"description":""},"createdAt":"2017-03-21T17:47:25.876Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":1,"body":"## Introduction\n\nThis document introduces Cisco Umbrella Wireless LAN Controller (WLC) Integration and provides general guidelines for its deployment. The purpose of this guide is to:\n\n* Provide an overview of OpenDNS WLC Integration feature\n* Highlight supported key features\n* Provide details on deploying and managing the OpenDNS feature on WLC\n* Help setup the Cisco Umbrella dashboard to manage the WLC in the web-based dashboard.\n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"IMPORTANT NOTE\",\n  \"body\": \"OpenDNS is now Cisco Umbrella; however, the feature described here is still named OpenDNS in the interface for the Wireless LAN controller. As such, this guide refers to \\\"OpenDNS\\\", \\\"Cisco Umbrella\\\", or simply \\\"Umbrella\\\" wherein all three are the same and thus interchangeable. In a future release, all names will be simply \\\"Cisco Umbrella\\\" or \\\"Umbrella\\\". As a rule of thumb, the feature within the WLC user interface is called 'OpenDNS', but the cloud-based dashboard and DNS service are both 'Cisco Umbrella'\"\n}\n[/block]\n### Prerequisites\n\n* AireOS 8.4 or newer is required on the Cisco Wireless LAN Controller to support Cisco Umbrella WLAN. Note: In order to upgrade to AireOS 8.4, customers must have AireOS 8.0 or higher release.\n* For initial registration the public facing external interface of the WLC must be able to access api.opendns.com over port 443 in order to complete initial registration. \n* TCP & UDP on port 53 (DNS) to 208.67.220.220 & 208.67.222.222 (The Cisco Umbrella public DNS resolvers)\n* DNSCrypt—If there are any devices in front of the ISR that may block DNSCrypt for not looking like an actual DNS packet, the DNSCrypt feature may not work.  For more information and an example of the problem, read [here](https://support.umbrella.com/hc/en-us/articles/230562207-Cisco-ASA-Firewall-blocks-DNSCrypt).\n* An admin account for the Cisco Umbrella dashboard\n\n#### Components Used\n\nThe information in this document was created from devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.\n\n#### Conventions\n\nRefer to Cisco Technical Tips Conventions for more information on document conventions.\n\n####What is Cisco Umbrella \n\nCisco Umbrella is a cloud delivered network security service which protects devices from malware and breach protection in real time. Umbrella uses evolving big data and data mining methods to proactively predict attacks. As well, Umbrella can be configured to filter content access to websites so you can better control your network environment.\n\nSome useful terms to know:\n\n* **API Token**—Issued through the Cisco Umbrella dashboard. It is used for device registration.\n* **Device Identity**—A unique device identifier. Policy is enforced per identifier.\n* **EDNS**—An extension mechanism for DNS which carries tagged DNS packet.\n* **FQDN**—Fully Qualified Domain Name (eg: www.domain.com).\n\n### How it works\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/2438abb-WLAN_images.jpeg\",\n        \"WLAN images.jpeg\",\n        945,\n        171,\n        \"#2b4f8d\"\n      ]\n    }\n  ]\n}\n[/block]\nFor any internet data request, the DNS request always precedes web (HTTP) request. Wireless Lan Controller intercepts theDNS request from the client and redirects the query to the Cisco Umbrella (OpenDNS) server in the cloud.  The Cisco Umbrella (OpenDNS) DNS resolvers are located at 208.67.222.222 and 208.67.220.220. The Umbrella (OpenDNS) service resolve the DNS query and enforces preconfigured security filtering rules on a per identity basis. If the domain is marked as malicious, Umbrella returns the IP of a block page to the client. If it is determined to be safe, Umbrella returns the resolved IP address to client.\n\nThe following diagram outlines the process of registration and DNS queries between an end client computer, through the WLC and to Cisco Umbrella.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/7dbb556-wlan-flow.png\",\n        \"wlan-flow.png\",\n        783,\n        404,\n        \"#1e4f6c\"\n      ]\n    }\n  ]\n}\n[/block]\n1. WLC registration with the Umbrella server is a one-time process and happens over a secure HTTPS tunnel.\n\n2. You must obtain an API Token for device (WLC) registration from the Umbrella dashboard.\n\n3. Next, apply the Token on the Wireless Lan Controller. This should register the device to the Umbrella account. Next, create Umbrella Profile/s on WLC. Profiles will automatically be pushed to the Umbrella dashboard as Identities and policy can be enforced on a per identity basis.\n\n4. Wireless client traffic flow from to the Umbrella server.\n\n5. A wireless client sends a DNS request to WLC.\n\n6. WLC snoops the DNS packet and tags it with an Umbrella Profile. Profile is the identity of the packet which also resides on OpenDNS.\n\n7. This EDNS packet is redirected to the Umbrella cloud server for name resolution.\n\n8. Umbrella then enforces a policy on it depending on the identity and applies category based filtering rules to ensure organization compliance.\n\n9. Depending on the policy and whether a destination is considered malicious, the service either returns the IP of a block page or resolved IP address to the client for the DNS request queried. \n\n## Configuring the OpenDNS Wireless LAN Controller Integration\n\n### Procedure\n\n1. Cisco Umbrella provisioning involves creating a user account on Umbrella cloud. Subscription is per account. For more information about purchasing Umbrella, please contact Cisco sales.  **NOTE: Permanent License is covered under CiscoOne Advanced Subscription.**\n2. Enable Wireless Controller (GUI or CLI) for Cisco Umbrella.\n3. Configure profiles (identities) on WLC. Profile can be mapped to either WLAN, AP group or incorporated into local policy.\n4. WLC redirects DNS packets to Cisco Umbrella cloud.\n5. Security policies on Cisco Umbrella are applied per Identity. Cisco Umbrella configuration steps on Wireless Controller involve enabling Cisco Umbrella function, configuring API Token, creating Profile/s and mapping the profile to either a WLAN, an AP group or a Local Policy.\nThe policy priority order—from highest to lowest—is:\n * Local Policy\n * AP Group\n * WLAN\n\nThe Cisco Umbrella profile when mapped to local policy allows for a granular differentiated user browsing experience based on the dynamic evaluation of attributes (user role, device type etc). For the rest of this document, we will discuss following scenarios:\n\n• **Scenario 1**—Configure WLC for Cisco Umbrella and incorporate a Cisco Umbrella profile in a user role based local policy. We will also touch upon basic configuration on Cisco Umbrella Server.\n\n• **Scenario 2**—Configure WLC for Cisco Umbrella and apply a Cisco Umbrella profile on a WLAN and AP Group.\n\n## Scenario 1: Configuring Local Policies for Cisco Umbrella\n\nIn an organization, our goal is to restrict internet access (for particular websites) to users based on their role types. For example, regular employees should be permitted full internet access barring sites such as adult, gambling, nudity. At the same time, contractor access should be more rigid, barring access to social websites, sports, and news, as well as adult, gaming, nudity, and other such sites.\n\nWe will be using an external AAA server to authenticate a user and based on the identity, pass the user role as either contractor or employee to WLC. On the WLC, user will configure two policies (for employee and contractor) and apply a different Cisco Umbrella profile to each to restrict their browsing activity when connected to the same dot1x enabled WLAN. To achieve this, we will:\n\n1. In the Umbrella dashboard, generate an API token for device (WLC) registration.\n2. In WLC, enable OpenDNS globally, apply the API token and create OpenDNS profiles for employee and contractor.\n3. In the Umbrella dashboard, create category definitions/rules and policies for employees and contractors.\n4. In WLC, create Local policy each for employee and contractor tying the AAA returned role and OpenDNS profile under each.\n5. In WLC, tie the two local policies to the dot1x WLAN \n\n## Scenario 1 – Procedure\n \n1. Create your own 14 day trial account here https://signup.umbrella.com/ or get your account details from your Cisco sales rep.\n \n2. Log in to your Umbrella  account at https://login.umbrella.com/\n3. Navigate to **Identities > Network Devices** and click **GET MY API TOKEN** to generate a token.\n4. Copy your API Token.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/ab350cb-get_my_token.jpg\",\n        \"get_my_token.jpg\",\n        914,\n        466,\n        \"#ebebeb\"\n      ],\n      \"sizing\": \"80\"\n    }\n  ]\n}\n[/block]\n5. From the WLC main menu, navigate to **Controller > General** and enter a DNS Server IP address that can resolve domains. This is required for the first time before enabling Cisco Umbrella feature on the WLC.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/17826d0-control_general.jpg\",\n        \"control_general.jpg\",\n        866,\n        374,\n        \"#e3e4e8\"\n      ],\n      \"sizing\": \"80\"\n    }\n  ]\n}\n[/block]\n6. From WLC main menu, navigate to **Security > OpenDNS > General > enable OpenDNS Global Status**.  In the CLI, the command is 'config openDNS enable'\n\n7. Paste the API Token you copied from the Umbrella dashboard.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/b6cc71e-opendns-api.png\",\n        \"opendns-api.png\",\n        862,\n        182,\n        \"#375f74\"\n      ],\n      \"sizing\": \"80\"\n    }\n  ]\n}\n[/block]\n8. On the same page, under **Profile**, create OpenDNS profiles and click **Add**.\n CLI command: config openDNS profile create <*profile-name*>\n\n For this example, create two OpenDNS profiles, one for employee (employeeOD) and another for contractor (contractorOD) via CLI or GUI. \n\n   These profiles are automatically pushed to your Umbrella account as Identities and you should see the State of the Profiles populated as Profile Registered. This is subject to a successful connection between the WLC and Umbrella server.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/c224c2e-profile-name.png\",\n        \"profile-name.png\",\n        858,\n        338,\n        \"#e6e8e9\"\n      ],\n      \"sizing\": \"80\"\n    }\n  ]\n}\n[/block]\nOn CLI, you can verify the two profiles as shown:\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/83114f0-cli-profile.png\",\n        \"cli-profile.png\",\n        867,\n        435,\n        \"#d6d6d6\"\n      ],\n      \"sizing\": \"80\"\n    }\n  ]\n}\n[/block]\n**Note:** Each OpenDNS Profile has a unique Opendns-Identity generated on controller (in the format <WLC name>_<profile name>) which will be pushed to the associated Umbrella account in the cloud.\n\na. In the Umbrella dashboard, navigate to **Identities > Network Devices** and verify that your WLC with both Identities employeeOD and contractorOD show up under Device Name.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/bc7c29d-device_names.jpg\",\n        \"device_names.jpg\",\n        898,\n        328,\n        \"#ecedec\"\n      ],\n      \"sizing\": \"80\"\n    }\n  ]\n}\n[/block]\nb. Next, create classification rules for employee and contractor user roles selecting the domains that should be blocked for both of these roles. Navigate to **Policies > Category Settings**.\n\nWe have created employeeCategory and contractorCategory for this exercise. \n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/83529d0-cat_names.jpg\",\n        \"cat_names.jpg\",\n        1088,\n        333,\n        \"#eaebeb\"\n      ],\n      \"sizing\": \"80\"\n    }\n  ]\n}\n[/block]\nThe **employeeCategory** is blocking certain content categories; for example, Adult themes, Adware, and Gambling. The, **contractorCategory** is more restrictive, blocking, Adult themes, Adware, Gambling, Games, News, and Social Networking. Expand **employeeCategory** to view its list of blocked categories. You can edit the list to add or remove categories.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/345f05f-cat_list.jpg\",\n        \"cat_list.jpg\",\n        945,\n        899,\n        \"#d4d3d4\"\n      ],\n      \"sizing\": \"80\"\n    }\n  ]\n}\n[/block]\n9. In Umbrella, navigate to **Policies > Policy List **and configure two policies:\n * EmployeePolicy\n * ContractorPolicy\n  \n A policy wizard is available to configure each WLAN identity affected and the mapped category setting. Here, EmployeePolicy is assigned to employeeOD Identity and tied to a category employeeCategory (created in the last step). Similarly, contractorPolicy is assigned to contractorOD Identity and tied to a custom category contractorCategory created earlier. \n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/b173259-2policy.jpg\",\n        \"2policy.jpg\",\n        955,\n        494,\n        \"#e1e1e0\"\n      ],\n      \"sizing\": \"80\"\n    }\n  ]\n}\n[/block]\na. Expand a policy.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/06bbc6d-employeePolicy.jpg\",\n        \"employeePolicy.jpg\",\n        1002,\n        567,\n        \"#e5e7e7\"\n      ],\n      \"sizing\": \"80\"\n    }\n  ]\n}\n[/block]\nb. Click **Edit** under **Identities Affected** to see all the identities/network devices (Pod#-WLC_employeeOD) mapped to this policy\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/9e3c6ac-policy_wizard_idents.jpg\",\n        \"policy_wizard_idents.jpg\",\n        1096,\n        583,\n        \"#e4e4e1\"\n      ],\n      \"sizing\": \"80\"\n    }\n  ]\n}\n[/block]\nc. Click **Set & Return** and go to **Content Setting Applied**  to verify that category settings are applied to this policy as shown below.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/1495153-custom_setting.jpg\",\n        \"custom_setting.jpg\",\n        1082,\n        667,\n        \"#e7e7e6\"\n      ],\n      \"sizing\": \"80\"\n    }\n  ]\n}\n[/block]\n10. Configuring User Roles on ISE.\n  a. Configure a AAA server or ISE to allow users to be 802.1x authenticated and have the server return ROLE string back to the wireless controller for local policy enforcement.\n\n  As illustrated below, on the ISE, configure users, that is, employee and contractor:\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/ea4df1e-ISE.jpg\",\n        \"ISE.jpg\",\n        1341,\n        287,\n        \"#156eae\"\n      ],\n      \"sizing\": \"80\"\n    }\n  ]\n}\n[/block]\n   b. Next, configure groups, that is, group Employee and contractor.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/c1edcb1-contractor2.png\",\n        \"contractor2.png\",\n        803,\n        396,\n        \"#e7eced\"\n      ],\n      \"sizing\": \"80\"\n    }\n  ]\n}\n[/block]\n**Note:** In this section of ISE, we are testing with ISE internal users. If ISE is pointing to an external user database like Active Directory, the rule changes and points to the respective user AD group.\n\nc. Create an ISE policy for a specific group of users with a desired role, that is, employee or contractor.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/c23dd6a-group-policy.png\",\n        \"group-policy.png\",\n        747,\n        718,\n        \"#ebecf1\"\n      ],\n      \"sizing\": \"80\"\n    }\n  ]\n}\n[/block]\n\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/7c09ad3-adavnced_attribute_settings.jpg\",\n        \"adavnced_attribute_settings.jpg\",\n        824,\n        320,\n        \"#e9e9ea\"\n      ],\n      \"sizing\": \"80\"\n    }\n  ]\n}\n[/block]\n\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/4812bd7-more_advanced_attributes.jpg\",\n        \"more_advanced_attributes.jpg\",\n        1033,\n        912,\n        \"#ecedf3\"\n      ],\n      \"sizing\": \"80\"\n    }\n  ]\n}\n[/block]\n\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/a916c41-advanced_cisco.jpg\",\n        \"advanced_cisco.jpg\",\n        701,\n        264,\n        \"#eeeeee\"\n      ],\n      \"sizing\": \"80\"\n    }\n  ]\n}\n[/block]\n At this point, it is assumed that administrator has configured the necessary authentication rules on ISE/AAA server for wireless users to return Authorization Profiles including access type (accept/reject) and user role (employee/contractor) as shown above.\n\n11. Configure local policies for OpenDNS.\nConfigure a user role based Local Policy and tie the OpenDNS profile to it. Finally, map the local policy to a particular WLAN.\n\na. Now create two local polices for employee and contractors on the WLC. From the WLC main menu, navigate to **Security > Local Policies** and click **New**.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/c97ea41-policies-new.png\",\n        \"policies-new.png\",\n        813,\n        259,\n        \"#e4e7e8\"\n      ],\n      \"sizing\": \"80\"\n    }\n  ]\n}\n[/block]\nb. Create Local Policy name as \"employee\" and \"contractor\" and click Apply.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/6c4739d-policy-new2.png\",\n        \"policy-new2.png\",\n        971,\n        138,\n        \"#dfdddc\"\n      ],\n      \"sizing\": \"80\"\n    }\n  ]\n}\n[/block]\nc. Similarly, create another one for contractor.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/ec26da0-policy_contract.jpg\",\n        \"policy_contract.jpg\",\n        700,\n        85,\n        \"#dcdcde\"\n      ],\n      \"sizing\": \"80\"\n    }\n  ]\n}\n[/block]\nd. Click the employee Local Policy and configure it with employee OpenDNS profile (employeeOD).\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/4e9b33a-policy-new4.png\",\n        \"policy-new4.png\",\n        833,\n        265,\n        \"#ecefee\"\n      ],\n      \"sizing\": \"80\"\n    }\n  ]\n}\n[/block]\ne. Under Match Criteria configure Match Role String as \"employee\" and under the Action list go to OpenDNS Profile. From the dropdown list, select \"employeeOD\" then click **Apply**.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/d8b1f7e-role-string.png\",\n        \"role-string.png\",\n        765,\n        1171,\n        \"#e9e7e5\"\n      ],\n      \"sizing\": \"80\"\n    }\n  ]\n}\n[/block]\nf. Click **Back** to go to the Local Policy page and click the contractor policy.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/da863fc-policy-list.png\",\n        \"policy-list.png\",\n        833,\n        265,\n        \"#ecefee\"\n      ],\n      \"sizing\": \"80\"\n    }\n  ]\n}\n[/block]\ng. Under Match Criteria, configure Match Role String as \"contractor\" and under Action, from the dropdown list OpenDNS Profile, select \"contractorOD\", then click **Apply** \n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/a0b8d52-contractorod.png\",\n        \"contractorod.png\",\n        850,\n        1127,\n        \"#eae8e7\"\n      ],\n      \"sizing\": \"80\"\n    }\n  ]\n}\n[/block]\n12. Configure OpenDNS on WLAN.\n\n a. From the WLC main menu, navigate to **WLAN > WLAN ID > Policy-Mapping**. Assign Priority Index 1 and Select employee from the Local Policy dropdown list and click **Add**.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/3d92c67-configure-odns1.png\",\n        \"configure-odns1.png\",\n        1081,\n        375,\n        \"#f0f0f0\"\n      ],\n      \"sizing\": \"80\"\n    }\n  ]\n}\n[/block]\nb. Similarly, apply the contractor policy to the WLAN.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/013fe4a-configure-odns2.png\",\n        \"configure-odns2.png\",\n        1016,\n        394,\n        \"#f0f0f0\"\n      ],\n      \"sizing\": \"80\"\n    }\n  ]\n}\n[/block]\nAs a result, a user logging in with employee credentials will be associated with \"role = employee\" and will be inherit employee OpenDNS profile (employeeOD) on the WLC. Similarly, a user logging in contractor credentials will be associated with \"role = contractor\" and will be inherit contractor OpenDNS profile (contractorOD) on the WLC.\n\nc. For the WLC to redirect all DNS for a WLAN to the OpenDNS server, the OpenDNS Mode must be set to Forced as shown below. This is done by navigating to **WLAN > Advanced**.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/2ff7a11-advanced.png\",\n        \"advanced.png\",\n        775,\n        205,\n        \"#f1f1f1\"\n      ],\n      \"sizing\": \"80\"\n    }\n  ]\n}\n[/block]\nd. Verify the following:\n* Connect a client to your WLAN with employee user credentials.\n* Try accessing sites that are blocked under the category filtering rules you created for employee. For blocked sites, client will get a display page stating the site/domain is restricted.\n* Try to associate to the same WLAN using contractor user credentials and repeat the test. You will notice the difference in browsing access granted to an employee versus a contractor.\n\n## Scenario 2: Configuring WLAN/AP Group for Cisco Umbrella\n\nSimilar to Local Policy, the OpenDNS profile can be attached to a WLAN or to an AP group. The following screenshots show how to tie the OpenDNS profile to a WLAN and AP group. It is assumed that the OpenDNS account is already created and that you have copied the API token.\n\n### Procedure\n \n1. From the WLC main menu, navigate to **Controller > General** and enter a DNS Server IP address that can resolve domains. This is needed for the first time before enabling OpenDNS feature on the WLC.\n\n  The CLI  command is \"config opendns server-ipv4 primary <*primary-server*> secondary <*secondary-server*>\".\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/34ebd15-enter-dns.png\",\n        \"enter-dns.png\",\n        800,\n        318,\n        \"#e2e4e6\"\n      ],\n      \"sizing\": \"80\"\n    }\n  ]\n}\n[/block]\n2. Enable OpenDNS globally on WLC by going to **Security > OpenDNS > General**.\n\n The CLI command is \"config openDNS enable\".\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/0473507-enable-opendns-global.png\",\n        \"enable-opendns-global.png\",\n        774,\n        149,\n        \"#d8dcde\"\n      ],\n      \"sizing\": \"80\"\n    }\n  ]\n}\n[/block]\n3. Configure API Token obtained from Cisco Umbrella account.\n\n The CLI command is \"config openDNS api-token <*token*>\".\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/a6a1a03-configure-api-tokens.png\",\n        \"configure-api-tokens.png\",\n        843,\n        165,\n        \"#dee3e4\"\n      ],\n      \"sizing\": \"80\"\n    }\n  ]\n}\n[/block]\n4. Create OpenDNS Profiles.\n\n The CLI command is \"config openDNS profile create <*profile-name*>\".\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/f6dc42d-create-profile.png\",\n        \"create-profile.png\",\n        813,\n        320,\n        \"#e6e8e8\"\n      ],\n      \"sizing\": \"80\"\n    }\n  ]\n}\n[/block]\n5. Map the Profile to WLAN or AP group.\na. To tie the OpenDNS profile to a WLAN, navigate to **WLANs > WLAN Id > Advanced** and under OpenDNS Profile select the contractorOD profile created above.\n\n The CLI command is \"config wlan opeDNS-profile <*wlan-id*> <*profile name*> enable\".\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/a4ff1f1-map-profile.png\",\n        \"map-profile.png\",\n        775,\n        205,\n        \"#f1f1f1\"\n      ]\n    }\n  ]\n}\n[/block]\nb. To map the Profile to AP Group, go to **WLANs > Advanced > AP Groups**. Select the AP group you want and go to WLANs tab. Hover the mouse over the blue button on the right and select OpenDNS Profile.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/b5ddf90-map-profile-2.png\",\n        \"map-profile-2.png\",\n        857,\n        231,\n        \"#f0f1f1\"\n      ],\n      \"sizing\": \"80\"\n    }\n  ]\n}\n[/block]\nIn the screenshot below, we selected AP Group APgrp1 and mapped contractorOD OpenDNS profile to WLAN 1.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/248cae5-mapprofile3.png\",\n        \"mapprofile3.png\",\n        847,\n        258,\n        \"#e4e6e7\"\n      ],\n      \"sizing\": \"80\"\n    }\n  ]\n}\n[/block]\nThe CLI command is \"command:config wlan apgroup opendns-profile <*wlan-id*> <*site-name*> <*profile-name*> enable\".\n\nc. To view OpenDNS mapping, navigate to **Security > OpenDNS > General** and click **Profile Mapped Summary**.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/32cbcec-opendnsmapping.png\",\n        \"opendnsmapping.png\",\n        806,\n        369,\n        \"#e6e9e9\"\n      ],\n      \"sizing\": \"80\"\n    }\n  ]\n}\n[/block]\nHere, the OpenDNS Profile contractorOD is mapped WLAN ID 1.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/44433c6-profilemap1.png\",\n        \"profilemap1.png\",\n        760,\n        343,\n        \"#f0f1f1\"\n      ],\n      \"sizing\": \"80\"\n    }\n  ]\n}\n[/block]\nOn the same OpenDNS Profile Map Summary page, under AP Group, profile contractorOD is also mapped to AP Group APgrp1.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/a1710fb-profilemap2.png\",\n        \"profilemap2.png\",\n        725,\n        318,\n        \"#f0f0f0\"\n      ],\n      \"sizing\": \"80\"\n    }\n  ]\n}\n[/block]\nFrom the CLI:\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/2c26edc-fromcli.png\",\n        \"fromcli.png\",\n        825,\n        416,\n        \"#d1d1d1\"\n      ],\n      \"sizing\": \"80\"\n    }\n  ]\n}\n[/block]\n##OpenDNS WLAN configuration modes\n\nAn administrator can configure OpenDNS on a WLAN in three modes through the WLAN advanced tab.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/4cfd61e-proxysettings.png\",\n        \"proxysettings.png\",\n        822,\n        485,\n        \"#f2f2f2\"\n      ],\n      \"sizing\": \"80\"\n    }\n  ]\n}\n[/block]\n1. DHCP Proxy for DNS override.\nInterface level config. Part of DHCP process to propagate OpenDNS ip address to all WLANs associated to Interface. Happens in the client join phase.\n2. OpenDNS Force mode: (Enabled by default)\nEnforced per WLAN, blocks intentional client activity after client has associated to WLAN.\n3. OpenDNS Ignore mode.\nWLC honors the DNS server used by the client; it could be Cisco Umbrella cloud servers or enterprise/ external DNS\n4. OpenDNS Copy mode (not included in 8.4 release).\nA copy of OpenDNS packets where all internet bound DNS traffic is forwarded to Cisco Umbrella cloud servers without any policy options (no block/redirect)\n\n\n### Cisco Umbrella Activity Reporting\n\nAn administrator can log into Cisco Umbrella to view and generate reports regarding the clients’ activity, find the infected devices, targeted users trying to access forbidden sites. These reports can be filtered by client identity, destination and source IP. \n\n1. Navigate to Reporting and select a report. For more information, see [Getting Started: Reporting Basics](https://docs.umbrella.com/product/umbrella/getting-started-learning-to-use-reports-and-exporting-reports/). \n\n### Cisco Umbrella Support\n•\tWLC supported platform- 5508,5520,7500,8510,8540. ME, vWLC is not supported\n•\tAP mode supported–Local mode, Flex central switching.\n•\t10 different Cisco Umbrella Profiles configurable on WLC\n•\tGuest (Foreign–Anchor) scenario, profile applies at Anchor WLC\n \n## Cisco Umbrella Limitations\n• A client connected to a web proxy that does not send DNS query to resolve the server address is not subject to Umbrella policy framework\n• Application or host that uses IP address directly instead of DNS to query domains are not enforced with Umbrella security policy.\n\n\n***\n[Integration for ISR 4K – Security Configuration Guide](https://docs.umbrella.com/product/hardware/) < Wireless LAN Controller Integration > [Integration for ISR G2 – Solution Guide for Umbrella](https://docs.umbrella.com/product/hardware/cisco-integrated-services-router-g2-isr-solution-guide-for-umbrella/)","excerpt":"","slug":"opendns-wlc_integration_guide","type":"basic","title":"Wireless LAN Controller Integration"}

Wireless LAN Controller Integration


## Introduction This document introduces Cisco Umbrella Wireless LAN Controller (WLC) Integration and provides general guidelines for its deployment. The purpose of this guide is to: * Provide an overview of OpenDNS WLC Integration feature * Highlight supported key features * Provide details on deploying and managing the OpenDNS feature on WLC * Help setup the Cisco Umbrella dashboard to manage the WLC in the web-based dashboard. [block:callout] { "type": "info", "title": "IMPORTANT NOTE", "body": "OpenDNS is now Cisco Umbrella; however, the feature described here is still named OpenDNS in the interface for the Wireless LAN controller. As such, this guide refers to \"OpenDNS\", \"Cisco Umbrella\", or simply \"Umbrella\" wherein all three are the same and thus interchangeable. In a future release, all names will be simply \"Cisco Umbrella\" or \"Umbrella\". As a rule of thumb, the feature within the WLC user interface is called 'OpenDNS', but the cloud-based dashboard and DNS service are both 'Cisco Umbrella'" } [/block] ### Prerequisites * AireOS 8.4 or newer is required on the Cisco Wireless LAN Controller to support Cisco Umbrella WLAN. Note: In order to upgrade to AireOS 8.4, customers must have AireOS 8.0 or higher release. * For initial registration the public facing external interface of the WLC must be able to access api.opendns.com over port 443 in order to complete initial registration. * TCP & UDP on port 53 (DNS) to 208.67.220.220 & 208.67.222.222 (The Cisco Umbrella public DNS resolvers) * DNSCrypt—If there are any devices in front of the ISR that may block DNSCrypt for not looking like an actual DNS packet, the DNSCrypt feature may not work. For more information and an example of the problem, read [here](https://support.umbrella.com/hc/en-us/articles/230562207-Cisco-ASA-Firewall-blocks-DNSCrypt). * An admin account for the Cisco Umbrella dashboard #### Components Used The information in this document was created from devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command. #### Conventions Refer to Cisco Technical Tips Conventions for more information on document conventions. ####What is Cisco Umbrella Cisco Umbrella is a cloud delivered network security service which protects devices from malware and breach protection in real time. Umbrella uses evolving big data and data mining methods to proactively predict attacks. As well, Umbrella can be configured to filter content access to websites so you can better control your network environment. Some useful terms to know: * **API Token**—Issued through the Cisco Umbrella dashboard. It is used for device registration. * **Device Identity**—A unique device identifier. Policy is enforced per identifier. * **EDNS**—An extension mechanism for DNS which carries tagged DNS packet. * **FQDN**—Fully Qualified Domain Name (eg: www.domain.com). ### How it works [block:image] { "images": [ { "image": [ "https://files.readme.io/2438abb-WLAN_images.jpeg", "WLAN images.jpeg", 945, 171, "#2b4f8d" ] } ] } [/block] For any internet data request, the DNS request always precedes web (HTTP) request. Wireless Lan Controller intercepts theDNS request from the client and redirects the query to the Cisco Umbrella (OpenDNS) server in the cloud. The Cisco Umbrella (OpenDNS) DNS resolvers are located at 208.67.222.222 and 208.67.220.220. The Umbrella (OpenDNS) service resolve the DNS query and enforces preconfigured security filtering rules on a per identity basis. If the domain is marked as malicious, Umbrella returns the IP of a block page to the client. If it is determined to be safe, Umbrella returns the resolved IP address to client. The following diagram outlines the process of registration and DNS queries between an end client computer, through the WLC and to Cisco Umbrella. [block:image] { "images": [ { "image": [ "https://files.readme.io/7dbb556-wlan-flow.png", "wlan-flow.png", 783, 404, "#1e4f6c" ] } ] } [/block] 1. WLC registration with the Umbrella server is a one-time process and happens over a secure HTTPS tunnel. 2. You must obtain an API Token for device (WLC) registration from the Umbrella dashboard. 3. Next, apply the Token on the Wireless Lan Controller. This should register the device to the Umbrella account. Next, create Umbrella Profile/s on WLC. Profiles will automatically be pushed to the Umbrella dashboard as Identities and policy can be enforced on a per identity basis. 4. Wireless client traffic flow from to the Umbrella server. 5. A wireless client sends a DNS request to WLC. 6. WLC snoops the DNS packet and tags it with an Umbrella Profile. Profile is the identity of the packet which also resides on OpenDNS. 7. This EDNS packet is redirected to the Umbrella cloud server for name resolution. 8. Umbrella then enforces a policy on it depending on the identity and applies category based filtering rules to ensure organization compliance. 9. Depending on the policy and whether a destination is considered malicious, the service either returns the IP of a block page or resolved IP address to the client for the DNS request queried. ## Configuring the OpenDNS Wireless LAN Controller Integration ### Procedure 1. Cisco Umbrella provisioning involves creating a user account on Umbrella cloud. Subscription is per account. For more information about purchasing Umbrella, please contact Cisco sales. **NOTE: Permanent License is covered under CiscoOne Advanced Subscription.** 2. Enable Wireless Controller (GUI or CLI) for Cisco Umbrella. 3. Configure profiles (identities) on WLC. Profile can be mapped to either WLAN, AP group or incorporated into local policy. 4. WLC redirects DNS packets to Cisco Umbrella cloud. 5. Security policies on Cisco Umbrella are applied per Identity. Cisco Umbrella configuration steps on Wireless Controller involve enabling Cisco Umbrella function, configuring API Token, creating Profile/s and mapping the profile to either a WLAN, an AP group or a Local Policy. The policy priority order—from highest to lowest—is: * Local Policy * AP Group * WLAN The Cisco Umbrella profile when mapped to local policy allows for a granular differentiated user browsing experience based on the dynamic evaluation of attributes (user role, device type etc). For the rest of this document, we will discuss following scenarios: • **Scenario 1**—Configure WLC for Cisco Umbrella and incorporate a Cisco Umbrella profile in a user role based local policy. We will also touch upon basic configuration on Cisco Umbrella Server. • **Scenario 2**—Configure WLC for Cisco Umbrella and apply a Cisco Umbrella profile on a WLAN and AP Group. ## Scenario 1: Configuring Local Policies for Cisco Umbrella In an organization, our goal is to restrict internet access (for particular websites) to users based on their role types. For example, regular employees should be permitted full internet access barring sites such as adult, gambling, nudity. At the same time, contractor access should be more rigid, barring access to social websites, sports, and news, as well as adult, gaming, nudity, and other such sites. We will be using an external AAA server to authenticate a user and based on the identity, pass the user role as either contractor or employee to WLC. On the WLC, user will configure two policies (for employee and contractor) and apply a different Cisco Umbrella profile to each to restrict their browsing activity when connected to the same dot1x enabled WLAN. To achieve this, we will: 1. In the Umbrella dashboard, generate an API token for device (WLC) registration. 2. In WLC, enable OpenDNS globally, apply the API token and create OpenDNS profiles for employee and contractor. 3. In the Umbrella dashboard, create category definitions/rules and policies for employees and contractors. 4. In WLC, create Local policy each for employee and contractor tying the AAA returned role and OpenDNS profile under each. 5. In WLC, tie the two local policies to the dot1x WLAN ## Scenario 1 – Procedure 1. Create your own 14 day trial account here https://signup.umbrella.com/ or get your account details from your Cisco sales rep. 2. Log in to your Umbrella account at https://login.umbrella.com/ 3. Navigate to **Identities > Network Devices** and click **GET MY API TOKEN** to generate a token. 4. Copy your API Token. [block:image] { "images": [ { "image": [ "https://files.readme.io/ab350cb-get_my_token.jpg", "get_my_token.jpg", 914, 466, "#ebebeb" ], "sizing": "80" } ] } [/block] 5. From the WLC main menu, navigate to **Controller > General** and enter a DNS Server IP address that can resolve domains. This is required for the first time before enabling Cisco Umbrella feature on the WLC. [block:image] { "images": [ { "image": [ "https://files.readme.io/17826d0-control_general.jpg", "control_general.jpg", 866, 374, "#e3e4e8" ], "sizing": "80" } ] } [/block] 6. From WLC main menu, navigate to **Security > OpenDNS > General > enable OpenDNS Global Status**. In the CLI, the command is 'config openDNS enable' 7. Paste the API Token you copied from the Umbrella dashboard. [block:image] { "images": [ { "image": [ "https://files.readme.io/b6cc71e-opendns-api.png", "opendns-api.png", 862, 182, "#375f74" ], "sizing": "80" } ] } [/block] 8. On the same page, under **Profile**, create OpenDNS profiles and click **Add**. CLI command: config openDNS profile create <*profile-name*> For this example, create two OpenDNS profiles, one for employee (employeeOD) and another for contractor (contractorOD) via CLI or GUI. These profiles are automatically pushed to your Umbrella account as Identities and you should see the State of the Profiles populated as Profile Registered. This is subject to a successful connection between the WLC and Umbrella server. [block:image] { "images": [ { "image": [ "https://files.readme.io/c224c2e-profile-name.png", "profile-name.png", 858, 338, "#e6e8e9" ], "sizing": "80" } ] } [/block] On CLI, you can verify the two profiles as shown: [block:image] { "images": [ { "image": [ "https://files.readme.io/83114f0-cli-profile.png", "cli-profile.png", 867, 435, "#d6d6d6" ], "sizing": "80" } ] } [/block] **Note:** Each OpenDNS Profile has a unique Opendns-Identity generated on controller (in the format <WLC name>_<profile name>) which will be pushed to the associated Umbrella account in the cloud. a. In the Umbrella dashboard, navigate to **Identities > Network Devices** and verify that your WLC with both Identities employeeOD and contractorOD show up under Device Name. [block:image] { "images": [ { "image": [ "https://files.readme.io/bc7c29d-device_names.jpg", "device_names.jpg", 898, 328, "#ecedec" ], "sizing": "80" } ] } [/block] b. Next, create classification rules for employee and contractor user roles selecting the domains that should be blocked for both of these roles. Navigate to **Policies > Category Settings**. We have created employeeCategory and contractorCategory for this exercise. [block:image] { "images": [ { "image": [ "https://files.readme.io/83529d0-cat_names.jpg", "cat_names.jpg", 1088, 333, "#eaebeb" ], "sizing": "80" } ] } [/block] The **employeeCategory** is blocking certain content categories; for example, Adult themes, Adware, and Gambling. The, **contractorCategory** is more restrictive, blocking, Adult themes, Adware, Gambling, Games, News, and Social Networking. Expand **employeeCategory** to view its list of blocked categories. You can edit the list to add or remove categories. [block:image] { "images": [ { "image": [ "https://files.readme.io/345f05f-cat_list.jpg", "cat_list.jpg", 945, 899, "#d4d3d4" ], "sizing": "80" } ] } [/block] 9. In Umbrella, navigate to **Policies > Policy List **and configure two policies: * EmployeePolicy * ContractorPolicy A policy wizard is available to configure each WLAN identity affected and the mapped category setting. Here, EmployeePolicy is assigned to employeeOD Identity and tied to a category employeeCategory (created in the last step). Similarly, contractorPolicy is assigned to contractorOD Identity and tied to a custom category contractorCategory created earlier. [block:image] { "images": [ { "image": [ "https://files.readme.io/b173259-2policy.jpg", "2policy.jpg", 955, 494, "#e1e1e0" ], "sizing": "80" } ] } [/block] a. Expand a policy. [block:image] { "images": [ { "image": [ "https://files.readme.io/06bbc6d-employeePolicy.jpg", "employeePolicy.jpg", 1002, 567, "#e5e7e7" ], "sizing": "80" } ] } [/block] b. Click **Edit** under **Identities Affected** to see all the identities/network devices (Pod#-WLC_employeeOD) mapped to this policy [block:image] { "images": [ { "image": [ "https://files.readme.io/9e3c6ac-policy_wizard_idents.jpg", "policy_wizard_idents.jpg", 1096, 583, "#e4e4e1" ], "sizing": "80" } ] } [/block] c. Click **Set & Return** and go to **Content Setting Applied** to verify that category settings are applied to this policy as shown below. [block:image] { "images": [ { "image": [ "https://files.readme.io/1495153-custom_setting.jpg", "custom_setting.jpg", 1082, 667, "#e7e7e6" ], "sizing": "80" } ] } [/block] 10. Configuring User Roles on ISE. a. Configure a AAA server or ISE to allow users to be 802.1x authenticated and have the server return ROLE string back to the wireless controller for local policy enforcement. As illustrated below, on the ISE, configure users, that is, employee and contractor: [block:image] { "images": [ { "image": [ "https://files.readme.io/ea4df1e-ISE.jpg", "ISE.jpg", 1341, 287, "#156eae" ], "sizing": "80" } ] } [/block] b. Next, configure groups, that is, group Employee and contractor. [block:image] { "images": [ { "image": [ "https://files.readme.io/c1edcb1-contractor2.png", "contractor2.png", 803, 396, "#e7eced" ], "sizing": "80" } ] } [/block] **Note:** In this section of ISE, we are testing with ISE internal users. If ISE is pointing to an external user database like Active Directory, the rule changes and points to the respective user AD group. c. Create an ISE policy for a specific group of users with a desired role, that is, employee or contractor. [block:image] { "images": [ { "image": [ "https://files.readme.io/c23dd6a-group-policy.png", "group-policy.png", 747, 718, "#ebecf1" ], "sizing": "80" } ] } [/block] [block:image] { "images": [ { "image": [ "https://files.readme.io/7c09ad3-adavnced_attribute_settings.jpg", "adavnced_attribute_settings.jpg", 824, 320, "#e9e9ea" ], "sizing": "80" } ] } [/block] [block:image] { "images": [ { "image": [ "https://files.readme.io/4812bd7-more_advanced_attributes.jpg", "more_advanced_attributes.jpg", 1033, 912, "#ecedf3" ], "sizing": "80" } ] } [/block] [block:image] { "images": [ { "image": [ "https://files.readme.io/a916c41-advanced_cisco.jpg", "advanced_cisco.jpg", 701, 264, "#eeeeee" ], "sizing": "80" } ] } [/block] At this point, it is assumed that administrator has configured the necessary authentication rules on ISE/AAA server for wireless users to return Authorization Profiles including access type (accept/reject) and user role (employee/contractor) as shown above. 11. Configure local policies for OpenDNS. Configure a user role based Local Policy and tie the OpenDNS profile to it. Finally, map the local policy to a particular WLAN. a. Now create two local polices for employee and contractors on the WLC. From the WLC main menu, navigate to **Security > Local Policies** and click **New**. [block:image] { "images": [ { "image": [ "https://files.readme.io/c97ea41-policies-new.png", "policies-new.png", 813, 259, "#e4e7e8" ], "sizing": "80" } ] } [/block] b. Create Local Policy name as "employee" and "contractor" and click Apply. [block:image] { "images": [ { "image": [ "https://files.readme.io/6c4739d-policy-new2.png", "policy-new2.png", 971, 138, "#dfdddc" ], "sizing": "80" } ] } [/block] c. Similarly, create another one for contractor. [block:image] { "images": [ { "image": [ "https://files.readme.io/ec26da0-policy_contract.jpg", "policy_contract.jpg", 700, 85, "#dcdcde" ], "sizing": "80" } ] } [/block] d. Click the employee Local Policy and configure it with employee OpenDNS profile (employeeOD). [block:image] { "images": [ { "image": [ "https://files.readme.io/4e9b33a-policy-new4.png", "policy-new4.png", 833, 265, "#ecefee" ], "sizing": "80" } ] } [/block] e. Under Match Criteria configure Match Role String as "employee" and under the Action list go to OpenDNS Profile. From the dropdown list, select "employeeOD" then click **Apply**. [block:image] { "images": [ { "image": [ "https://files.readme.io/d8b1f7e-role-string.png", "role-string.png", 765, 1171, "#e9e7e5" ], "sizing": "80" } ] } [/block] f. Click **Back** to go to the Local Policy page and click the contractor policy. [block:image] { "images": [ { "image": [ "https://files.readme.io/da863fc-policy-list.png", "policy-list.png", 833, 265, "#ecefee" ], "sizing": "80" } ] } [/block] g. Under Match Criteria, configure Match Role String as "contractor" and under Action, from the dropdown list OpenDNS Profile, select "contractorOD", then click **Apply** [block:image] { "images": [ { "image": [ "https://files.readme.io/a0b8d52-contractorod.png", "contractorod.png", 850, 1127, "#eae8e7" ], "sizing": "80" } ] } [/block] 12. Configure OpenDNS on WLAN. a. From the WLC main menu, navigate to **WLAN > WLAN ID > Policy-Mapping**. Assign Priority Index 1 and Select employee from the Local Policy dropdown list and click **Add**. [block:image] { "images": [ { "image": [ "https://files.readme.io/3d92c67-configure-odns1.png", "configure-odns1.png", 1081, 375, "#f0f0f0" ], "sizing": "80" } ] } [/block] b. Similarly, apply the contractor policy to the WLAN. [block:image] { "images": [ { "image": [ "https://files.readme.io/013fe4a-configure-odns2.png", "configure-odns2.png", 1016, 394, "#f0f0f0" ], "sizing": "80" } ] } [/block] As a result, a user logging in with employee credentials will be associated with "role = employee" and will be inherit employee OpenDNS profile (employeeOD) on the WLC. Similarly, a user logging in contractor credentials will be associated with "role = contractor" and will be inherit contractor OpenDNS profile (contractorOD) on the WLC. c. For the WLC to redirect all DNS for a WLAN to the OpenDNS server, the OpenDNS Mode must be set to Forced as shown below. This is done by navigating to **WLAN > Advanced**. [block:image] { "images": [ { "image": [ "https://files.readme.io/2ff7a11-advanced.png", "advanced.png", 775, 205, "#f1f1f1" ], "sizing": "80" } ] } [/block] d. Verify the following: * Connect a client to your WLAN with employee user credentials. * Try accessing sites that are blocked under the category filtering rules you created for employee. For blocked sites, client will get a display page stating the site/domain is restricted. * Try to associate to the same WLAN using contractor user credentials and repeat the test. You will notice the difference in browsing access granted to an employee versus a contractor. ## Scenario 2: Configuring WLAN/AP Group for Cisco Umbrella Similar to Local Policy, the OpenDNS profile can be attached to a WLAN or to an AP group. The following screenshots show how to tie the OpenDNS profile to a WLAN and AP group. It is assumed that the OpenDNS account is already created and that you have copied the API token. ### Procedure 1. From the WLC main menu, navigate to **Controller > General** and enter a DNS Server IP address that can resolve domains. This is needed for the first time before enabling OpenDNS feature on the WLC. The CLI command is "config opendns server-ipv4 primary <*primary-server*> secondary <*secondary-server*>". [block:image] { "images": [ { "image": [ "https://files.readme.io/34ebd15-enter-dns.png", "enter-dns.png", 800, 318, "#e2e4e6" ], "sizing": "80" } ] } [/block] 2. Enable OpenDNS globally on WLC by going to **Security > OpenDNS > General**. The CLI command is "config openDNS enable". [block:image] { "images": [ { "image": [ "https://files.readme.io/0473507-enable-opendns-global.png", "enable-opendns-global.png", 774, 149, "#d8dcde" ], "sizing": "80" } ] } [/block] 3. Configure API Token obtained from Cisco Umbrella account. The CLI command is "config openDNS api-token <*token*>". [block:image] { "images": [ { "image": [ "https://files.readme.io/a6a1a03-configure-api-tokens.png", "configure-api-tokens.png", 843, 165, "#dee3e4" ], "sizing": "80" } ] } [/block] 4. Create OpenDNS Profiles. The CLI command is "config openDNS profile create <*profile-name*>". [block:image] { "images": [ { "image": [ "https://files.readme.io/f6dc42d-create-profile.png", "create-profile.png", 813, 320, "#e6e8e8" ], "sizing": "80" } ] } [/block] 5. Map the Profile to WLAN or AP group. a. To tie the OpenDNS profile to a WLAN, navigate to **WLANs > WLAN Id > Advanced** and under OpenDNS Profile select the contractorOD profile created above. The CLI command is "config wlan opeDNS-profile <*wlan-id*> <*profile name*> enable". [block:image] { "images": [ { "image": [ "https://files.readme.io/a4ff1f1-map-profile.png", "map-profile.png", 775, 205, "#f1f1f1" ] } ] } [/block] b. To map the Profile to AP Group, go to **WLANs > Advanced > AP Groups**. Select the AP group you want and go to WLANs tab. Hover the mouse over the blue button on the right and select OpenDNS Profile. [block:image] { "images": [ { "image": [ "https://files.readme.io/b5ddf90-map-profile-2.png", "map-profile-2.png", 857, 231, "#f0f1f1" ], "sizing": "80" } ] } [/block] In the screenshot below, we selected AP Group APgrp1 and mapped contractorOD OpenDNS profile to WLAN 1. [block:image] { "images": [ { "image": [ "https://files.readme.io/248cae5-mapprofile3.png", "mapprofile3.png", 847, 258, "#e4e6e7" ], "sizing": "80" } ] } [/block] The CLI command is "command:config wlan apgroup opendns-profile <*wlan-id*> <*site-name*> <*profile-name*> enable". c. To view OpenDNS mapping, navigate to **Security > OpenDNS > General** and click **Profile Mapped Summary**. [block:image] { "images": [ { "image": [ "https://files.readme.io/32cbcec-opendnsmapping.png", "opendnsmapping.png", 806, 369, "#e6e9e9" ], "sizing": "80" } ] } [/block] Here, the OpenDNS Profile contractorOD is mapped WLAN ID 1. [block:image] { "images": [ { "image": [ "https://files.readme.io/44433c6-profilemap1.png", "profilemap1.png", 760, 343, "#f0f1f1" ], "sizing": "80" } ] } [/block] On the same OpenDNS Profile Map Summary page, under AP Group, profile contractorOD is also mapped to AP Group APgrp1. [block:image] { "images": [ { "image": [ "https://files.readme.io/a1710fb-profilemap2.png", "profilemap2.png", 725, 318, "#f0f0f0" ], "sizing": "80" } ] } [/block] From the CLI: [block:image] { "images": [ { "image": [ "https://files.readme.io/2c26edc-fromcli.png", "fromcli.png", 825, 416, "#d1d1d1" ], "sizing": "80" } ] } [/block] ##OpenDNS WLAN configuration modes An administrator can configure OpenDNS on a WLAN in three modes through the WLAN advanced tab. [block:image] { "images": [ { "image": [ "https://files.readme.io/4cfd61e-proxysettings.png", "proxysettings.png", 822, 485, "#f2f2f2" ], "sizing": "80" } ] } [/block] 1. DHCP Proxy for DNS override. Interface level config. Part of DHCP process to propagate OpenDNS ip address to all WLANs associated to Interface. Happens in the client join phase. 2. OpenDNS Force mode: (Enabled by default) Enforced per WLAN, blocks intentional client activity after client has associated to WLAN. 3. OpenDNS Ignore mode. WLC honors the DNS server used by the client; it could be Cisco Umbrella cloud servers or enterprise/ external DNS 4. OpenDNS Copy mode (not included in 8.4 release). A copy of OpenDNS packets where all internet bound DNS traffic is forwarded to Cisco Umbrella cloud servers without any policy options (no block/redirect) ### Cisco Umbrella Activity Reporting An administrator can log into Cisco Umbrella to view and generate reports regarding the clients’ activity, find the infected devices, targeted users trying to access forbidden sites. These reports can be filtered by client identity, destination and source IP. 1. Navigate to Reporting and select a report. For more information, see [Getting Started: Reporting Basics](https://docs.umbrella.com/product/umbrella/getting-started-learning-to-use-reports-and-exporting-reports/). ### Cisco Umbrella Support • WLC supported platform- 5508,5520,7500,8510,8540. ME, vWLC is not supported • AP mode supported–Local mode, Flex central switching. • 10 different Cisco Umbrella Profiles configurable on WLC • Guest (Foreign–Anchor) scenario, profile applies at Anchor WLC ## Cisco Umbrella Limitations • A client connected to a web proxy that does not send DNS query to resolve the server address is not subject to Umbrella policy framework • Application or host that uses IP address directly instead of DNS to query domains are not enforced with Umbrella security policy. *** [Integration for ISR 4K – Security Configuration Guide](https://docs.umbrella.com/product/hardware/) < Wireless LAN Controller Integration > [Integration for ISR G2 – Solution Guide for Umbrella](https://docs.umbrella.com/product/hardware/cisco-integrated-services-router-g2-isr-solution-guide-for-umbrella/)