Posture
Posture
Posture
[email protected]
What is NAC
Network Admission Control (NAC) refers to Cisco's version of Network Access Control, which restricts access
to the network based on identity or security posture. When a network device (switch, router,
wireless access point, DHCPserver, etc.) is configured for NAC, it can force user or machine authentication prior
to granting access to the network. In addition, guest access can be granted to a quarantine area for remediation
of any problems that may have caused authentication failure. This is enforced through an inline custom network
device, changes to an existing switch or router, or a restricted DHCP class. A typical (non-free) WiFi connection is
a form of NAC. The user must present some sort of credentials (or a credit card) before being granted access to
the network.
NAC components
cisco.com
High-level overview
Resources Download,
for example Posture updates,
AnyConnect pkg files Cisco cloud
Posture updates
Posture Configuration, download
Authentication/Authorization
configuration, Resources Upload
PAN
MNT
switches
Security Software
installed, Up to
Dot1X
date? MAB Configuration
Replication
USB stick is
connected?
WLCs Radius
Windows updates are
enabled? System is
up to date?
SSL ASAs
Dot1X/MAB Radius
Access-Accept
HTTP GET: google url-redirect=psn1…
redirect-acl=Posture
HTTP REDIRECT:
psn1…
TCP intercept
2. Rely on list of PSNs stored in Agent** – agent can have a special file which will have addresses of All PSNs in the
deployment so it should be possible to find the correct PSN even if redirection is not in place on NAD
2. Initial authentication – result is normally restricted access, goal is to provision agent to the client and collect
posture data. Classically initial authentication should include redirect.
3. Client provisioning – agent suitable to client OS is selected and pushed back to the user. ISE is able to discover
device OS at time of redirect,
4. Actual posture – direct communication between agent and ISE to establish device compliance status,
5. Remediation – this step is executed only if device has been marked as ‘non-compliant’. As part of remediation
Agent can execute remediation actions defined on ISE,
Cisco Compliance module is using OESIS framework from OPSWAT for detection and remediation
https://www.slideshare.net/OPSWAT/introduction-to-oesis-framework
Posture Updates – define on ISE side what can be configured as a posture policy. New updates brings to ISE knowledge about new AV products for
example along with latest definition versions* Define posture policy:
New Compliance
Module
Conditions -
OS=Windows, AND User from
AD group = IT New AV
New AV
Requirements - info
info
Symantec 15 INSTALLED Posture updates,
Compliance Module DB AND Cisco cloud
Symantec 15 UP_TO_DATE New
OESIS
version
New Compliance
Module
Symantec 15.x
aciseagent.exe vpnui.exe
acise.exe
Monitoring of events which GUI of Anyconnect
ISE discovery process
are leading to starting Interact with End User
Communication to ISE
discovery process Interact with other AC modules
:60014 :60010
End User
AC Discover relationship between modules
To see how AC modules are connected to each other we can use MS Process Explorer utility.
Note: Dot1x authentication and PC lock/unlock are not triggering Discovery process.
Session attributes – attributes which are collected by PSN during session life-cycle (authentication/authorization processes/COA). Attributes
can be collected from both external (AD, LDAP, Radius packet attributes, and so one) and internal sources (UseCase=GuestFlow, ISE Host
name/Device Type/Device Location and so one).
Session Attributes are available for making Authentication/Authorization/Client Provisioning/Posture decisions while session is ‘alive’ which
means that no Accounting-Stop has been received for the session yet.
Endpoint Attributes – attributes which are associated with specific endpoint (AKA MAC address) in the ISE database. Those attributes are
available to all PSN nodes for making an Authentication/Authorization/Client Provisioning/Posture decisions till the endpoint is presented in
the DB.
Examples of endpoint attributes: Device Identity Group, BYOD registration flag, MDM server name and so one,
ISE posture configuration components
From the components perspective ISE configuration for posture can be divided in the following parts:
Authorization – authorization profiles, and policies for processing authentication before and after
posture.
Client provisioning Configuration
From client provisioning perspective the following task are need to be done:
b. Direct resources download from cisco.com to ISE (Compliance Module), Temporary Agent
c. AC package upload (.pkg) from Admin PC to ISE. Package itself needs to be manually downloaded by admin from
cisco.com (AC posture only),
Navigate to Administration > System > Settings > Posture > Updates
Update type. Web is typically used. In case of Offline update internet
access on ISE is not needed. Update file needs to be manually obtained
from the server
URL contains XML file form which ISE can learn actual update location
Current example contains CALO Proxy Server IP/Port which needs to be used in CALO Brussels lab
b. Direct resources download from cisco.com to ISE
Following resources can be downloaded from cisco.com directly to ISE:
Temporary Agent – normally ISE has pre-downloaded temp Agent, if needed newer version can be downloaded,
Compliance modules for Windows/MAC – ISE does not have pre-downloaded compliance modules,
3.x – older version of OESIS framework, still under development but in the future will be fully replaced by 4.x
4.x – newer version of OESIS framework which support advanced posture checks like: USB, Application visibility and so one,
Posture conditions, Posture requirements and Posture policies are compliance module aware in ISE
Go to Policies > Policy Elements > Results > Client Provisioning > Resources
Select in the list resources which needs to be downloaded and press Save
c. AC package upload (.pkg) from Admin PC to ISE
Downloads Home / Security/ VPN and Endpoint Security Clients / Cisco VPN Clients / AnyConnect Secure Mobility Client / AnyConnect Secure Mobility
Client v4.x /
Save file locally and then navigate on ISE to Policies > Policy Elements > Results > Client Provisioning > Resources
Internally file has version ID (invisible to ISE admin) and in case of adding any changes to the file on ISE upon next connection attempt
agent will download new version of file.
To create AC posture profile go to Policies > Policy Elements > Results > Client Provisioning > Resources
Server name rules define to which servers (ISE PSNs) agent allowed to connect. Value here is normally FQDN wildcard. For example
*.example.com will cover psn1.example.com, psn2.example.com and so one, bout would not cover psn1.security.example.com
As a best practice it is better to disable IP address refresh if Dot1x is used for authentication (ip address change in such scenario
monitored by supplicant). If client authenticated by MAB and VLAN has to be changed after moving to ‘Compliant’ state for example then
we have to keep ‘IP address refresh’ enabled
Fro each module we can specify corresponds XML configuration file. For posture module
configuration can be created on ISE itself. For all other modules you can use corresponding
AnyConnect Profile Editor locally on your PC (for example ‘VPN profile Editor’ to create VPN XML
profile), then profiles can be uploaded to ISE using Add > Agent resources from local disk and
choose Customer Created Packages in category during upload:
To create new AC configuration navigate to Policies > Policy Elements > Results > Client
Provisioning > Resources
Note:
Client Provisioning Portal (CPP) – if user reaches this portal as a result of redirect no authentication required on the portal itself*. Main goal of the portal is
to decide which Client Provisioning policy needs to be applied to this specific User/Device by taking User-Agent attribute value from HTTP Request (to
detect OS of the device) and by taking session-id value from URL accessed by the user to get all required session attributes (for example AD groups)
Session ID value from URL. Browser getting it from the NAD at the moment of Redirect
ISE has built-in ‘Client Provisioning Portal (default)’, which you can
User-Agent Value which Browser place in HTTP request.
find by navigating to
To see value in Real-Time you can enable
Administration > Device Portal Management > Client Provisioning ‘Web Developer Mode’ in Firefox, navigate to HTML tab
and then investigate ‘Headers’ sub-tab
CPP is normally used with Dot1x based authentication since we do
not have authentication on this portal by default so we redirect user
to CPP when it has been already authenticated by Dot1x.
CPP very rare used with guest flow when guest user needs to get AC Posture as an agent
Normally if you do not wish to change color schema or logo on CPP we can leave portal unmodified.
Navigate to Work Centers > Guest Access > Portal & Components > Guest Portals
Open portal on which you would like to enable posture and navigate to section ‘Guest Device Compliance Settings’
After posture is enabled two additional components are added to the portal ‘block diagram’ on the right
g. Client provisioning policy configuration.
All modern ISE versions are having built-in client provisioning policies for all supported OSs. To adjust built-in policy according to your needs press ‘Edit’ near
policy which you would like to change
To create a new policy press on and choose where new policy needs to be placed
User/Endpoint Identity Group Endpoint OS Conditions like: What needs to be pushed back to
Policy Name client
(Internal ISE groups) ISE filters available External AD group,
resources in ‘Result’ section For posture it would be:
based on OS selected here Wireless WLAN Number
Policy status Enabled/Disabled/Monitor Standard Radius attributes taken AC configuration name
from session OR
And so one Temporary Agent file
Client Provisioning policy example for AnyConnect
This policy would be applied to users which were authenticated using PEAP and belong to AD group ‘Domain Users’ when connection is made from Windows
Device
Posture Configuration
The following configuration tasks needs to be executed from posture perspective
a. Define posture conditions – In posture conditions we specifying what exactly Agent would be looking on the device
like AV vendor/version installed, AV definition versions, Patch Management Vendor, File, Registry Key and so one
b. Define remediation actions – remediation actions describes what Agent needs to do when specific requirement is
not met. For example redirect user to internal web-site when AV is not installed, Push AV to update if definition
version is to old, Push some file from ISE to the device and so one,
c. Define posture requirements – posture requirement is an interconnect between Condition and Remediation. In
requirement we need to choose specific condition and choose what exact remediation needs to be executed if
condition is not met
d. Define posture policy – policy defines which requirements should be evaluated when specific conditional are met.
Example of conditions – User belongs to certain AD group, User connected to specific WLAN and so one,
Condition
My_AV_Check Policy
Check for Symantec Requirment My_AV_Policy
15.x installation My_AV_Requirment Conditions:
Check for My_AV_Check AD Group=IT AND EapAuthentication=EAP TLS
Remediation If Failed run AV_not_installed Result
AV_not_installed My_AV_Requirment
Redirect user to
http://software.example.com
a. Define posture conditions
You can locate posture conditions by navigating to Policy > Policy Elements > Conditions > Posture
CM 4.x only. Section to define security (AV/AM/AS) software conditions. Starting from OESIS framework 4.x AV/AS/AM were placed in the same
category called Anti-Malware
Application visibility conditions are available for CM 3.x/CM 4.x In case of 3.x administrator needs to manually specify a process name (ex:
firefox.exe). Condition can check if process is in Running state or not. For 4.x CM OESIS has list of popular application already. Condition
additionally can check if application is installed
Compound conditions can include following condition types: File/Registry/Service/Application with the logic like AMD/OR/NOT applied between
them
CM 3.x/4.x, List of supported disk encryption product depend on selected CM
version
CM 3.x/4.x, Check File properties like: FileExist, FileData/FileVersion and so
one
CM 3.x/4.x, Check if specific service is running. For example Microsoft Windows defender has the following Service name - WinDefend
CM 4.x and Windows only. Built-in condition to check if endpoint has USB
device attached
Conditions which can be used in posture policies itself. Analog of Authorization policy Simple and Compound conditions
a. Define posture conditions – AM condition example
Define an Anti-Malware condition. Same logic can be applied for AS and AV conditions
For user convenience we have a a following default conditions which become available after posture update:
Registry conditions are extremely powerful instrument to check a lot of things inside of windows operation system. Below is example shows how to check if
windows PC is member of specific Active directory domain. Exact key value has bee taken from here:
Navigate to
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\
Parameters\Domain
a. Define posture conditions – Service Condition
One of the best conditions for the posture testing in the lab is Service condition.
As a test service we can user Windows Defender which can be easily stopped/started to recreate non-compliant scenario.
3.x/4.x CM remediation for corresponding Conditions. As a remediation action AV/AM/AS product can be pushed to install
updates. Important – Updates are downloaded by AV/AM/AS product itself from the corresponding update server not form ISE.
Those remediation type can be used with conditions where ‘Definition’ is validated. Important if AV/AS/AM product is not
installed we cannot ‘update’ it
3.x/4.x CM remediation to push any fine from ISE To the endpoint. Can be used to push installation file of anti-virus for example
4.x CM remediation to enable Firewall on the endpoint. Can be used as remediation with Firewall Conditions created for CM 4.x
3.x/4.x CM remediation to run specific program on the endpoint. Can be used for example with AV/AS/AM installation checks to
launch some enterprise software management program on endpoint
3.x/4.x CM remediation for patch management products conditions. PM product can be Enabled or Updated. So those
remediation's can be used with conditions of corresponding type. Important If PM product is not installed we cannot Update it or
Enable it
3.x/4.x CM remediation to update system when Microsoft WSUS is used in enterprise to distribute patches
3.x/4.x CM remediation to change Windows update agent settings – For example enable automatic
updates
c. Define posture requirements
Posture requirements can be created by navigating to
Policy > Policy Elements > Results > Posture > Requirments
In modern ISE version you would see bunch of popular requirements preconfigured for you already with corresponding remediation's. If user end goal is to
check AV/AS/AM installation definition then default Requirements can be used. As a remediation for failed installation checks ISE uses ‘Message Text Only’
To create new requirement press on near existing requirement and select ‘Insert new requirement’
Choose
Choose Condition
Remediation
Select OS type
Only conditions/remediation for selected OS
would be available in corresponding columns
d. Define posture Policy
To define posture policy navigate to
There are a lot of preconfigured popular policies which needs to be just enabled.
When multiple policies are matching particular session (for example you have couple if policies which contain only OS Windows All and no other
conditions) then all policies are applied and endpoint has to be compliant with All mandatory requirements from All matched policies to become
compliant,
When we have no match in posture policies for specific session ‘Compliant’ status is granted automatically,
Choose your posture type:
To add your policy press on. next to the existing policy and choose your action Anyconnect
a. Authorization profiles – in simple scenario only authorization profile for ‘Unknown’ posture status needs to be created. When this
authorization profile is applied user is either redirect to CPP (user authenticated by Dot1x or Guest Portal with CPP chaining) or to the
Guest portal with ‘Posture’ enabled,
b. Authorization policies – again in the simple scenario only two authorization polices are needed to get working posture flow:
“Unknown” authorization policy – can contain whatever conditions you want plus “session-posture status”, the best way to cover all
scenarios is to use “session-posture status un-equal to Compliant”, this policy should contain “Unknown” authorization profile
“Compliant” authorization policy – same conditions as in “Unknown” just session posture status is equal to “Compliant”
Unknown Authorization policy should be normally placed under the Compliant authorization policy
Endpoint is moving between policies after ISE can determine posture status
(This is happening after posture software on end user device reported
status to ISE). COA is used to force new authorization policy.
a. Authorization profiles
To create and authorization profile navigate to
Policy > Policy Elements > Results > Authorization > Authorization Profiles
There are two ISE personas which are responsible for session processing -
Decision making during authentication/ authorization (identity store selection/authorization policy selection),
Logging of authentication result – Syslog message is transferred to Primary/Secondary MNT node upon Access-Accept or Access-Reject,
Logging of accounting activates – Syslog message is transferred to Primary/Secondary MNT node upon receiving of Accounting-Start, Accounting-
Stop, Accounting-Update,
Storing session along with all session attributes in the local session cache starting from Access-Accept till Accounting-Stop,
Removal of the session from the session-cache after Accounting-Stop is received,
Removal of the sessions from session cache if max.session.limit is reached (15k or 20k session depend on the ISE platform). In such scenario PSN use
special mechanism called similar to LRU (Least Recently Used) to locate sessions which can be removed to process new requests,
Storing session with status ‘Authenticated’ in Live Sessions DB if only Syslog on Access-Accept has been received from PSN,
Storing session with status ‘Started’ if PSN sent both Access-Accept and Accounting-Start syslog messages,
Removal of ’Authenticated’ sessions from Live Sessions DB after 1 or 2 hours (depend on ISE version)
Removal of ’Started’ session after Syslog for Accounting-Stop, or 5 days after last Accounting activity
ISE session processing how it works Live Sessions*
Username MAC Address Posture Status Status
Accounting-Stop
In situation when Accounting-Stop for the session has not been delivered to the PSN where session was actually started we are getting a phenome of ‘Stale
Session’
‘Stale Session’ is a session which stuck in PSN session cache and can be removed only if PSN reach max. session limit (15K/20K) and this particular session will
be selected by LRU algorithm,
Accounting-Stop message has not been delivered due to any kind of network issues,
Customer has a wrongly configured Load Balancer in place and Accounting-Stop has been delivered to the wrong PSN.
* - Both Live Session and Session cache are having much more attributes associated with session (Authorization Policy/AD domain/…), in this example only
Username/MAC address/Posture status are mentioned for the slide simplicity
Cisco Redirect general logic
http server – enabled, default port 80 should be used except situation when proxy
is involved
IPDT – enabled, IP device tracking is critical component for applying ACLs,
(required for multi-domain and maulti-auth)
SVI in client subnet - otherwise traffic flow between client and switch need to be
planned very carefully
DACL and redirect ACL – tricky question, will be covered on next slide separately
Switch interaction between different ACLs types
Legacy Switches (3750/3560) On Legacy platforms first DACL
Redirect URL and Port ACL are validated, if
And http/https traffic permitted it will be
checked by redirect ACL.
DACL
Redirect ACL
Port ACL
AAA override enabled – this will allow WLC to apply Redirect ACL and Redirect URL
to client
NAC=Radius NAC/ISE – without this option COA won’t be supported for WLAN,
and this will prevent applying of redirect attributes
Redirect ACL/Airspace ACL – the same recommendation as for switches.
Protection provided by redirect ACL is enough
Posture flow with Cisco Redirect
In explanations below we assume that user has no posture agent installed so we are starting
from the initial client provisioning phase, if posture agent already installed this phase is skipped
At the intercept stage here switch needs to decide how to route packet back to the client, as we have no direct reachability spoofed
packed will be sent to DG. This approach may have problem when next L3 device is doing state -full packet filtering as initial SYN packet is
not delivered to next hot so session state cannot be created.
Client provisioning and Network Setup Assistant download
NADs ISE PSN DNS
Client
15
First NSP probe is an HTTP GET to default gateway IP. (Redirect URL expected as a result)
Note: In case of VPN connection with MAC OS this probe skipped as MAC-OS doesn’t support DG on VPN
16
Second NSP probe is an HTTP GET to enroll.cisco.com (Redirect URL expected as a result)
Note: enroll.cisco.com should be successfully resolvable over corporate DNS, in case of VPN connection
17 traffic to enroll.cisco.com should be routed through the tunnel
For a quite long time using of Generic top-level domains like .local, .lan, .corp, etc
was recommended. Now this domains are being sold by ICANN and using of them are
no longer recommended.
But –
Still a lot of companies are using such domains either because it historically
happened
Or
We’re still using old good “best practices”
.local continue
Everything looks fine for corporate users, all domain PC have corporate CA certificate in trusted
store, internal DNS can successfully resolve any .local FQDNs
But sooner or later guest will come, and guest cannot trust to .local certificate Corporate CA
CN=ca.xyz.local
Issuer – Corp CA
CN=pc1.xyz.local
Issuer – Corp CA Assign to
Guest Admin/Portal/EAP
CWA CN= psn1.xyz.local
Issuer – Corp CA
psn1.xyz.local
Domain PC Posture
G0
dot1x
Admin certificate, redirect and two interfaces (CPPuse case)
Connection 8905
CN from
Certificate
doesn’t match
FQDN
19
All probes are sent
simultaneously
AnyConnect
Posture module
starts
HTTP GET Destination Default Gateway
Probe 1
Redirect expected DNS request enroll.cisco.com
DNS reply = IP
SSL over port 8905 to previous PSN if any Session lookup based on
Probe 4 information in request
No redirect expected
IPs/MACs list
Note: Starting from AC 4.4 this stage has a 5 seconds timeout. Result from probe 4 would only be used if probes 1-3 failed
Stale sessions and posture Live Sessions*
Username MAC Address Posture Status Status
Probe Bob you are compliant
3 Access-Request bob AA:AA:AA:AA:AA:AA Compliant Authenticated
Started
Authentication
Authorization
Access-Accept Syslog
Bob
Access-Accept
Bob AA:AA:AA:AA:AA:AA
Primary
Accounting-Start Syslog MNT
Accounting-Start
Accounting-Response Bob AA:AA:AA:AA:AA:AA
AA:AA:AA:AA:AA:AA
Sessions Cache*
Username MAC Address Posture Status
bob AA:AA:AA:AA:AA:AA Compliant
Probe Accounting-Stop
1
Probe Access-Request
Authentication
2 Authorization
Access-Accept Result CPP redirect
Customer configured switch improperly
so All probes which relies on redirect are
Probe failing
3
Sessions Cache*
Username MAC Address Posture Status
bob AA:AA:AA:AA:AA:AA Pending
AC posture process NADs ISE PSN
Client DNS
COA Reauth – this type of COA is used for Wired and Warless NADs, as a result of
successful COA NAD will initiate full authentication process. During this process
NAD keeps same audit-session id which allows ISE to apply new authorization
policy.
COA Push – this type of COA are used by ASA for posture over VPN use-case. At
time of posture over VPN re-authentication is impossible as it will cause
disconnect for end user. Because of this COA Push
contain new authorization attributes. This allows NAD to apply
new access-level straight away without user disconnect.
Posture with Cisco Redirect Live Demo
Posture with Cisco Redirect LAB
LAB 1: Posture with redirect and Dot1x:
1. Configure proxy on your ISE Administration > System > Settings > Proxy value for BRU 64.103.36.133:8080
2. Update posture on ISE, Administration > System > Settings > Posture > Updates > Update Now
3. Download 4.x compliance module for Windows along with latest version of Temporary agent,
- Compliance module need to be downloaded directly from ISE – Policy > Policy Elements > Results > Client Provisioning > Resources, Add > Resources from
5. Upload AC pkg to the ISE, Policy > Policy Elements > Results > Client Provisioning > Resources, Add > Agent Resources from local disk
6. Create AC posture profile with minimum required configuration, Resources, Add > NAC Agent or Anyconnect Posture Profile
7. Create AC configuration which would push VPN, Posture and DART modules back to the user, Resources, Add > Anyconnect Configuration
8. Create client provisioning policies: Policy > Client Provisioning
User Alice which belongs to AD group Alice-Group should get an AC configuration as a result of posture,
User Bob which belongs to AD group Bob-Group should get a Temp agent,
9. Create two posture requirements: Policy > Policy Elements > Results > Posture > Requirements
Firefox – to check Application Firefox condition, and run a message text as remediation “Please enable Firefox”
WinDefend – to check Windows defender condition and run a message text remediation ‘Please enable Windows Defender’
11. Configure authorization profile with redirect to CPP portal, Policy > Policy Elements > Results > Authorization > Authorization Profiles
12. Create two authorization policies one for posture Un-equal compliant applied to the ‘Domain users’ group (result redirect to CPP), and second policy with posture equal to
Compliant applied to the ‘Domain users’ group (Result Permit Access). Use Wireless Dot1x and EAP method equal to EAP-PEAP as additional conditions in those policies
Policy > Policy Sets > Default
13. Run the tests using Wired
LAB 2: Posture for guests
1. Enable Self-Registered guest portal for posture, Work Centers > Guest Access > Portal and Components > Guest Portals > Self-Registered Guest Portal
(default)
2. Create client provisioning policy like below: Policy > Client Provisioning
When User Identity group is equal to ‘Daily Guest type’ push Temp agent back to the user,
3. Create new posture policy using Requirements from previous lab. Add both requirements to policy. Configure Windows defender requirement as
Mandatory, Configure Firefox requirement to be Optional, Policy > Posture
4. Create authorization profile for CWA redirect to the Self-Registered portal, Policy > Policy Elements > Results > Authorization > Authorization Profiles
5. Create two authorization policies: Policy > Policy Sets > Default
Policy which would be applied for Wired MAB with posture status Non-equal to compliant and and profile with redirect to guest portal.
Policy which would be applied for Wired, MAB, Specific guest user type, and posture status compliant. Result should be Permit Access.
2.2 Posture flow changes H-Level Overview
With ISE 2.2 couple of major changes has been introduced to completely remove redirection in
posture flow:
CPP portal FQDN – starting from ISE 2.2 administrator can assign FQDN to the client
provision portal. End user can access this FQDN directly in browser and start client
provisioning process.
CPP portal port for entire posture process – staring from ISE 2.2 posture flow is no
longer relaying on port 8905 (protected by admin certificate) and this mean that externally
signed certificate can be used for entire flow.
Client provisioning portal FQDN – CPP portal now needs to be configured with FQDN, A
entry for which needs to be added to corporate DNS server:
CPP portal authorized users – as now user can reach CPP portal directly we would like to
ensure that user is authorized for this.
This authorization can happen in two ways:
1. SSO – when user after opening portal reached the same
PSN where network authentication has been done
session can be located based on user IP and access to
portal will be granted
2. Portal authentication – if ISE node failed to locate
network authentication based on user IP user will need to
provide credentials
2.2 Posture flow components (cont)
Client provisioning policies – as now user can reach portal directly you need to pay
special attention to CP policies configuration. In case of SSO failure only information from
the user to portal login can be used to locate correct policy (ex: AD group)
“Unknown” authorization profile – should not contain redirect at all. To limit user access
before posture state is determined you can use:
1. DACL which will allow communication to PSN nodes, DNS, DHCP and access to
remediation servers,
Access-Accept
dacl=DACL_name 3
Session lookup.
Session lookup needed for single-sign on.
ISE uses source IP for Radius session search. In case of failure user needs to
provide credentials
Client provisioning policy check:
Policy check is based on:
User Agent – retrieved from GET request, used for OS and Agent selection
Session ID – retrieved from session lookup, this value ISE uses to get all session
data (AD /LDAP group, Network Device Type/Location and so one)
psn2
7 DNS request G0
8 DNS replay 10.1.1.10
DNS
A=cpp.example.com
10.1.1.10
10.1.1.20
This is an example of successful SSO scenario, at the same time as you can see DNS server may return IP of
PSN2 when session is authenticated on PSN1, in such case SSO will fail and user will be asked to provide
credentials
2.2 Posture flow NSA and agent download
12
All probes are sent
simultaneously
AnyConnect
Posture module HTTP GET Destination Default Gateway
starts Probe 1
Redirect expected
DNS request enroll.cisco.com
DNS reply = IP
HTTP GET Destination enroll.cisco.com
Probe 2 Redirect expected
13
HTTP GET Destination Discovery Host
Probe 3 Redirect expected
Note: Stage 1 probes basically the same probes which has been used before the only difference is that in probe 4 connection
is done over CCP port and not over 8905
2.2 Posture flow PSN discovery (stage 2) PSN MNT
Session owner
SSL connection to “Call home” FQDN on port 8443, Goal is to get session owner FQDN lookup on MNT
Probe 1
Connection protected by Client Provisioning portal certificate Information
about owner
14
Session owner
lookup on MNT
SSL connection to PSNs FQDN from ConnectionData.xml on port 8443, Goal is to get session owner FQDN
Probe 2 Information
Connection protected by Client Provisioning portal certificate
about owner
Stage 2 Discovery
Probes
15 Posture process
Steps are the same as for Pre 2.2 flow
Posture without redirect and posture over VPN demo
Posture without redirect and posture over VPN LAB
LAB 3: Posture over VPN
Access:
For this Lab you can create a tunnel-group and group-policy using your ID as names on 10.48.17.254 admin/Krakow123
ASA has following AC version installed - anyconnect-win-4.6.01098-webdeploy-k9.pkg
There is an address pool with the name POOL which can be used by everyone.
6. Create separate posture policy where both Firefox and Windows defender requirements would be mandatory. This posture policy needs to be applied only
to users which are connected to your tunnel group and which are belong to AD group domain users.
VPN-Unknown – conditions: Tunnel-group name, AD group, Posture status. Result CPP redirect
VPN compliant - conditions: Tunnel-group name, AD group, Posture status. Result Permit Access
LAB 4: Posture without redirect
1. Login using RDP to 192.168.46.254 Administrator/Krakow123 and add A –record to DNS configuration like <your-id>-cpp.training.example.com which
should point to first ISE server in your POD. FQDN example skuchere-cpp.training.example.com
2. Configure DACL for ‘Posture pending’ scenario on ISE. ACL should allow: DNS, DHCP, traffic to ISE
3. Configure authorization profile for the ‘Posture pending’ (should include only DACL),
Conditions: Interface G0/7, Wired Dot1x, Domain Users, Posture pending. Result authorization profile from step 4
6. Configure new authorization policy for the Compliant state. Same conditions as in ‘Posture pending’, only posture status has to be compliant,
7. Uninstall AC form your endpoint along with removal of all AC posture files,
8. Connect endpoint to port G0/7 and provision AC from the CPP using portal FQDN,
9. Reconfigure switch to start sending authentication and accounting to the second ISE node, bounce the port, test posture again.
Windows updates Intro
On all windows machines we have special software responsible for updating the
system - Windows update agent.
Technically windows update agent can get information about required updates from
two sources:
Internet (AKA Microsoft Server in ISE config) - updates are retrieved
directly from MS servers in the internet.
Note 1: In both scenarios either Microsoft Server or Managed Server can be used
Note 2: OPSWAT is not used for Posture Agent to Windows Update agent communication in
this scenario instead MS API is queried directly.
If you would like to create requirement which is based on Cisco conditions you need to select
exact operation System in it (Windows All would not work).
Exact OS to
1
select
Installed
1
Running
Up-to-date
For the Up to date scenario remember that we use OPSWAT database to understand patch
severity. In case when compliance module has not been updated for some time information
about severity can be inaccurate. You van use “All” for this kind of scenario.