Cisco Network Admission Control, Volume II: NAC Network Deployment and Troubleshooting Jazib Frahim, CCIE No. 5459, Omar Santos, David White, Jr., CCIE No. 12021
Cisco Press Cisco Press 201 West 103rd Street Indianapolis, IN 46290 USA
ii
Cisco Network Admission Control, Volume II NAC Framework Deployment and Troubleshooting Jazib Frahim, CCIE No. 5459, Omar Santos, David White, Jr., CCIE No. 12021 Copyright © 2007 Cisco Published by: Cisco Press 800 East 96th Street Indianapolis, IN 46240 USA All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or by any information storage and retrieval system, without written permission from the publisher, except for the inclusion of brief quotations in a review. Library of Congress Catalog Card Number: 2004114756 Printed in the United States of America 1 2 3 4 5 6 7 8 9 0 First Printing November 2006 ISBN: 1-58705-225-3
Warning and Disclaimer This book is designed to provide information about the Cisco NAC Framework. Every effort has been made to make this book as complete and as accurate as possible, but no warranty or fitness is implied. The information is provided on an “as is” basis. The authors, Cisco Press, and Cisco shall have neither liability nor responsibility to any person or entity with respect to any loss or damages arising from the information contained in this book or from the use of the discs or programs that may accompany it. The opinions expressed in this book belong to the author and are not necessarily those of Cisco.
Trademark Acknowledgments All terms mentioned in this book that are known to be trademarks or service marks have been appropriately capitalized. Cisco Press or Cisco cannot attest to the accuracy of this information. Use of a term in this book should not be regarded as affecting the validity of any trademark or service mark.
Feedback Information At Cisco Press, our goal is to create in-depth technical books of the highest quality and value. Each book is crafted with care and precision, undergoing rigorous development that involves the unique expertise of members from the professional technical community. Readers’ feedback is a natural continuation of this process. If you have any comments regarding how we could improve the quality of this book or otherwise alter it to better suit your needs, you can contact us through e-mail at
[email protected]. Please make sure to include the book title and ISBN in your message. We greatly appreciate your assistance.
iii
Corporate and Government Sales Cisco Press offers excellent discounts on this book when ordered in quantity for bulk purchases or special sales. For more information please contact: U.S. Corporate and Government Sales 1-800-382-3419
[email protected] For sales otuside the U.S. please contact: International Sales
[email protected] Publisher Cisco Representative Cisco Press Program Manager Executive Editor Production Manager Development Editor Project Editor Copy Editor Technical Editors Publishing Coordinator Book Designer Cover Designer Composition Proofreader Indexer
Paul Boger Anthony Wolfenden Jeff Brady Brett Bartow Patrick Kanouse Andrew Cupp Tonya Simpson Krista Hansing Editorial Services, Inc. Darin Miller John Stuppi Vanessa Evans Louisa Adair Louisa Adair Carlisle Publishing Services Chrissy White Julie Bess
iv
About the Authors Jazib Frahim, CCIE No. 5459, has been with Cisco Systems for more than seven years. With a Bachelor’s degree in computer engineering from Illinois Institute of Technology, he started out as a TAC engineer with the LAN Switching team. He then moved to the TAC Security team, where he acted as a technical leader for the security products. He led a team of 20 engineers as a team leader in resolving complicated security and VPN technologies. Jazib is currently working as a Senior Network Security Engineer in the Worldwide Security Services Practice of Cisco’s Advanced Services for Network Security. He is responsible for guiding customers in the design and implementation of their networks, with a focus in network security. He holds two CCIEs, one in Routing and Switching and the other in Security. He also authored the Cisco Press book Cisco ASA: All-in-one Firewall, IPS, and VPN Adaptive Security Appliance (ISBN: 1-58705-209-1). Additionally, Jazib has written numerous Cisco online technical documents and has been an active member on Cisco’s online forum, NetPro. He has presented at Networkers on multiple occasions and has taught many onsite and online courses to Cisco customers, partners, and employees. Jazib is currently pursuing a Master of Business Administration (MBA) degree from North Carolina State University. Omar Santos is a Senior Network Security Consulting Engineer in the Worldwide Security Services Practice of Cisco’s Advanced Services for Network Security. He has more than 12 years of experience in secure data communications. Omar has designed, implemented, and supported numerous secure networks for Fortune 500 companies and the U.S. government, including the United States Marine Corps (USMC) and Department of Defense (DoD). He is also the author of the Cisco Press book Cisco ASA: All-in-one Firewall, IPS, and VPN Adaptive Security Appliance (ISBN: 1-58705-209-1) and many Cisco online technical documents and configuration guidelines. Prior to his current role, he was a technical leader of Cisco’s Technical Assistance Center (TAC), where he taught, led, and mentored many engineers within the organization. He is an active member of the InfraGard organization, a cooperative undertaking between the Federal Bureau of Investigation and an association of businesses, academic institutions, state and local law-enforcement agencies, and other participants that are dedicated to increasing the security of the critical infrastructures of the United States of America. Omar has also delivered numerous technical presentations to Cisco customers, partners, and other organizations. David White, Jr., CCIE No. 12021, has more than ten years of networking experience with a focus on network security. He is currently an Escalation Engineer in the Cisco TAC, where he has been for more than six years. In his role at Cisco, he is involved in new product design and implementation and is an active participant in Cisco documentation, both online and in print. David holds a CCIE in Security and is also NSA IAM certified. Before joining Cisco, David worked for the U.S. government, where he helped secure its worldwide communications network. He was born and raised in St. Petersburg, Florida, and received his Bachelor’s degree in computer engineering from the Georgia Institute of Technology.
v
About the Technical Reviewers Darrin Miller is an engineer in Cisco's security technology group. Darrin is responsible for systemlevel security architecture. He has worked primarily on policy-based admission and incident response programs within Cisco. Previous to that Darrin conducted security research in the areas of IPv6, SCADA, incident response, and trust models. This work has included protocol security analysis and security architectures for next-generation networks. Darrin has authored and contributed to several books and whitepapers on the subject of network security. He has also spoken around the world at leading network security conferences on a variety of topics. Before his eight years at Cisco, Darrin held various positions in the network security community. John Stuppi, CCIE No. 11154, is a Network Consulting Engineer for Cisco Systems. John is responsible for creating, testing, and communicating effective techniques using Cisco product capabilities to provide protection and mitigation options to Cisco customers facing current or expected security threats. John also advises Cisco customers on incident readiness and response methodologies and assists them in DoS and worm mitigation and preparedness. John is a CCIE and a CISSP, and he holds an Information Systems Security (INFOSEC) professional certification. In addition, John has a BSEE from Lehigh University and a Master of Business Administration degree from Rutgers University. John lives in Ocean Township, New Jersey, with his wife, Diane, and his two wonderful children, Thomas and Allison.
Dedications I would like to dedicate this book to my parents, Frahim and Perveen, who support and encourage me in all of my endeavors. I would also like to dedicate it to my siblings, including my brother, Shazib; my sisters, Erum and Sana; my sister-in-law, Asiya; and my cute nephew, Shayan; and my newborn niece, Shiza, for their patience and understanding during the development of this book. —Jazib I would like to dedicate this book to my lovely wife, Jeannette, and my two beautiful children, Hannah and Derek, who have inspired and supported me throughout the development of this book. I would also like to dedicate this book to my parents, Jose and Generosa. Without their knowledge, wisdom, and guidance, I would not have achieved many of my goals. —Omar I would like to dedicate this book to my wife, Holly, who has patiently put up with me (or the lack of me) during this writing process. And to our newborn son, Blake, who reminds us every day how much joy can be found in small things. I would also like to dedicate this to my loving parents, David and Connie, who have always supported me and pushed me to strive for perfection and to be the best I can be. And to my sister, Patricia, who is a true genius and someone I have always looked up to. Finally, I would not be the person I am without the strong influence that Jimmy Collins, Art and Shirley Cheek, and Brenda Markland have had on my life. To each, I am eternally grateful. —David
vi
Acknowledgments We would like to thank the technical editors, John Stuppi and Darrin Miller, for their time and technical expertise. They verified our work and provided recommendations on how to improve the quality of this manuscript. Special thanks go to Jay Biersbach for reviewing this book before final editing. We would like to thank the Cisco Press team, especially Brett Bartow and Andrew Cupp, for their patience, guidance, and consideration. Their efforts are greatly appreciated. Additionally, special thanks go to the NAC product and development teams, especially to Russell Rice, Jason Halpern, David Anderson, Thomas Gary Howard, and Darrin Miller for their unlimited support. Many thanks to our managers, William Beach, Ken Cavanagh, Mike Stallings, and Joe Dallatore, for their continuous support throughout this project. Finally, we would like to acknowledge the Cisco TAC. Some of the best and brightest minds in the networking industry work there, supporting our customers often under very stressful conditions and working miracles daily. They are truly unsung heroes, and we are all honored to have had the privilege of working side by side with them in the trenches of the TAC.
vii
Contents at a Glance Part I
NAC Overview 3
Chapter 1
NAC Solution and Technology Overview 5
Part II
Configuration Guidelines 27
Chapter 2
Cisco Trust Agent 29
Chapter 3
Cisco Secure Services Client 91
Chapter 4
Configuring Layer 2 NAC on Network Access Devices 123
Chapter 5
Configuring Layer 3 NAC on Network Access Devices 155
Chapter 6
Configuring NAC on Cisco VPN 3000 Series Concentrators 175
Chapter 7
Configuring NAC on Cisco ASA and PIX Security Appliances 211
Chapter 8
Cisco Secure Access Control Server 241
Chapter 9
Cisco Security Agent 323
Chapter 10
Antivirus Software Integration 343
Chapter 11
Audit Servers 355
Chapter 12
Remediation 381
Part III
Deployment Scenarios 393
Chapter 13
Deploying and Troubleshooting NAC in Small Businesses 395
Chapter 14
Deploying and Troubleshooting NAC in Medium-Size Enterprises 419
Chapter 15
Deploying and Troubleshooting NAC in Large Enterprise 451
Part IV
Managing and Monitoring NAC 479
Chapter 16
NAC Deployment and Management Best Practices 481
Chapter 17
Monitoring the NAC Solution Using the Cisco Security Monitoring, Analysis, and Response System 497
Part V
Appendix 543
Appendix A Answers to Review Questions 545
viii
Contents Foreword xxi Introduction nxxii Part I
NAC Overview 3
Chapter 1
NAC Solution and Technology Overview 5 Network Admission Control 5 NAC: Phase I 7 NAC: Phase II 9 Periodic Revalidation 11 NAC Agentless Hosts 11 NAC Program Participants 12 Components That Make Up the NAC Framework Solution 12 Cisco Trust Agent 12 Cisco Security Agent 14 Network-Access Devices 15 Cisco IOS Router 16 Cisco Catalyst Switch Running Cisco IOS or CAT OS 17 Cisco VPN 3000 Series Concentrator 20 Cisco ASA 5500 Series Adaptive Security Appliance and PIX 500 Series Security Appliance 21 Cisco Wireless Devices 21 Cisco Secure Access Control Server 22 Event Monitoring, Analysis, and Reporting 23 Summary 24 Review Questions 24
Part II
Configuration Guidelines 27
Chapter 2
Cisco Trust Agent 29 Preparing for Deployment of CTA 30 Supported Operating Systems 31 Minimum System Requirements 32 Installation Packages and Files 32 Deploying CTA in a Lab Environment 34 CTA Windows Installation 34 CTA Windows Installation with the 802.1X Wired Supplicant 35 Installing the CTA Admin 802.1X Wired Client 35 Creating a Customized Deployment Package 36 Installing the Customized CTA 802.1X Wired Windows Client 41
ix
CTA Mac Installation 42 Extracting the Installation Disk Image 43 Installing CTA on Mac OS X Using the Installation Wizard 43 CTA Linux Installation 45 Installing the CA Certificate 46 Installing a CA Certificate (or ACS Self-Signed Certificate) on Windows 46 Installing a CA Certificate (or ACS Self-Signed Certificate) on Mac OS X 47 Installing a CA Certificate (or ACS Self-Signed Certificate) on Linux 47 Post-Certificate Installation Tasks 47 User Notifications 48 Customizing CTA with the Optional ctad.ini File 48 [main] Section 49 [EAPoUDP] Section 51 [UserNotifies] Section 51 [ServerCertDNVerification] Distinguished Name-Matching Section 53 [Scripting_Interface] Section 55 Example ctad.ini 55 CTA Scripting Interface 57 Requirements for Using the Scripting Interface 58 Step 1: Create a Posture Data File 58 Step 2: Create an .inf File 60 Step 3: Add Attributes to ACS Dictionary 61 Executing the Scripting Interface 62 CTA Logging Service 63 Creating a ctalogd.ini File 64 Using the clogcli Utility 68 Deploying CTA in a Production Network 70 Deploying CTA on Windows 72 Deploying CTA on Mac OS X 75 Deploying CTA on Linux 76 Troubleshooting CTA 77 Installation Issues 77 Communication Issues 78 System Logs 80 CTA Client Fails to Receive a Posture Token 81 CTA 802.1X Wired Client 82 CTA Wired Client System Report Utility 82 Viewing the Client Logs and Connection Status in Real Time 85 Client Icon Does Not Appear in System Tray 85 Client GUI Does Not Start 85
x
Client Does Not Prompt for Password 86 Wireless Client Is Immediately Dissociated after 802.1X Authentication 86 Client Is Disconnected (Suspended) 87 Chapter Summary 87 References 87 Review Question 87 Chapter 3
Cisco Secure Services Client 91 Installing and Configuring the Cisco Secure Services Client 92 Minimum System Requirements 93 Installing the Cisco Secure Services Administrative Client 93 Configuring the Cisco Secure Services Administrative Client 94 Creating a Network Profile 94 Defining Trusted Servers 101 Deploying the Cisco Secure Services Client in a Production Network 102 End-User Client Deployment Installation Prerequisite 103 Creating End-User Client-Configuration Files 103 Creating the License File 111 Deploying the End-User Client 112 Viewing the Current Status of the Cisco Secure Services Client 113 Windows Wireless Zero Configuration 115 Troubleshooting the Cisco Secure Services Client 115 System Report Utility 115 Viewing the Client Logs and Connection Status in Real Time 117 Client Icon Does Not Appear in System Tray 118 Client GUI Does Not Start 118 Client Does Not Prompt for Password 119 Wireless Client Is Immediately Dissociated after 802.1X Authentication 119 Client Is Disconnected (Suspended) 119 Summary 120 References 120 Review Question 120
Chapter 4
Configuring Layer 2 NAC on Network Access Devices 123 NAC-L2-IP 123 Architecture of NAC-L2-IP 123 Configuring NAC-L2-IP 125 NAC-L2-IP Cisco IOS Configuration 126
xi
NAC-L2-IP Cisco CatOS Configuration 130 NAC Nonresponsive Hosts 132 Troubleshooting NAC-L2-IP 133 Useful show Commands 133 EoU Logging 136 Useful Debugs 137 NAC-L2-802.1X 139 Architecture of NAC-L2-802.1X 139 Configuring NAC-L2-802.1X 142 NAC-L2-802.1X Cisco IOS Configuration 142 NAC-L2-802.1X Cisco CatOS Configuration 144 MAC Authentication Bypass 144 Troubleshooting NAC-L2-802.1X 145 Configuring NAC-L2-802.1X on Cisco Wireless Access Points 147 Summary 151 Review Questions 152 Chapter 5
Configuring Layer 3 NAC on Network Access Devices 155 Architectural Overview of NAC on Layer 3 Devices 155 Configuration Steps of NAC on Layer 3 Devices 158 Step 1: Configuring AAA Authentication 159 Step 2: Defining the RADIUS Server 160 Step 3: Specifying the Interface Access Control List 161 Step 4: Configuring the NAC Parameters 162 Step 5: Defining the NAC Intercept Access Control List (Optional) 162 Step 6: Setting Up the Exception Policies (Optional) 163 Step 7: Configuring the Clientless Host Parameters (Optional) 165 Step 8: Optimizing the NAC Parameters (Optional) 166 Monitoring and Troubleshooting NAC on Layer 3 Devices 168 Useful Monitoring Commands 168 Troubleshooting NAC 170 Summary 171 Review Questions 172
Chapter 6
Configuring NAC on Cisco VPN 3000 Series Concentrators 175 Architectural Overview of NAC on Cisco VPN 3000 Concentrators 175 Cisco Software Clients 176 Microsoft L2TP over IPSec Clients 179
xii
Configuration Steps of NAC on Cisco VPN 3000 Concentrators 181 VPN Configuration on the VPN 3000 Concentrator 182 Step 1: Group Configuration 182 Step 2: User Authentication 183 Step 3: Address Assignment 186 Step 4: Mode-config Assignment 189 VPN Configuration on the Cisco VPN Client 189 NAC Configuration on the VPN 3000 Concentrator 193 Step 1: Setting Up NAC Global Parameters 193 Step 2: Configuring the NAC Exception List 194 Step 3: Enabling NAC on User Groups 198 Testing, Monitoring, and Troubleshooting NAC on Cisco VPN 3000 Concentrators 200 Remote-Access IPSec Tunnel Without NAC 200 Remote-Access IPSec Tunnel from an Agentless Client 203 Remote-Access IPSec Tunnel from a CTA Client 205 Summary 208 Review Questions 208 Chapter 7
Configuring NAC on Cisco ASA and PIX Security Appliances 211 Architectural Overview of NAC on Cisco Security Appliances 211 Stateless Failover for NAC 211 Per-Group NAC Exception List 212 Configuration Steps of NAC on Cisco Security Appliances 212 VPN Configuration on the Security Appliances 213 Step 1: Enabling ISAKMP 214 Step 2: Creating the ISAKMP Policy 214 Step 3: Configuring Remote-Access Attributes 214 Step 4: Defining the Tunnel Type 216 Step 5: Configuring ISAKMP Preshared Keys 217 Step 6: Configuring User Authentication 217 Step 7: Assigning an IP Address 218 Step 8: Defining the IPSec Policy 219 Step 9: Setting Up a Dynamic Crypto Map 220 Step 10: Configuring the Crypto Map 220 Step 11: Applying the Crypto Map to an Interface 220 Step 12: Configuring Traffic Filtering 221 VPN Configuration on the Cisco VPN Client 221 NAC Configuration on the Cisco Security Appliances 221 Step 1: Setting Up NAC Global Parameters 222 Step 2: Configuring NAC Authentication 224
xiii
Step 3: Enabling NAC on a User Group-Policy 225 Step 4: Configuring the NAC Exception List 228 Testing, Monitoring, and Troubleshooting NAC on Cisco Security Appliances 229 Remote-Access IPSec Tunnel Without NAC 230 Remote-Access IPSec Tunnel from an Agentless Client 232 Remote-Access IPSec Tunnel from a CTA Client 234 Monitoring of NAC Sessions 235 Summary 238 Review Questions 238 Chapter 8
Cisco Secure Access Control Server 241 Installing ACS 242 Installation Prerequisites 242 Installing ACS on a Windows Server 243 Upgrading from Previous Versions of ACS Server 246 Post-Installation Tasks 246 Launching the ACS GUI on Windows 2003 246 Creating an ACS Administrator Account 247 Disabling Automatic Local Logins 247 Initial ACS Configuration 248 Configuring Network Device Groups (Optional) 249 Adding Network Access Devices 250 Configuring RADIUS Attributes and Advanced Options 251 Installing Certificates 252 Installing a Certificate from a CA 253 Using ACS to Generate a Self-Signed Certificate 256 Installing the CA Certificate in ACS 257 Editing the Certificate Trust List 258 Configuring Global Authentication Protocols 259 Creating Network Access Profiles Using NAC Templates 262 Posture Validation 264 Internal Posture-Validation Policies 266 Editing the NAC-SAMPLE-CTA-Policy 267 Creating a Policy to Validate the Windows Service Pack 270 Creating a Policy to Check for a Specific Windows Hotfix 272 External Posture Validation and Audit Servers 274 Miscellaneous Posture-Validation Options 275 Posture-Validation Rule Ordering 275 Posture-Validation Rule Cloning 275 Deleting a Posture-Validation Rule 276 Notification String 276
xiv
Posture Enforcement 276 Downloadable IP ACLs 276 VLAN Assignment 280 Policy-Based ACLs 281 RADIUS Authorization Components 282 Network Access Profiles 286 Protocols Policy 288 Authentication Policy 289 Posture Validation Policy 290 Authorization Policy 294 Network Access Filtering 295 NAC Agentless Hosts 298 Centralized Agentless Host Policy for NAC-L3-IP and NAC-L2-IP 299 Centralized Agentless Host Policy for NAC-L2-802.1X (MAC Authentication Bypass) 299 Configuring the Agentless Host Policy on ACS 300 User Databases 305 Importing Vendor Attribute-Value Pairs 306 Enabling Logging 307 Configuring Failed Attempts Logging 307 Configuring Passed Authentications Logging 309 Configuring RADIUS Accounting Logging 311 Replication 313 Troubleshooting ACS 313 Enabling Service Debug Logging 314 Setting the Services Logging Level to Full 314 Viewing the Logs 315 Invalid Protocol Data 317 RADIUS Posture-Validation Requests Are Not Mapped to the Correct NAP 318 RADIUS Dictionaries Missing from the Interface Configuration Section 318 Certificate Issues—EAP-TLS or PEAP Authentication Failed During SSL Handshake in Failed Attempts Log 318 Summary 318 Review Questions 319 Chapter 9
Cisco Security Agent 323 Cisco Security Agent Architecture 324 CSA MC Rule Definitions 325 Global Event Correlation 327
xv
Installing Cisco Security Agents Management Center 328 Configuring CSA NAC-Related Features 331 Creating Groups 331 Creating Agent Kits 333 System State and NAC Posture Changes 336 Summary 339 Review Questions 340 Chapter 10
Antivirus Software Integration 343 Supported Antivirus Software Vendors 343 Antivirus Software Posture Plug-Ins 344 Antivirus Policy Servers and the Host Credential Authorization Protocol (HCAP) 345 Adding External Antivirus Policy Servers in Cisco Secure ACS 346 Summary 352 Review Questions 352
Chapter 11
Audit Servers 355 Options for Handling Agentless Hosts 355 Exception Lists in the NADs 355 MAC Authentication Bypass 356 Audit Servers 357 Architectural Overview of NAC for Agentless Hosts 358 Configuring Audit Servers 361 Installation of QualysGuard Scanner Appliance 362 Configuration of QualysGuard Scanner Appliance 363 Configuration of CS-ACS Server 366 Step 1: Loading the ADF 367 Step 2: Defining the QualysGuard Scanner Appliance 368 Step 3: Setting Up Network Access Profiles for Audit Server 370 Step 4: Configuring Shared Profiles 371 Step 5: Setting Up Authorization Policy for Network Access Profiles 373 Step 6: Installing QualysGuard Root CA into CS-ACS (Optional) 373 Monitoring of Agentless Hosts 374 Monitoring Agentless Hosts on QualysGuard Scanner 375 Monitoring CS-ACS Logs 376 Monitoring Agentless Hosts on a Cisco NAD 377
xvi
Summary 378 Review Questions 378 Chapter 12
Remediation 381 Altiris 381 Altiris Network Discovery 384 Importing Attribute Files to Cisco Secure ACS 385 Setting External Posture Validation Audit Server on Cisco Secure ACS 386 Installing the Altiris Network Access Agent and Posture Plug-In 386 Exception Policies 387 Creating Posture Policies on the Altiris Notification Server 387 PatchLink 388 Summary 390 Review Questions 390
Part III
Deployment Scenarios 393
Chapter 13
Deploying and Troubleshooting NAC in Small Businesses 395 NAC Requirements for a Small Business 395 Small Business Network Topology 397 Configuring NAC in a Small Business 399 Cisco Secure ACS 399 End-User Clients 405 Switches 406 Web Server 411 Troubleshooting NAC Deployment in a Small Business 411 show Commands 411 EAP over UDP Logging 413 Cisco Secure ACS Logging 413 Certificate Issues: EAP-TLS or PEAP Authentication Failed During SSL Handshake 414 Missing or Incorrect Root CA Certificate 414 Incorrect Time or Date 415 Summary 416 Review Questions 416
Chapter 14
Deploying and Troubleshooting NAC in Medium-Size Enterprises 419 Deployment Overview of NAC in a Medium-Size Enterprise 419 The User Network 421 The Management Network 422
xvii
The Quarantine Network 423 Business Requirements for NAC in a Medium-Size Enterprise 424 Medium-Size Enterprise NAC Solution Highlights 425 Enforcement Actions 426 Steps for Configuring NAC in a Medium-Size Enterprise 427 Catalyst 6500 CatOS Configuration 427 VPN 3000 Concentrator Configuration 430 Audit Server Configuration 432 Altiris Quarantine Solution Configuration 433 Trend Micro Policy Server Configuration 434 Cisco Secure ACS Configuration 435 Import ADF Files 435 Configure Network Access Filters 435 Create Posture-Validation Policies 436 Set Up Trend Micro Policy Server 437 Set Up Altiris Server 438 Set Up QualysGuard Scanner 438 Configure Shared Components Profile 439 Configure Posture-Validation Rules for NAPs 441 Configure Authorization Rules for NAPs 442 CSA-MC Server Configuration 443 End-User Clients 443 Monitoring and Troubleshooting NAC in a Medium-Size Enterprise 444 Diagnosing NAC on Catalyst 6500 Switch 444 Diagnosing NAC on a VPN 3000 Concentrator 446 Cisco Secure ACS Logging 448 Summary 448 Review Questions 448 Chapter 15
Deploying and Troubleshooting NAC in Large Enterprises 451 Business Requirements for Deploying NAC in a Large Enterprise 452 Security Policies 452 Enforcement Actions 453 Design and Network Topology for NAC in a Large Enterprise 453 Branch Office 454 Regional Office 456 Headquarters 457 Call Center 458 Human Resources, Finance, and Sales Departments 459
xviii
Engineering 459 Conference Center 459 Data Center 460 Remote Access VPN 460 VLAN Assignments at the Headquarters with NAC-L2-802.1X 461 Configuring NAC in a Large Enterprise 463 ACS 463 Configuring NAC-L2-802.1X 464 Cisco Secure ACS Database Replication 466 End-User Clients 472 Switches 472 Troubleshooting NAC Deployment in a Large Enterprise 473 show Commands 473 debug Commands 474 ACS Logs and CS-MARS 475 Summary 475 Review Questions 475 Part IV
Managing and Monitoring NAC 479
Chapter 16
NAC Deployment and Management Best Practices 481 A Phased Approach to Deploying NAC Framework 481 Readiness Assessment 482 Stakeholders 483 Initial Lab Environment 483 Lab Isolation 484 Lab Management 484 Test Plans 485 Limited-Production Pilot Site 486 Initial Tuning 486 Final Deployment Strategy 487 Provisioning of User Client Software 488 CSA Management 489 Maintaining NAC Policies 491 Keeping Operating System Policies Up-to-Date 491 Keeping Your Antivirus Policies Up-to-Date 492 Maintenance of Remediation Servers and Third-Party Software 492 Technical Support 492 Education and Awareness 493
xix
End-User Education and Awareness 493 Help-Desk Staff Training 494 Engineering and Networking Staff Training 494 Summary 494 References 494 Review Questions 495 Chapter 17
Monitoring the NAC Solution Using the Cisco Security Monitoring, Analysis, and Response System 497 CS-MARS Overview 497 Setting Up Cisco IOS Routers to Report to CS-MARS 499 Defining the Cisco IOS Router as a Reporting Device within CS-MARS 500 Configuring the Cisco IOS Router to Forward Events to CS-MARS 502 Setting Up Cisco Switches to Report to CS-MARS 504 Defining the Cisco Switch as a Reporting Device within CS-MARS 505 Configuring the Cisco Switch to Forward Events to CS-MARS 508 Configuring ACS to Send Events to CS-MARS 509 Defining ACS as a Reporting Device within CS-MARS 509 Configuring Logging on ACS 511 Configuring 802.1X NADs in ACS to Report to CS-MARS 513 Installing the pnlog Agent on ACS 514 Configuring CSA to Send Events to CS-MARS 518 Defining CSA-MC as a Reporting Device within CS-MARS 518 Configuring CSA-MC to Forward Events to CS-MARS 520 Configuring VPN 3000 Concentrators to Send Events to CS-MARS 521 Defining the VPN 3000 Concentrator as a Reporting Device within CS-MARS 521 Configuring the VPN 3000 Concentrator to Forward Events to CS-MARS 523 Configuring the Adaptive Security Appliance and PIX Security Appliance to Send Events to CS-MARS 524 Defining the ASA/PIX Appliance as a Reporting Device within CS-MARS 524 Configuring the ASA/PIX Appliance to Forward Events to CS-MARS 526 Configuring QualysGuard to Send Events to CS-MARS 527 Generating Reports in CS-MARS 528 NAC Report—Top Tokens 530 NAC Report—Infected/Quarantine—Top Hosts 531 NAC Report—Agentless (Clientless) Hosts 532 Creating Scheduled NAC Reports 533
xx
Troubleshooting CS-MARS 535 Events from a Specific Device Are Not Showing Up 535 Submitting an Inline Query for All Raw Messages 535 Using tcpdump to Display Packets from a Device 536 Events Are Showing Up from an Unknown Reporting Device 536 Trouble Discovering a Monitored Device 537 Summary 537 Reference 537 Review Questions 538 Part V
Appendix 543
Appendix A Answers to Review Questions 545 Chapter 1 545 Chapter 2 546 Chapter 3 548 Chapter 4 549 Chapter 5 551 Chapter 6 552 Chapter 7 554 Chapter 8 555 Chapter 9 558 Chapter 10 559 Chapter 11 561 Chapter 12 562 Chapter 13 563 Chapter 14 565 Chapter 15 566 Chapter 16 567 Chapter 17 568 Index 572
xxi
Command Syntax Conventions The conventions used to present command syntax in this book are the same conventions used in the IOS Command Reference: • Boldface indicates commands and keywords that are entered literally as shown. In actual configuration examples and output (not general command syntax), boldface indicates commands that are manually input by the user (such as a show command). • Italics indicate arguments for which you supply actual values. • Vertical bars (|) separate alternative, mutually exclusive elements. • Square brackets [ ] indicate optional elements. • Braces { } indicate a required choice. • Braces within brackets [{ }] indicate a required choice within an optional element.
xxii
Foreword Cisco pioneered Network Admission Control (NAC) in 2003. Until then, client and network security were two disjointed worlds and islands, with little linkage between them. NAC has been an industrywide effort to overcome this gap and create explicit trust boundaries and policies that did not exist before. Today, NAC is more than technology or product only. It is a system, requiring important architectural and design guidelines as well as collaboration between industry partners. Cisco's NAC alliance has grown from three to more than 75 partners in the past three years. Successfully deploying and troubleshooting the Cisco NAC solution requires thoughtful builds and design of NAC in branch, campus, and enterprise topologies, of any size network. It requires a practical and methodical view toward building layered security and management with troubleshooting, auditing, and monitoring capabilities. NAC has unified wired with wireless, networks with devices, and transcends traditional boundaries for security decisions. The authors of Cisco Network Admission Control, Volume II: Deployment and Troubleshooting, Omar Santos, David White Jr., and Jazib Frahim, are industry veterans in network security, switching, and customer deployments, with cumulative expertise of more than 20 years. I hope you enjoy their comprehensive, informative, and thoughtful review of NAC highlighting real-world recommendations. Jayshree V. Ullal Cisco Systems, Inc. Senior Vice President, Datacenter, Switching, and Security Technology Group August 22, 2006
xxiii
Introduction This book is the second volume of Cisco Network Admission Control from Cisco Press. The first volume, NAC Architecture and Design, examines the protocols used in NAC and covers each individual component’s function in detail. Design guidance is provided to assist the reader in implementing NAC in an existing network infrastructure. This includes examining existing hardware and software to determine whether it is NAC capable, providing suggestions for logical enforcement points, and offering guidance on defining an admissions policy. This book focuses on the key components that make up NAC and how one can successfully deploy and troubleshoot each component as well as the overall solution. Emphasis is placed on real-world deployment scenarios, and the reader is walked step by step through the individual component configurations. Along the way, best practices are called out along with mistakes to avoid. Component-level and solution-level troubleshooting techniques are also presented. Three common deployment scenarios are covered in Part III, “Deployment Scenarios.” They include a small business, a medium-size enterprise, and a large enterprise. Each topology builds on the previous one and adds additional components of NAC to the solution. The small business becomes the branch (or remote) office in the enterprise topologies, while the medium-size enterprise becomes a separate geographically located part of the large enterprise design. This approach also demonstrates how one can phase in NAC in any size network.
Who Should Read This Book? This book serves as a guide for any network professional who wants to implement the Cisco NAC Framework solution in a network to identify, prevent, and adapt to threats. It systematically walks the reader through installing, configuring, deploying, troubleshooting, and maintaining the NAC solution. Any network professional should be able to use this book as a guide to successfully deploy NAC in a network. The requirements of the reader include a basic knowledge of TCP/IP and networking, familiarity with Cisco routers/switches and their CLI, and a general understanding of the overall NAC Framework solution.
How This Book Is Organized Part I includes Chapter 1, which provides an overview of the NAC Framework solution and the technology and components used to implement it. The remainder of the book is divided into three parts. Part II encompasses Chapters 2 through 12 and covers the installation, configuration, deployment, and troubleshooting of the individual components that make up the NAC solution. The chapters should be read in order, but if you are not using one of the components of the NAC solution in your network, you will want to skip the corresponding chapter. Part III encompasses Chapters 13 through 15, which cover how to deploy and troubleshoot the overall NAC solution in your network. Each deployment chapter builds off the previous; therefore, they should
xxiv
be read in order. However, if you are deploying NAC in only a small business, you will want to skip the chapters devoted to deploying NAC in an enterprise. Part IV encompasses Chapters 16 and 17, which explain how to manage and monitor the NAC solution. Some readers might find it useful to read Chapter 16 after Chapter 1. This will get your mind thinking about the overall tasks and processes in your business that need to be lined up before deploying NAC. The core chapters, Chapters 2 through 17, cover the following topics: Part II, “Configuration Guidelines,” includes the following chapters: • Chapter 2, “Cisco Trust Agent”—This chapter covers the installation, configuration, deployment, and troubleshooting of the Cisco Trust Agent (CTA). CTA is a small application, installed on end hosts in the NAC solution that provides posture information about the end host to ACS. • Chapter 3, “Cisco Secure Services Client”—This chapter covers the installation, configuration, deployment, and troubleshooting of the Cisco Secure Services Client. The Cisco Secure Services Client is a full-featured wired and wireless 802.1X supplicant that natively supports NAC Framework by passing posture credentials through an EAP-FAST tunnel within the Layer 2 802.1X session. • Chapter 4, “Configuring Layer 2 NAC on Network-Access Devices”—This chapter covers the configuration, operation, and troubleshooting of both Layer 2 IP and Layer 2 802.1X NAC on network-access devices. • Chapter 5, “Configuring Layer 3 NAC on Network-Access Devices”—This chapter discusses the packet flow in an IOS NAD when NAC is enabled and then provides detailed steps to configure Layer 3 NAC on the NAD. This chapter also covers how to monitor and troubleshoot the NAC sessions by examining various log and debug messages. • Chapter 6, “Configuring NAC on Cisco VPN 3000 Series Concentrators”—This chapter starts by covering the packet flow in a concentrator when NAC is enabled. Next, detailed configuration steps to enable NAC on the concentrator are provided, followed by a section on monitoring the remote-access VPN tunnels. For troubleshooting purposes, this chapter closes by covering various debug and log messages to help you isolate the issues related to remoteaccess tunnels and NAC. • Chapter 7, “Configuring NAC on Cisco ASA and PIX Security Appliances”—This chapter covers the configuration required to enable NAC on the ASA or PIX security appliance for remote-access tunnels. In addition, for troubleshooting purposes, various debug and log messages are explained to help you isolate the issues related to remote-access tunnels and NAC. • Chapter 8, “Cisco Secure Access Control Server”—At the core of NAC is the Cisco Secure Access Control Server. It is often considered the “brains” of NAC because ACS interprets the posture credentials returned from the end hosts and assigns a posture token and policy to them. This chapter covers an overview of ACS and walks the reader step by step through the installation and configuration of ACS for NAC. ACS logging is covered along with a troubleshooting section, which focuses on troubleshooting NAC issues on ACS.
xxv
•
Chapter 9, “Cisco Security Agent”—This chapter starts with an overview of the Cisco Security Agent and then walks the reader step by step through the installation of the management center and creation of agent kits. The remainder of the chapter focuses on NAC-specific features in CSA, such as the capability to dynamically activate or deactivate rules based on system posture token returned. • Chapter 10, “Antivirus Software Integration”—This chapter looks at the antivirus software vendors that interoperate with the NAC Framework. Installation of the antivirus posture plugin on CTA is covered along with the HCAP protocol (the protocol used to communicate between ACS and antivirus servers). Finally, the reader is walked systematically through the configuration steps necessary to add an antivirus policy server to ACS. • Chapter 11, “Audit Servers”—This chapter looks at the integration of the QualysGuard Scanner appliance into the NAC Framework solution. This chapter provides step-by-step configuration for both the Cisco devices and the QualysGuard Scanner appliance. • Chapter 12, “Remediation”—Remediation servers provide a way of automatically patching end hosts to bring them into compliance with network policies. This chapter examines the software provided by two of the remediation server vendors, Altiris and PatchLink. Part III, “Deployment Scenarios,” includes the following chapters: • Chapter 13, “Deploying and Troubleshooting NAC in Small Businesses”—This is the first of three chapters in the deployment section of the book. It focuses on the small business and what requirements a typical small business would have when deploying NAC in the network. After the requirements are defined, an example small business network is provided and the topology is reviewed. Next, the reader is walked through detailed steps on configuring ACS and the network devices to enable NAC-L2-IP and enforce the requirements drawn up earlier in the chapter. Finally, techniques for troubleshooting the NAC solution are covered. • Chapter 14, “Deploying and Troubleshooting NAC in Medium-Size Enterprises”—This chapter focuses on the requirements of a medium-size enterprise to protect its network from both internal and external unknown threats. Based on the requirements, a solution is presented to the company. This chapter shows step-by-step configurations of all the devices involved. We discuss NAC-L2-IP on a Catalyst switch and NAC-L3-IP on a VPN3000 concentrator. The configurations of an Altiris server for remediation and a QualysGuard server for agentless hosts auditing are also covered. We walk through the steps required to configure ACS and define all the policies. • Chapter 15, “Deploying and Troubleshooting NAC in Large Enterprises”—This chapter builds off the previous two deployment chapters and focuses on the large enterprise (greater than 5,000 users and multiple geographic locations). The requirements of the branch, regional, and headquarters sites are covered. Within the headquarters site, different policies are created for each of the following: executive floor, call center, human resources, finance, sales, engineering, conference center, and data center. Topics such as high availability and scalability are also covered.
xxvi
Part IV, “Managing and Monitoring NAC,” includes the following chapters: • Chapter 16, “NAC Deployment and Management Best Practices”—Some readers may find it useful to read this chapter first. The first half of the chapter is focused on the process of successfully deploying NAC in your network. Topics such as completing a readiness assessment, talking with stakeholders, deploying NAC in a lab, and creating test plans are covered. The second half of the chapter covers the following topics: provisioning user/client software (CTA and third-party software), handling CSA management, maintaining NAC policies, providing technical support, and performing education and awareness of end users as well as the support staff. • Chapter 17, “Monitoring the NAC Solution Using the Cisco Security Monitoring, Analysis, and Response System”—This chapter discusses how to monitor the NAC solution using the Cisco Security Monitoring, Analysis, and Response System (CS-MARS). Detailed instructions on how to configure the individual components of NAC to report to CS-MARS are covered, along with the reporting capabilities of CS-MARS. Troubleshooting the CS-MARS appliance is also covered.
This page intentionally left blank
PART
I
NAC Overview Chapter 1
NAC Solution and Technology Overview
This chapter covers the following topics:
• • •
Introduction to Network Admission Control Review of NAC Phase I and Phase II architecture Overview of the components that make up the NAC Framework solution, including: — Cisco Trust Agent — Cisco Security Agent — Network-access devices — Cisco Secure Access Control Server — Event monitoring, correlation, and reporting
CHAPTER
1
NAC Solution and Technology Overview One of the biggest challenges corporations face today is securing the internal network. When the words network security are mentioned, most people immediately associate this phrase with protecting their network from external threats. Few people think of the internal threats that already exist. Unpatched end-host systems, out-of-date antivirus signatures, and disabled or nonexistent personal firewalls all weaken the internal security of corporate networks and make them vulnerable to data theft and attacks. Preventing or limiting these hosts’ access to the corporate network has been difficult to do until now. Cisco Systems has launched the Self-Defending Network Initiative (SDNI) to dramatically improve the network’s capability to identify, prevent, and adapt to threats. A key part of this initiative is Network Admission Control (NAC). NAC is a multipart solution that validates the security posture of the endpoint before admitting it on the network. If admitted, NAC can also be used to define what resources the endpoint has access to, based on the endpoint’s overall security posture. This chapter is meant to provide you with an overall review of the NAC Framework solution. We start by covering what NAC is and why companies would want to deploy it. Then we cover an architectural overview of the initial NAC solution (NAC Phase I), followed by an architectural overview of the current NAC solution (NAC Phase II). In the remainder of the chapter, we provide an overview of the individual components that make up NAC. Each component has a dedicated chapter in this book where we cover the installation, configuration, and steps to troubleshoot that component in the NAC solution. After reading this chapter, you should be familiar with the concepts and components that make up the NAC Framework and should be ready to start installing and configuring NAC in your network. If you are unfamiliar with NAC or are interested in learning more about the architecture of the NAC solution, we invite you to read Cisco Network Admission Control, Volume I: NAC Architecture and Design (ISBN 1587052415), published by Cisco Press.
Network Admission Control Reports of data and identity theft have become hot topics in the news recently. Unfortunately, they have also become fairly common, often resulting in millions of dollars’ worth of damage to the companies affected. Traditionally, network security professionals
6
Chapter 1: NAC Solution and Technology Overview
have focused much of their time securing the front door to their networked companies— their Internet presence. Stateful firewalls often sit at the gateways, and, in most cases, these are supplemented with inline intrusion-prevention devices (IPS), antivirus scanners, and denial-of-service (DoS) mitigation devices. Behind this virtual fortress of protection sit hardened servers, which serve up the corporate web presence. Many companies are proud of their investment in this type of security and advertise this fact. Now, don’t get me wrong—this type of security is important. However, sometimes in the zeal to make the web presence secure, we forget that a huge threat exists from within. It is becoming mandatory these days for employees to have access to the Internet; often it is a critical component of their jobs. However, have you thought about devices that your employees are using to access the Internet? How secure are they? If they are corporate assets, they should have the corporate antivirus software installed and possibly a personal firewall. But how do you know the employee has not disabled one or more of these and thereby reduced the security of not only the device, but also your internal network, and opened it up to threats? While you are pondering that thought, let me give you another. How many noncorporate assets connect to your network? How many employees bring in their personal laptop, their personal digital assistant (PDA), or even their cell phone and connect it to the corporate network? What about partners and outside vendors? How much control do you have over these devices? Imagine what could happen if a rootkit or some other Trojan back door was installed on one of these devices and now has access to your internal network. How many confidential documents or corporate secrets could be stolen by attackers within? It is often easier to consider the mistakes or ignorance of others, but how many times have you been guilty of letting the security of your own PC lapse? How many times have you been notified of a new critical security patch for your laptop or desktop and clicked the Not Now button, choosing instead to install it later? I am sure all of us are guilty of this; I know I am. Installing security patches, especially to the operating system, usually results in the mandatory reboot. This usually comes at the worst time of the day, when shutting down your applications and rebooting is not an option. So we make a mental note to install the patches when we leave for the day, but how many times do we actually follow through? More often than not, weeks or months could go by before we find the time to install the patches. During this time, the PC remains susceptible to the targeted attack. Although I have highlighted only a few of the common threats to the internal security of your corporate network, I am sure you can think of many more. Home users connecting via a VPN tunnel, remote sales forces connecting from the local hotspot or hotel, partners with direct site-to-site tunnels to your company—the list goes on. These are the types of threats NAC was designed to protect you against and eliminate. NAC is a Cisco-led, multivendor initiative focused on eliminating threats to the corporate network caused by insecure endpoints attaching to the network. In its simplest form, NAC
Network Admission Control
7
defines a set of policies that are used to evaluate the security posture of an endpoint that wants to join the network. The endpoint can be a PC, a PDA, a server, an IP phone, a printer, and so on. Based on the security posture of the endpoint, it can be given unrestricted access to the network—if it meets all the security requirements. Devices that fail to fully satisfy the security requirements can be quarantined where autoremediation ensues. (Remediation servers can automatically push out patches and updates to software running on the endpoints to improve their security posture.) Alternatively, devices can be denied access to the network altogether, or they can be placed in their own VLAN and given limited access to the network. All of these actions are fully configurable, along with the security policy to be enforced.
NAC: Phase I Cisco rolled out NAC in a series of phases. Phase I was launched in the summer of 2004. It includes using Cisco routers as the enforcement point, running Cisco IOS Release 12.3(8)T or later. When NAC is deployed on Cisco IOS routers, it is called NAC-L3-IP because the router operates at Layer 3 (the IP layer) and contains noncompliant endpoints using Layer 3 Access Control Lists (ACLs). As endpoints attempt to access devices through the router, they are queried to determine their security posture. Based on the endpoint’s security posture, a security policy for the endpoint is pushed down to the router that permits or restricts access. Figure 1-1 shows a NAC-L3-IP architecture overview. Figure 1-1
NAC-L3-IP Architecture Overview 1
IP 2 EAPoUDP PEAP Client
Router
Antivirus Server
ACS
3 RADIUS PEAP 4
5 HCAP
6 7 8
IP
Internet
Follow along in Figure 1-1 as we walk through each step of this process: 1. The endpoint sends a packet, which passes through the router, on to its destination.
The packet matches the Intercept ACL applied to the router’s interface, which triggers the NAC-L3-IP posture-validation process. 2. The router initiates an EAP over UDP (EAPoUDP) tunnel to the Cisco Trust Agent
(CTA) on the endpoint. This is the first part in setting up a secure tunnel between the endpoint and the Cisco Secure Access Control Server (ACS).
8
Chapter 1: NAC Solution and Technology Overview
3. Next, the router initiates a RADIUS tunnel to the Cisco Secure ACS server. This is
the second part in establishing a secure tunnel between the endpoint and Cisco Secure ACS. 4. With the EAPoUDP and RADIUS tunnels established, the Cisco Secure ACS server
establishes a Protected Extensible Authentication Protocol (PEAP) tunnel with the endpoint and queries it for posture credentials. The posture credentials are sent to Cisco Secure ACS using EAP type-length-values (EAP-TLVs). The EAP-TLVs allow for any number of posture credentials to be returned from the end device. 5. (Optional) Cisco Secure ACS proxies some of the posture credentials to additional
validation servers (in this case, an antivirus server) using the Host Credentials Authorization Protocol (HCAP). 6. Cisco Secure ACS analyzes the end host’s security posture by passing the posture
credentials through rules, defined by the administrator in Cisco Secure ACS, or by sending them to external posture-validation servers. The host is then assigned an overall security posture, based on those results. The overall security posture is then forwarded to the router, along with the associated access list, which restricts the host’s access to the network, based on its security posture. 7. (Optional) Cisco Secure ACS can also send a message to the endpoint, which, in turn,
is displayed to the user to provide notification about the security posture of the host. Cisco Secure ACS can also redirect the user’s browser to a remediation server, where patches and updates can be applied. 8. If the host is deemed “healthy” (its security posture meets the requirements of the
company), it is permitted to access the network unrestricted. The protocols used in Figure 1-1 are discussed in more detail in later chapters. For now, it is important to know only that the posture credentials and security policy are carried over authenticated and encrypted tunnels for added security. Figure 1-2 illustrates the relationship among these protocols in a graphical way. The PEAP-encrypted tunnel is carried over both the RADIUS and EAPoUDP tunnels. It contains the EAP-TLVs used to determine the host’s posture.
IPC AV Client Host
DLL
Posture Agent
Graphical Representation of Protocols Used in Phase I NAC
Posture Plug-in
Figure 1-2
EAP-TLV (Posture + Posture Notification) PEAP PEAP EAPoUDP RADIUS NAD
HCAP ACS
AV Server
Network Admission Control
9
NAC: Phase II Cisco launched NAC Phase II in the summer of 2005. Phase II expands on Phase I by placing NAC capabilities into several more product lines, including the Catalyst line of switches, the VPN 3000 series concentrators, the ASA 5500 series and PIX 500 series security appliances, the Aironet wireless access points, and the Wireless LAN Service Module. With these new additions, the enforcement point has moved to the network edge, providing enforcement and containment at a port (or host) level instead of at the gateway. These additions also created some new terminology:
•
NAC-L2-IP—The term NAC-L2-IP is used when NAC is applied to a Catalyst switch, on a per-port basis. You can think of NAC-L2-IP as being identical to NAC-L3-IP, but the enforcement policy is an IP-based ACL applied to a switch port instead of a routed port. Likewise, the protocol flow as defined in Figure 1-1 is the same for NAC-L2-IP. One other difference between NAC-L2-IP and NAC-L3-IP is that, in NAC-L2-IP, the posture assessment is triggered when the switch port receives a Dynamic Host Configuration Protocol (DHCP) packet or an Address Resolution Protocol (ARP) packet from the endpoint attempting to connect to the network. Then the switch establishes the EAPoUDP tunnel to the endpoint to start the posture-validation process.
•
NAC-L2-802.1X—The term NAC-L2-802.1X is used when NAC is applied to a switch port along with 802.1X authentication. 802.1X provides for both user- and machine-based authentication of the endpoint before the switchport forwards any traffic to the network. NAC-L2-802.1X adds security posturing to 802.1X by way of the Extensible Authentication Protocol–Flexible Authentication via Secure Tunneling (EAP-FAST) protocol. Thus, the posture credentials are carried through EAP-FAST over a Transport Layer Security (TLS) tunnel from the endpoint directly to Cisco Secure ACS. Consequently, an 802.1X supplicant that supports EAP-FAST is needed for NAC-L2-802.1X. When NAC-L2-802.1X is enabled and a PC is connected to a switch port, 802.1X authentication and posture validation occur within the same EAP transaction. The posture credentials are included within the EAP-FAST messages that are transmitted on top of the 802.1X protocol. However, unlike NAC-L3-IP and NAC-L2-IP, posture enforcement is done not through ACLs but instead solely through VLAN assignment.
Figure 1-3 illustrates NAC-L2-802.1X on a switch that uses 802.1X authentication as the Layer 2 protocol.
10
Chapter 1: NAC Solution and Technology Overview
Figure 1-3
NAC-L2-802.1X Architecture Overview Client
1
Link
2
802.1X
Switch
3
Antivirus Server
ACS
RADIUS 4
EAP-Fast
5
7
HCAP
6 8
9 10
Internet
Follow along in Figure 1-3 as we walk through the process of what happens when an endpoint connects to a switch with NAC-L2-802.1X enabled on the port: 1. The end device is attached to a switch port. 2. As the link comes up, the client’s 802.1X supplicant initiates an authentication request
with the switch via 802.1X. 3. The user’s (or machine's) credentials are sent from the switch to the Cisco Secure ACS
server via RADIUS. 4. The Cisco Secure ACS server authenticates the user (or machine). 5. CTA and Cisco Secure ACS now establish an EAP-FAST tunnel over the existing
802.1x and RADIUS sessions. 6. The Cisco Secure ACS server queries CTA for posture credentials using the EAP
tunnel. 7. (Optional) Cisco Secure ACS optionally proxies some of the posture credentials to
additional validation servers (in this case, an antivirus server) using HCAP. These validation servers can notify the agents on the endpoint and trigger their own updates. 8. Cisco Secure ACS applies the security policy to the retrieved posture credentials, and
the host is assigned an overall posture. This security posture is forwarded to the switch along with the associated VLAN to be applied to the port the host is connected to. 9. (Optional) Based on the posture credentials, Cisco Secure ACS can send a message to
the end host to be displayed to the user or can redirect the browser to a remediation server. The remediation server can automatically push out patches and updates to the endpoint to bring it in compliance with the corporate security policy. 10. The host is now permitted (or denied) access to the network, based on its posture and
the VLAN it is assigned to.
Network Admission Control
11
Periodic Revalidation Periodic revalidations are built into the NAC-L3-IP and NAC-L2-IP solution. The networkaccess device (NAD) initiates the process by periodically polling validated endpoints to determine whether a change has been made in their posture. CTA alerts the NAD of any changes on the end host, and the NAD then issues a full revalidation and posture assessment. This security measure prevents users from validating their host and then lowering their security posture after they have been granted access to the network. Additionally, a separate revalidation timer requires all active hosts to be fully revalidated every 30 minutes, by default. This enables the network administrator to change the security policy on the fly. All already-validated end hosts must meet this new policy when their revalidation timer expires. The following example further illustrates this point: Bob, the network administrator of example.com, receives a new alert about a critical security vulnerability in Microsoft Windows. Realizing the security impact that this vulnerability might have on his network, Bob immediately modifies his NAC security policy to require the hotfix that addresses this vulnerability to be applied on all end hosts on his network. Because it is during the day, most users validated their machines on the network when they arrived in the morning. Without periodic revalidation, Bob would have to wait until each user disconnects and reconnects to the network before the endpoint is revalidated. However, the revalidation timer solves this by requiring all active, validated hosts to be fully revalidated every 30 minutes (by default).
NAC Agentless Hosts A NAC agentless host (NAH) (or a clientless endpoint) is a device that does not have CTA installed. Therefore, it cannot respond to the EAPoUDP or EAP-FAST request from the NAD. A printer, a webcam, an IP phone, and a guest PC are all examples of NAHs. Individual policies can be defined on the NAD for NAHs. The policy can be designed to exclude a specific MAC or IP address or a range of addresses. Alternatively, a global policy can be defined on Cisco Secure ACS for NAHs. After the EAPoUDP or EAP-FAST session times out, the NAD can notify Cisco Secure ACS of the NAH, and Cisco Secure ACS can apply the appropriate authorization rights. We look at NAHs in more detail in Chapters 4, “Configuring Layer 2 NAC on Network-Access Devices,” through 8, “Cisco Secure Access Control Server.” Another option for NAHs (which is part of NAC Phase II) is to use an audit server to scan the host for the services running on it and potential vulnerabilities. Cisco Secure ACS instructs the audit server on which hosts to scan by using the Generic Authorization Message Exchange (GAME) protocol. When the scan is complete, the audit server returns the results to Cisco Secure ACS through the GAME protocol, and Cisco Secure ACS uses these results to apply a security posture and overall policy to the end host.
12
Chapter 1: NAC Solution and Technology Overview
NAC Program Participants Cisco Systems leads the NAC program, but is open to any vendor that wants to participate. To ensure interoperability, Cisco requires all vendors shipping NAC-enabled code to have it tested either by an independent third-party testing center or by Cisco Systems. At the time of publication, more than 75 vendors were enrolled in the NAC program. A current list of program participants is maintained by Cisco at http://www.cisco.com/web/partners/pr46/ nac/partners.html.
Components That Make Up the NAC Framework Solution The following sections examine the individual components that make up the NAC Framework solution. Although only an overview is provided here, each component is covered in detail in its associated chapter in this book.
Cisco Trust Agent Cisco Trust Agent (CTA) is a small software application (approximately 3MB) that is installed locally on a PC and that allows Cisco Secure ACS to communicate directly with the PC to query it for posture credentials. Some common posture credentials are the OS name, the service pack installed, and specific hotfixes applied. Table 1-1 lists the posture credentials that CTA supports or for which CTA is a broker. CTA is a core component of NAC and is the only communications interface between the NAD and the applications that reside on the PC. It receives posture credential queries from Cisco Secure ACS, brokers them to the correct application, and then forwards the application responses to Cisco Secure ACS. CTA has three key responsibilities (see Figure 1-4):
•
Communication—Provides a communications link with the NAD using EAPoUDP or EAP-FAST.
•
Security—Authenticates the device requesting posture credentials and ensures that all information is sent out encrypted on the wire.
•
Broker—Provides an application programming interface (API) to query other applications running on the system and notifies them of the current system posture so they can react to posture changes.
Components That Make Up the NAC Framework Solution
Table 1-1
13
Posture Credentials Supported by CTA Application CTA (version 2)
Posture Credentials CTA version Operating system name Operating system version Installed service packs Installed hotfixes Custom credentials returned through the optional scripting interface
Cisco Security Agent (CSA)*
CSA version CSA status (enabled/disabled) Fully qualified domain name (FQDN) of Cisco Security Agent Management Center (CSA-MC) Last poll of CSA
Antivirus*
Antivirus software name or identifier Software version Scan engine version DAT/pattern file version DAT/pattern file release date Antivirus enabled/disabled On-access scan enabled
Other software*
Varies by vendor
*CTA must be installed and acts as a broker agent to forward the posture credentials to Cisco Secure ACS.
Figure 1-4
Responsibilities of CTA AV Client
CSA
Any App
Broker / EAP-TLV API Cisco Trust Agent
Security L2/L3 Communications EAPoUDP & EAPo802.1X Physical Connection
14
Chapter 1: NAC Solution and Technology Overview
NOTE
CTA is involved only in the posture query and response process; it does not take part in any enforcement action on its own. Thus, if a user disables (or removes) CTA, the host becomes clientless (a NAC agentless host). However, it still cannot bypass the NAC validation process and be granted unrestricted access to the network. Instead, the NAC agentless host policy takes effect, which can greatly restrict or even deny access to the network. This is unlike common personal firewall software or antivirus software, in which disabling the application lessens the protection provided.
Software Availability and Operating System Support CTA is available free of charge to all registered Cisco.com users at http://cisco.com/ cgi-bin/tablebuild.pl/cta. CTA supports the Windows NT, Windows 2000, Windows XP, Windows 2003, Red Hat Linux, and MAC OS 10.3 host operating systems. Internationalization support for CTA includes English, Japanese, Korean, French, Spanish, Arabic, Hebrew, and Russian.
CTA also includes an 802.1X supplicant bundled with it that supports EAP-FAST when running NAC. The 802.1X supplicant is needed to implement NAC-L2-802.1X. However, the 802.1X supplicant is limited to wired interfaces only—no wireless interfaces. Chapter 2, “Cisco Trust Agent,” fully covers the installation, configuration, operation, and troubleshooting of CTA.
Cisco Security Agent Cisco Security Agent (CSA) is the Cisco award-winning host-based intrusion-prevention system (HIPS) installed on a desktop or server PC that protects it from known and unknown threats. CSA adds a shim into the network layer and into the kernel layer (to watch both network traffic and API calls to kernel). This allows CSA to not only be a personal firewall, but also to protect against buffer-overflow attacks and spyware/adware. In addition, it provides file protection, malicious application protection, and operating-system integrity protection. CSA is one of the few HIPS products that provide true protection against “Day Zero” attacks. Starting with version 4.5, CSA integrates seamlessly with NAC through CTA. CTA queries CSA to establish the presence of the agent and determine whether it is in protect mode. This information is part of the posture credentials returned to Cisco Secure ACS and is used to determine the end host’s overall security posture. Based on this posture, Cisco Secure ACS can apply a policy that alters the state of CSA. CSA’s state change dynamically activates additional rules within CSA, thereby providing another level of protection to the host.
Components That Make Up the NAC Framework Solution
15
Cisco Security Agent Management Center (CSA MC) provides a powerful, scalable application used to manage all agents. When an agent is installed on a host, it first registers with CSA MC and downloads any updates to its rule set. Thereafter, the agent periodically polls CSA MC to check for any new software or rule updates. Besides the configuration and software update function, CSA MC receives real-time security events from the agents and immediately displays them in the Event Monitor for the network administrator to see. In addition, CSA MC correlates the events, received from all agents in the network, to detect suspicious activity across several hosts. If similar threats are detected across several agents, CSA MC creates and deploys dynamic rules to all the agents to provide an additional layer of protection against this newly spreading threat. Chapter 9, “Cisco Security Agent,” covers the installation, configuration, and operation of CSA.
Software Availability and Operating System Support CSA MC versions 4.5 and 5.0 are a separately licensed product under the CiscoWorks VMS umbrella. They are supported on Windows 2000 Server and Windows 2000 Advanced Server. CSA MC Version 5.1 and higher are standalone products (no longer part of VMS) and are supported on Windows 2003 R2 Standard and Enterprise editions. CSA MC is capable of managing up to 100,000 agents in distributed mode. CSA agents are supported on the following operating systems: Windows 2003, Windows XP, Windows 2000, Windows NT, Solaris, and Red Hat Linux. Internationalization is supported on Windows 2000 and later and includes all languages except Arabic and Hebrew. Localization is included for English, French, German, Italian, Japanese, Korean, Simplified Chinese, and Spanish language desktops. The agent UI, events, and help system all appear in the language of the end user's desktop. Additional information can be found online at http://www.cisco.com/go/csa/. Licensed users of CSA MC can obtain software updates at http://www.cisco.com/cgi-bin/ tablebuild.pl/csa.
See Chapter 9 for installation and configuration information about CSA and CSA MC.
Network-Access Devices NADs query the CTA installed on the endpoint. In NAC Phase I, the NAD could be only an IOS router. In Phase II, any of the following devices can be a NAD:
• • •
Cisco IOS router Cisco Catalyst Switch running Cisco IOS or CAT OS Cisco VPN 3000 series concentrator
16
Chapter 1: NAC Solution and Technology Overview
NOTE
•
Cisco ASA 5500 series adaptive security appliances and PIX 500 series security appliances
•
Cisco wireless access device
Future phases of NAC will continue to expand the list of supported network devices.
Cisco IOS Router Cisco IOS routers first supported NAC in Cisco IOS Release 12.3(8)T, in the Advanced Security, Advanced IP Services, or Advanced Enterprise Services feature sets. Table 1-2 lists Cisco IOS routers by platform and current NAC capability.
NOTE
For the most up-to-date list of NAC-enabled routers, check online at http://www.cisco.com/ go/nac/.
Table 1-2
NAC Support in IOS Routers 7500 series
Cisco Router Platform
NAC Support Yes
7300 series
Yes
7200 series
Yes
7100 series
No
4500 series
No
3800 series
Yes
3700 series
Yes
3640, 3640A, 3660-ENT series
Yes
3620, 3660-CO series
No
2800 series
Yes
2600XM series, 2691
Yes
2600 series (non-XM Models)
No
1800 series
Yes
1701, 1711, 1712, 1721, 1751, 1751-V, 1760
Yes
1710, 1720, 1750
No
830 series
Yes
AS5850, AS5400, AS5400HPX, AS5350
No
Components That Make Up the NAC Framework Solution
17
When NAC is implemented on a router, this is called NAC-L3-IP. That is, the security enforcement point becomes the Layer 3 gateway instead of the physical port into which the end host is plugged. Posture validation is triggered by defining an intercept ACL on the router’s interface. Any traffic arriving on the interface from a nonpostured source that matches the intercept ACL triggers the posture-validation process, as illustrated in Figure 1-1. When the overall security posture of the host is determined, Cisco Secure ACS sends a host-based downloadable ACL to the router to restrict, prohibit, or permit that client’s access to the network. Thus, policy enforcement takes place at Layer 3 with an ACL on the router’s interface.
Online Resource: Cisco Routers For more information about the line of IOS routers available from Cisco Systems, visit http://www.cisco.com/go/routers/.
See Chapter 5, “Configuring Layer 3 NAC on Network-Access Devices,” for more information on configuring and troubleshooting NAC on a Cisco IOS router.
Cisco Catalyst Switch Running Cisco IOS or CAT OS Catalyst switches first supported NAC in the summer of 2005 across various platforms and release trains. One benefit of adding NAC on the switch is enhanced posture-enforcement capabilities through containment. On Cisco IOS routers, policy enforcement was applied with a downloadable ACL on the router’s interface. This enabled the administrator to restrict (or even deny) the endpoint’s access through the router. However, the endpoint could not be restricted from sending packets to Layer 2–adjacent devices (because those packets did not traverse the router and, therefore, would not be subject to the downloadable ACL). However, on access switches, the endpoints are typically directly connected to a physical port on the switch. This allows for policy enforcement (through VLAN or ACL) as well as containment (because the endpoint is typically the only device connected to that port). Catalyst switches can implement NAC on a per-port basis at Layer 2 or Layer 3. As mentioned previously in this chapter, when NAC is implemented at Layer 2, it is known as NAC-L2-802.1X because 802.1X is used as the underlying Layer 2 transport protocol. When NAC is implemented on a switch at Layer 3, it is known as NAC-L2-IP. NAC-L2-802.1X and NAC-L2-IP have several administrative and operational differences that you should fully consider before selecting which one to deploy.
18
Chapter 1: NAC Solution and Technology Overview
The following are attributes of NAC-L2-802.1X:
• • • • •
802.1X authentication must be implemented on the switch.
•
Endpoints must be directly connected, or be connected through an IP phone.
The client’s 802.1X supplicant triggers authentication and posture validation. The client’s 802.1X supplicant must be CTA aware. Posture enforcement is provided by VLAN assignment only. EAP-FAST authenticates CTA to Cisco Secure ACS; therefore, no client-side certificate is needed.
The following are attributes of NAC-L2-IP:
•
Posture validation is triggered when the switch receives Address Resolution Protocol (ARP) packets from the endpoint. Optionally, Dynamic Host Configuration Protocol (DHCP) snooping can be enabled on the port to trigger posture validation when the switch receives the first DHCP packet.
• • •
Posture enforcement is provided by downloadable ACLs.
• •
URL redirection of the endpoint’s web browser to a remediation server is supported.
VLAN assignment is not supported. EAPoUDP is used to communicate between CTA and the NAD. PEAP is used between CTA and Cisco Secure ACS. Endpoints can be directly connected, connected through an IP phone, or connected through a shared-media device (hub, non-NAC-capable switch, and so on.)
No “right” or “wrong” choice exists between the two. But there is a best choice for your network. If you don’t know what that choice is, read Cisco Network Admission Control, Volume I: NAC Architecture and Design, which walks through several design scenarios, discusses the options available, and provides the rationale for the choices made. An additional consideration (and probably the most important one) is which one will run on your existing switch hardware. Table 1-3 should come in handy in making that determination; it lists the various models of Catalyst switches and their NAC capabilities based on the OS.
NOTE
For the most up-to-date list of NAC-enabled switches, check online at http:// www.cisco.com/go/nac/.
Components That Make Up the NAC Framework Solution
Table 1-3
19
NAC Support in Catalyst Switches
Platform, Supervisor 6500 - Sup32, Sup720
OS Native IOS
NAC-L2-802.1x Planned
NAC-L2-IP Yes, 12.2(18)SXF2
NAC-L3IP Planned
NAC Agentless Host Yes, NAC-L2-IP
6500 – Sup2
Native IOS
No
No
No
No
6500 – Sup32, Sup720, Sup2
Hybrid
Yes, 8.5
Yes, 8.5
No
Yes, NAC-L2-IP
6500 – Sup32, Sup720, Sup2
Cat OS
Yes, 8.5
Yes, 8.5
No
Yes, NAC-L2-IP
6500 – Sup1A
All
No
No
No
No
5000 Series
All
No
No
No
No
4900 Series
IOS
Yes, 12.2(25)SG
Yes, 12.2(25)SG
Planned
Yes, NAC-L2-IP
4000/4500 Series – SupII+, II+TS, II+10GE, IV, V, V-10GE
Cisco IOS
Yes, 12.2(25)SG
Yes, 12.2(25)SG
Planned
Yes, NAC-L2-IP
4000 – SupI, II, and III
All
No
No
No
No
3750, 3560
Cisco IOS; advanced IP services, IP services, IP base
Yes, 12.2(25)SED
Yes, 12.2(25)SED
No
Yes, NAC-L2-IP
3550
Cisco IOS; IP services and IP base
Yes, 12.2(25)SED
Yes, 12.2(25)SED
No
Yes, NAC-L2-IP
3500XL, 2900XL
All
No
No
No
No
2970
Cisco IOS; LAN base
Yes, 12.2(25)SED
No
No
No
2960
Cisco IOS; LAN base
Yes, 12.2(25)SED
No
No
No
2950
Cisco IOS; EI, SI
Yes, 12.1(22)EA6
No
No
No
2955, 2940
Cisco IOS
Yes, 12.1(22)EA6
No
NO
No continues
20
Chapter 1: NAC Solution and Technology Overview
Table 1-3
NAC Support in Catalyst Switches (Continued)
No
NAC-L3IP No
NAC Agentless Host No
No
No
No
No
No
No
No
No
Platform, Supervisor 2948G-GE-TX
OS Cat OS
NAC-L2-802.1x No
1900
All
Express 500
Cisco IOS
NAC-L2-IP
Catalyst switches are an integral part of the NAC solution, providing protection and containment of hosts that do not meet corporate security policies at the access layer. As such, Cisco is committed to providing NAC support on all new switch hardware. Online Resource: Cisco Catalyst Switches You can find more information about the Cisco Catalyst line of high-performance LAN switches at http://www.cisco.com/go/catalyst/. See Chapter 4 for more information on configuring and troubleshooting NAC on a Catalyst switch.
Cisco VPN 3000 Series Concentrator NAC support for the VPN 3000 series concentrators was first added in Release 4.7. The concentrator is a Layer 3 NAD and postures remote-access IPSec (or Layer 2 Tunneling Protocol [L2TP] over IPSec) clients. The posturing process is almost identical to that of NAC-L3-IP, described previously in the section “NAC: Phase I” (refer to Figure 1-1). The only difference is that the router is replaced with a VPN 3000 concentrator, and an IPSec tunnel is first established to the concentrator before the EAPoUDP session starts. When the EAPoUDP session starts, a PEAP session is established between the client and the Cisco Secure ACS so posture validation can take place. Cisco Secure ACS then notifies the concentrator (through RADIUS) of the client’s posture and passes down a filter list to be applied to the client. The filter list is the 3000’s equivalent to a downloadable ACL. One unique option that the concentrator provides is that clients can be excluded from posture validation based solely on OS type. This is because the Cisco VPN client sends its OS information during IPSec tunnel establishment, which occurs before NAC posture validation. Host exemption, along with all other NAC configuration, is specified under the group policy settings on the 3000. NAC configuration on the VPN 3000 concentrator is covered in detail in Chapter 6, “Configuring NAC on Cisco VPN 3000 Series Concentrators.” Online Resource: Cisco 3000 Series VPN Concentrators For more information about the Cisco VPN 3000 series concentrators, see http:// www.cisco.com/go/vpn3000/.
Components That Make Up the NAC Framework Solution
21
Cisco ASA 5500 Series Adaptive Security Appliance and PIX 500 Series Security Appliance The NAC implementation on the Cisco 5500 series Adaptive Security Appliances (ASA) and PIX 500 series security appliances is identical to the implementation on the VPN 3000 concentrators. NAC-L3-IP is supported starting with Version 7.2(1) on all IPSec and L2TP over IPSec remote-access tunnels. Posture enforcement is provided by way of a downloadable ACL from Cisco Secure ACS. Additionally, just as with the VPN 3000, remote-access clients can be exempted from NAC posture validation based on OS type. The ASA and PIX also support clientless authentication. Those hosts connecting through a remote-access tunnel that do not have CTA installed are marked as clientless. Cisco Secure ACS can then apply the clientless policy to those hosts, to limit (or remove entirely) their access to the network. Chapter 7, “Configuring NAC on Cisco ASA and PIX Security Appliances,” contains the complete configuration of NAC on the ASA 5500 series appliances and PIX 500 series security appliances.
Online Resource: Cisco Adaptive Security Appliances For more information about the Cisco ASA 5500 series adaptive security appliances, see http://www.cisco.com/go/asa/.
Cisco Wireless Devices NAC Framework support for wireless devices is available on autonomous Access Points (AP), lightweight access points running the Lightweight Access Point Protocol (LWAPP), and the Wireless LAN Services Module (WLSM) for the Catalyst 6500. Table 1-4 lists the wireless devices and minimum supported software. Table 1-4
NAC Support in Wireless Devices
Wireless Device Autonomous APs running IOS:
Minimum Supported Software Cisco IOS Release 12.3(7)JA or later
Aironet 1100, 1130AG, 1200, 1230AG, 1240AG, 1300 IOS-based access points Lightweight APs running LWAPP: Aironet 1000, 1130AG, 1200, 1230AG, 1240AG, 1500 + WLAN Controller 2000, 4100, or 4400 Catalyst 6500 series WLSM
Cisco Unified Wireless Network Software Release 3.1 or later Cisco IOS Release 1.4.1 or later
22
Chapter 1: NAC Solution and Technology Overview
Wireless devices are Layer 2 termination devices and, as such, support NAC-L2-802.1x as the posturing method. The process that a wireless client connecting to a wireless device goes through for posture validation is the same as for a wired client. Figure 1-3 depicts this posture. Note that wireless devices provide posture enforcement through VLAN only. This means that, to support NAC, the wireless devices must be configured for multiple VLANs per service set identifier (SSID). Configuration and troubleshooting of NAC on Cisco wireless access points is covered along with other Layer 2 network-access devices in Chapter 4. Online Resource: Cisco Wireless Access Points For more information about the wireless line of products available from Cisco Systems, see http://www.cisco.com/go/wireless/.
Cisco Secure Access Control Server The Cisco Secure Access Control Server (ACS) for Windows is another core required component of NAC. Cisco Secure ACS first supported NAC in Version 3.3, which was launched concurrently with Phase I in the summer of 2004. Cisco Secure ACS 4.0, released in the fall of 2005, added support for NAC Phase II, including all the NADs listed in the previous section. Cisco Secure ACS is the central controller for all NAC policy decisions. It receives posture credentials from all agents and either processes them locally or forwards them on to partner validation servers for processing. If the posture credentials are forwarded on, Cisco Secure ACS waits to receive the application posture token (APT) back from the external validation server. It then combines this APT with the local APTs it created based on the defined policy; the result is an overall system posture token (SPT). The SPT has one of the following values: Healthy, Checkup, Quarantine, Infected, or Unknown, which are mapped to a network access policy. The network-access policy and SPT are then transmitted to the NAD as part of policy enforcement. Optionally, Cisco Secure ACS can send a user-notification message that CTA displays on the end host. This message usually indicates the posture of the system along with some instructions (for the un-Healthy hosts). Cisco Secure ACS can also send a URL redirect to the end host via the NAD if either NAC-L3-IP or NAC-L2-IP is being used. Chapter 8 covers installation, configuration, and troubleshooting of Cisco Secure ACS. Online Resource: Cisco Access Control Server For more information about the Cisco Secure Access Control Server, see http:// www.cisco.com/go/acs/.
Components That Make Up the NAC Framework Solution
23
Event Monitoring, Analysis, and Reporting Protecting the network from threats is the first step toward securing it. However, event monitoring, analysis, and reporting are also vital pieces in understanding the network’s security posture:
•
Event monitoring—The process of receiving events (or alerts) from the network and presenting them to the user in real time and in a meaningful way. This is usually provided with some sort of “dashboard” where new events are displayed as they come in.
•
Analysis—The process of taking the events received and normalizing and correlating them to produce the most relevant set of data. The correlation process takes multiple streams of events from various device types and finds similarities in their data that can be linked to provide a detailed composite picture. The normalization process then removes the redundant data and improves data consistency.
•
Reporting—The process of querying historical data for specific events and presenting those events in a useful way to the user.
Monitoring, analysis, and reporting are powerful tools that show the network administrator the state of the network at any given point in time. These tools are very important in networks where NAC is enabled because the volume of events that each network device generates for each postured host is huge. Monitoring the network devices individually for problems or anomalies is neither practical nor efficient. This is why Cisco has enhanced its Cisco Security Monitoring, Analysis, and Reporting System (CS-MARS) to support NAC. The CS-MARS appliance is a topologically aware, high-performance event-correlation system. Syslogs, NetFlow data, Simple Network Management Protocol (SNMP) traps, and other network logging information can be sent to it from a variety of network sources. This includes routers, switches, firewalls, intrusion-prevention devices, Cisco Secure ACS, and even end hosts. All this information is then correlated within CS-MARS to detect network attacks and other types of security threats. When an attack is detected, an incident is fired and the attacker, victim, and path from attacker to victim are displayed in the CS-MARS interface. Additionally, based on the attack vector, CS-MARS can inform the user of the best way to mitigate the attack. In support of NAC, CS-MARS parses, normalizes, correlates, and reports on posturevalidation events for NAC-L3-IP, NAC-L2-IP, and NAC-L2-802.1X. Predefined reports enable network administrators to view the number of hosts in Healthy, Quarantined, Clientless, or other states throughout the entire network. Administrators can further drill down to determine the posture status on a per-device basis. They may also choose to receive daily reports (via e-mail) of the number and location of nonhealthy hosts in their network. Help-desk support teams can use CS-MARS to identify problems reported from end users. CS-MARS can display IP addresses, machine/usernames, and the logical switch port number the user is connected to, along with the posture information or authentication
24
Chapter 1: NAC Solution and Technology Overview
information of end hosts. This information can be displayed in real time and allows the help-desk teams to quickly and easily identify problems end users are having. Chapter 17, “Monitoring the NAC Solution Using the Cisco Security Monitoring, Analysis, and Response System,” covers the configuration and operation of CS-MARS in a NAC Framework solution.
Online Resource: Cisco Security Monitoring, Analysis, and Reporting System For more information about the Cisco Security Monitoring, Analysis, and Reporting System, see http://www.cisco.com/go/mars/.
Summary This chapter answered the question, “What is network access control?” by providing a solution overview as well as taking a look at the individual components that make up NAC. The different implementations of NAC were also explained, including NAC-L3-IP, NACL2-IP, and NAC-L2-802.1X. Network-access devices supporting NAC were presented, along with the version of software required. Looking ahead, subsequent chapters focus on the installation, configuration, and operation of each individual NAC component. Once complete, the individual components are combined to illustrate real-world deployment scenarios in Part III, “Deployment Scenarios.” Finally, Part IV, “Managing and Monitoring NAC,” focuses on the overall management and monitoring of the NAC solution.
Review Questions You can find the answers to the review questions in Appendix A, “Answers to Review Questions.” 1. Which of the following is a required component of NAC? a.
Remediation server
b.
Antivirus server
c.
Cisco Security Agent
d.
Cisco Secure Access Control Server
2. What is the posture-enforcement method for NAC-L3-IP? 3. What is the posture-enforcement method for NAC-L2-802.1X?
Review Questions
25
4. NAC-L3-IP and NAC-L2-IP use which of the following protocols to secure the
communication between the endpoint and Cisco Secure ACS? a.
EAP over UDP
b.
EAP-FAST
c.
77RADIUS
d.
PEAP
5. The network-access device uses what protocol to send NAC-related messages to
Cisco Secure ACS? a.
EAP over UDP
b.
EAP-FAST
c.
RADIUS
d.
PEAP
6. The VPN 3000 concentrator and the ASA and PIX security appliances support NAC
on which of the following: a.
Remote-access IPSec and L2TP over IPSec connections
b.
Remote-access and LAN-to-LAN IPSec connections
c.
Remote-access PPTP and L2TP over IPSec connections
d.
Remote-access IPSec connections only
PART
II
Configuration Guidelines Chapter 2
Cisco Trust Agent
Chapter 3
Cisco Secure Services Client
Chapter 4
Configuring Layer 2 NAC on Network Access Devices
Chapter 5
Configuring Layer 3 NAC on Network Access Devices
Chapter 6
Configuring NAC on Cisco VPN 3000 Series Concentrators
Chapter 7
Configuring NAC on Cisco ASA and PIX Security Appliances
Chapter 8
Cisco Secure Access Control Server
Chapter 9
Cisco Security Agent
Chapter 10
Antivirus Software Integration
Chapter 11
Audit Servers
Chapter 12
Remediation
This chapter covers the following topics:
• • • • • • • •
Preparing for deployment of CTA Deploying CTA in a lab environment Understanding user notifications Understanding how to customize CTA by editing *.ini files Understanding CTA’s Scripting Interface Understanding CTA’s logging service Deploying CTA in a production network Troubleshooting CTA
CHAPTER
2
Cisco Trust Agent Cisco Trust Agent (CTA) is a required, integral component of NAC deployments. CTA is a small software application (about 3MB) installed on end-host machines that performs the following functions:
•
Provides a secure communications channel between the host and the ACS server through which posture information is transmitted
•
Provides OS and patch information from the host, along with the machine running state, through its included posture plug-in
•
Provides state, version, and status information about other NAC partner applications installed on the host through the partner’s posture plug-in
•
Reports any arbitrary posture information back to ACS through an optional Scripting Interface (SI)
Currently, two versions of CTA are available: CTA Version 1 (released with NAC Phase I) and CTA Version 2 (released with NAC Phase II). CTA Version 1 was limited in the posture credentials it could report by itself. It required the installation of Cisco Security Agent (CSA) to retrieve the hotfixes installed on a Windows client machine. CTA Version 2 improves upon Version 1 by adding these new features:
•
Included plug-in module for reporting the host OS and hotfix information, along with running state
• • • •
Support for Macintosh OS X operating system
• • •
Capability to change the security level of CSA, based on the posture of the host
Support for Linux operating systems Silent installation options to ease large CTA deployments Included 802.1X supplicant (wired interfaces only), with support for the optional Cisco Secure Services Client, which supports wired and wireless interfaces Customizable end-user notifications, through a pop-up window Scripting interface to provide arbitrary posture information for third-party applications from the host to ACS
CTA Version 2 is backward-compatible with Version 1 and allows for automated silent upgrades (from Version 1 to Version 2) without user intervention.
30
Chapter 2: Cisco Trust Agent
NOTE
Because of a format change, the CTA 2.0 wired supplicant .xml configuration files are not compatible with those of CTA 2.1. After the CTA upgrade, new configuration profiles must be pushed to the clients.
TIP
Before attempting to deploy CTA in a production environment, it is highly recommended that you read this chapter in its entirety. As a network administrator, you have several available options in the deployment of CTA. Understanding these options and correctly configuring them before pushing CTA out to your users could save you a lot of time and headaches.
Preparing for Deployment of CTA As a network administrator, you must make a few key decisions before starting the deployment of CTA. The first and most important is whether your NAC deployment will include IEEE 802.1X port-based authentication. 802.1X authentication is an optional component of NAC that provides end-user authentication. When deployed, it is typically done company-wide as part of an overall security architecture. Therefore, you first need to determine whether your security policy requires that all devices authenticate before being granted access to the network. If so, you will want to deploy IEEE 802.1X authentication along with NAC.
NOTE
To learn more about IEEE 802.1X authentication and the benefits it can provide, see Cisco Network Admission Control, Volume I: NAC Architecture and Design.
The second decision that needs to be made is whether you will deploy the optional Scripting Interface for CTA. The Scripting Interface provides a way to gather posture information from non-NAC-compliant applications that reside on the end host. You can use it to pass back any arbitrary information that you want to use in the posture policy on ACS to determine the machine’s posture state. Typically, the Scripting Interface is used only when the existing posture plug-ins do not provide the posture credentials necessary for you to determine the overall policy of the endpoint. The next decision that must be made is whether your ACS server will use a self-signed certificate or a certificate obtained from a public Certificate Authority (CA, such as Verisign), or whether you plan to use your own CA server. The root CA certificate must reside on the CTA client machine to validate the identity certificate that ACS presents to
Preparing for Deployment of CTA
31
CTA during the negotiation of the PEAP (for NAC-L3-IP and NAC-L2-IP) or EAP-FAST (for NAC-L2-802.1X) tunnels. This certificate can be bundled in the CTA software distribution to aid in deployment. The final decision that needs to be made is how to distribute the CTA client to end hosts. For small offices or lab setups, it might be possible to manually install the software or have it installed through a startup script on the host. However, for large enterprise deployments a software-distribution tool such as Microsoft’s SMS or Altiris is the recommended way to push CTA out to end hosts. Additionally, if you are using the Cisco Security Agent (CSA) in your environment, CTA can also be deployed with an agent kit from CSA. See Chapter 9, “Cisco Security Agent,” for more information about deploying CTA with CSA.
Supported Operating Systems CTA Version 2.1 improves on CTA 1.0 by adding support for non-Windows platforms with the addition of Red Hat Linux and Mac OS X. Table 2-1 lists the supported operating systems for CTA. Table 2-1
CTA-Supported Operating Systems CTA Version 1.0
CTA Version 2.1
Windows 2003 Standard Server
Operating System
✓
✓
Windows XP Professional and Home*
✓
✓
Windows 2000 (Professional and Server)
✓
✓
Windows NT 4.0**
✓
Mac OS X***
✓
Red Hat Enterprise Linux Versions 3 and 4***
✓
* Windows XP Home does not support the CTA Wired 802.1X supplicant. However, it does support CTA without the supplicant. ** Beginning with CTA Version 2.1, Windows NT is no longer a supported operating system. *** Cisco currently does not have a wired 802.1X supplicant version of CTA for Mac OS X and Linux.
NOTE
If you are using the CTA 802.1X supplicant, be aware that user and machine profiles created with CTA 2.0.0 are not compatible with CTA 2.1. On upgrade, the profiles are deleted and new profiles must be created and pushed out to clients. Profiles created with CTA 2.0.1 are compatible with CTA 2.1 and are not deleted during the upgrade.
NOTE
CTA also supports localized versions of the operating systems listed in Table 2-1.
32
Chapter 2: Cisco Trust Agent
Cisco plans to continue to expand on the supported base of operating systems. Support for Solaris is on the roadmap.
Minimum System Requirements The CTA client software is a small software package that requires very few hardware resources. Table 2-2 lists the minimum system requirements for Windows, Mac, and Linux operating systems. In short, the machine needs to meet just the minimum OS requirements. Table 2-2
Windows, Mac, and Linux Minimum System Requirements Component Processor
Requirement Windows: Pentium II class or higher Mac: G3 processor or better Linux: Pentium class or higher
RAM
256MB: Windows XP, 2003, Mac 128MB: Windows 2000, NT, Linux
Hard Drive Space
20MB
Network Connectivity
UDP port 21862 (default)
Software Installer
Windows: MSI Version 2.0 or later Linux: Red Hat Package Management (RPM) v4.2 or greater
TIP
To determine the version of MSI installed, run msiexec from a DOS command prompt or from Start > Run. A GUI window appears displaying the current version of MSI. Windows NT (supported only on CTA 2.0 and earlier) and some Windows 2000 clients might need to upgrade their MSI before installing CTA.
Installation Packages and Files Cisco has created several installation packages for CTA, based on the host’s operating system. All the Admin packages include a bundled CTA executable that can be installed interactively or silently on end-user machines. The silent option is useful if you plan to push CTA out to users using a software-distribution tool. This method also allows the distribution of CTA with customized configuration files and certificates. The interactive installation options perform noisy installs. With noisy installs, the user is prompted to accept the End User License Agreement (EULA) and for information on where to install CTA. With either installation method, you have the option of choosing to install the optional 802.1X wired supplicant and Scripting Interface.
Preparing for Deployment of CTA
NOTE
33
The 802.1X wired supplicant is currently supported only on Windows installations of CTA. Cisco also offers a full-featured supplicant, the Cisco Secure Services Client, which supports both wired and wireless network interfaces. This supplicant used to be the Meetinghouse AEGIS SecureConnect client, before Cisco acquired Meetinghouse in the summer of 2006. We cover the installation and configuration of the Cisco Secure Services Client in Chapter 3, “Cisco Secure Services Client.” See Table 2-3 for a complete list of the available installation packages.
Table 2-3
CTA Installation Packages* Windows Installation Packages Filename
Description Admin install package contains ctasetup-winversion.msi.
CtaAdminEx-win-version.exe
No 802.1X supplicant. CtaAdminEx-supplicant-win-version.exe
Admin install package contains ctasetupsupplicant-win-version.msi. 802.1X wired supplicant. Client MSI installation file.
ctasetup-win-version.msi
No 802.1X supplicant.
ctasetup-supplicant-win-version.msi
Client MSI installation file. 802.1X wired supplicant.
Mac Installation Packages Filename
Description
ctaadminex-darwin-version.tar.gz
Admin installation package contains ctadarwin-version.dmg. No 802.1X supplicant.
cta-darwin-version.dmg
Installation disk image. Linux Installation Packages
Filename ctaadminex-linux-version.tar.gz
Description Admin installation package contains cta-linuxversion.i386.rpm. No 802.1X supplicant.
cta-linux-version.i386.rpm
Installation RPM. No 802.1X supplicant.
*The [version] string is a representation of the current version of CTA. It is represented in 4-tuple dotted-decimal format. Example: 2.1.0.11.
34
Chapter 2: Cisco Trust Agent
NOTE
You must have Administrator privileges to install CTA. One exception is on Windows. If the group policy allows the MSI to have elevated privileges, users with Standard or Restricted accounts can install CTA. The latest versions of CTA are available to users with a Cisco Connection Online (CCO) account. You can find them on the Cisco website at http://www.cisco.com/cgi-bin/ tablebuild.pl/cta.
Deploying CTA in a Lab Environment It is highly recommended that you deploy NAC in a lab environment before deploying it in a production network. Deploying it in a lab gives you invaluable hands-on experience and time to learn and understand all the configuration options available to you, under minimal pressure. Heed this warning: Do not attempt to deploy NAC in a production environment without any lab testing ahead of time. NAC is a complex solution with many components. Each one needs to be tested and fully understood before a production rollout. With that in mind, the next several sections walk you through the installation of CTA—with and without the 802.1X supplicant—in a lab environment.
CTA Windows Installation Installing CTA for windows is simple and very straightforward. For initial testing of CTA in a lab, download the CtaAdminEx-win-version.exe file and execute it on your test machine. The installer presents the End User License Agreement (EULA). You must read and accept the EULA before proceeding. After you accept the EULA, the .msi installation file is extracted to the same directory as the CTA Admin executable. Double-click the .msi file to start the CTA installation using the interactive wizard. When the wizard window appears, select Next. You are prompted one more time to accept the EULA before being allowed to continue. On the following screen, you are prompted to choose the location where you want CTA installed (the default is C:\Program Files\Cisco Systems\). The next screen presents you with three installation types: Typical, Complete, and Custom. The only difference among the three is whether the Scripting Interface (SI) is installed. Refer to Table 2-4, which summarizes the installation options. Table 2-4
CTA Installation Options Installation Type
What Is Installed
Typical
CTA only.
Complete
CTA with Scripting Interface.
Custom
CTA with the option to install the Scripting Interface. Note: The Scripting Interface is not selected by default.
Deploying CTA in a Lab Environment
35
After choosing the installation type, choose Next to begin the installation. The installer copies the files and inserts the associated Registry entries, and then notifies you that installation is complete. At this point, you might be prompted to reboot. Go ahead and reboot if needed. With CTA installed, the final step is to install the CA certificate (or ACS’s self-signed certificate) into the host’s trusted certificate store. See the section “Installing the CA Certificate,” later in this chapter, for instructions on how to complete this step.
CTA Windows Installation with the 802.1X Wired Supplicant Installation of CTA on Windows with the wired supplicant follows the same steps covered in the last section. The only difference is that you download and run the CtaAdminExsupplicant-win-version.exe file to begin the install.
Installing the CTA Admin 802.1X Wired Client As mentioned previously, download and run the CtaAdminEx-supplicant-win-version.exe file to begin the installation of the CTA Admin 802.1X wired client. The installer presents the EULA. You must read and accept the EULA before proceeding. After you accept the EULA, the .msi installation file (which contains the wired supplicant) is extracted to the same directory as the CTA Admin executable. Double-click the .msi file to start the CTA installation wizard for the administrative version of the wired client. When the installation wizard completes, you are prompted to reboot your computer. A reboot is required because of the installation of the 802.1X supplicant. After reboot, the Cisco Trust Agent 802.1X wired client icon appears in the system tray. The icon is colorcoded to represent the authentication status of the 802.1X client. Additionally, a status balloon pops up indicating your current authentication status. See Table 2-5 for a list of icon colors and their meanings. Table 2-5
CTA 802.1X Wired Client Icon Color Codes Icon Color Green
Status The device is authenticated and connected to the network. This is the normal state.
Yellow
802.1X authentication is in progress.
Red
802.1X authentication failed; the device is not connected to the network.
Blue
The device is connected to the network, but no authentication was required. This is normal when connecting to non802.1X-enabled switches.
No Color
The connection is idle.
36
Chapter 2: Cisco Trust Agent
NOTE
A PC with the 802.1X supplicant installed can still connect to networks that do not have 802.1X authentication enabled. The supplicant displays “No Authentication Required” when connected to non-802.1X networks. However, the converse is not always true. If a PC without a supplicant connects to an 802.1X-enabled switch, it might not be capable of accessing the network. Access to 802.1X-enabled networks by non-802.1X-enabled clients is based on the policy set forth by the network administrator.
The administrative version of the 802.1X wired client is preconfigured with the following policies and profiles:
• • • • •
It does not validate ACS’s certificate. It performs both machine and user authentication. It requests and stores user credentials and passwords. It does not allow certificate-based authentication. It uses anonymous as the identity in the outer (unprotected) tunnel during Phase 1 of the EAP-FAST negotiation.
Therefore, after the administrative version of the 802.1X wired client is installed on a machine and connected to an 802.1X-enabled switch port, you should be prompted for user credentials. If you enter valid user credentials, you are authenticated to the network. However, these preconfigured policies might not be what you want deployed to end users in your network. Next, we look at customizing the policies in preparation for client deployments.
Creating a Customized Deployment Package Before deploying the CTA 802.1X wired client to your network, you will most likely want to customize the client’s policies. The option to edit the client’s default policies is available only through the creation of a custom deployment package. However, before a custom deployment package can be created, you must decide which of the following authentication methods the client should support:
•
User authentication only—The network connection is established only after the user logs on to the machine and successfully authenticates.
•
Machine authentication only—The network connection is established only after the machine’s credentials have been authenticated. You can configure the client to provide the machine’s credentials at boot-up or after the user successfully logs into the machine.
Deploying CTA in a Lab Environment
•
37
User and machine authentication—The network connection is established only after both the user and the machine credentials have been authenticated.
Depending on which devices you plan to deploy the CTA 802.1X wired client to, you might want to create more than one deployment package to allow different devices to have different authentication methods. Follow these steps to launch the deployment wizard, which walks you through creating a deployment package. Step 1 Right-click the CTA admin 802.1X wired client icon in the system tray
and choose Open. Step 2 Select the Administration pull-down menu and choose Create
Deployment Package. Step 3 A new window appears, titled Create Deployment Package. Click the
Start button to begin the deployment wizard. You should see the client’s Station Policy configuration screen, shown in Figure 2-1. Figure 2-1
CTA 802.1X Wired Client Custom Deployment Configuration—Station Policy
38
Chapter 2: Cisco Trust Agent
Step 4 In the User Credentials section, select one of the following options:
— Use Single Sign-On for Password Credentials—This option uses the user’s Windows login credentials. Therefore, the user is not prompted for 802.1X authentication. (This is the default and most common selection.) — Request Password When Needed—This option prompts the user for credentials when needed. — Use Machine Credentials for User Connections—This option replaces the user credentials with the machine’s credentials. This option should be selected only when performing machine authentication. Step 5 The Allow Unprotected Client Certification section defines whether a
certificate should be used during Phase 1 of the EAP-FAST PAC provisioning. By default, neither option is selected. (This is the most common case.) — Machine Auth (Boot-time)—This method authenticates the client to ACS using the Microsoft Active Directory–provided machine certificate. — User Auth (Logon-time)—This method authenticates the client using a predeployed client certificate.
NOTE
Selecting these options has no effect on the use of a certificate during the protected portion of the EAP-FAST PAC provisioning. If ACS is configured to request a client certificate within the secure tunnel, the CTA wired client will always attempt to send one. If a certificate is not available, the connection attempt will fail.
Step 6 The Trusted Server Validation section enables you to choose whether the
client should validate the identity certificate presented by ACS. It is highly recommended that you select the Always Validate Servers option. Choosing the Never Validate Servers option allows the client to accept the credentials from any ACS server.
WARNING
The Never Validate Servers option is not recommended because it greatly reduces the level of security and could allow the client to communicate to a rogue authentication server.
Deploying CTA in a Lab Environment
39
Step 7 The Authentication Method section enables you to choose whether the
real username should be sent in the clear during the Phase 1 PAC provisioning, or whether the username anonymous should be sent. If you are unsure of what to select here, choose Use Anonymous as Identity.
NOTE
This option does not affect the username sent during the actual user or machine authentication. If user credentials are required for authentication, the client will send username@domain, regardless of the option selected here.
NOTE
ACS 3.3 supports only the Use Anonymous as Identity option. For all other versions of ACS, the selection chosen here must match what is configured on ACS.
Step 8 The Wired/Ethernet Settings section controls the number of retries the
client should attempt before failing authentication. The default is three retries for Interactive authentications (the client is prompted for credentials) and one retry for noninteractive authentications when the client is authenticated via a certificate and the user is not prempted for credentials. It is recommended that you keep the default options unless you have a specific reason to change them and have thoroughly tested the impact of the change before general deployment. Increasing Interactive Authentication Retries results in additional user dialog prompts. Increasing Noninteractive Authentication Retries adds delays to the machine or user logon to Windows when network connectivity fails.
NOTE
If you are using the auth fail vlan feature on your switch, the values for these fields must be one greater than the max-attempts value on the switch. If the switch is set for two maxattempts, both retry values should be 3.
Step 9 In the Automatic Behavior section, you have the option of automatically
establishing the machine connection. Select this option only if you want to perform machine-only authentication or machine and user authentication. Step 10 When you are finished making the selections on this page, click the Next
button.
40
Chapter 2: Cisco Trust Agent
Step 11 The Trusted Server Policy window appears. If on the previous page you
selected Never Validate Servers, you can skip to Step 16; however, for security reasons, this is greatly discouraged. Step 12 Click the Add Server Rule button. Step 13 The Trusted Server configuration window opens. In the Rule Name text
box, fill in a user-friendly name for this rule. It can be any name that represents your ACS server (because it is not used in the validation), but I suggest using the ACS keyword somewhere in the rule so that it is easily recognizable. Step 14 In the Validation Method drop-down box, select Certificate. (The PAC
method is not supported at this time.) Step 15 Under the Match ANY Certification Validation Rule section, deselect
Subject Alternative Name and select Subject/Common Name. Choose Exactly Matches and fill in the Common Name (CN) listed in ACS certificate; then click OK. (Alternatively, you could choose to match on the subject alternative name, which is typically the DNS name of the ACS server, but this must be included in the certificate). When ACS presents its certificate to the client, one of these rules must match or the client will reject the certificate. See Figure 2-2 for a screen shot of a configured trusted server rule. Figure 2-2
CTA 802.1X Wired Client Custom Deployment Configuration—Trusted Server Policy
NOTE
You can easily determine the Subject/Common name (CN) by opening ACS’s identity certificate and selecting the Details tab. See the sidebar “Obtaining the CN from ACS’s Identity Certificate” for more information.
Deploying CTA in a Lab Environment
NOTE
41
If you are using multiple ACS servers in your network, you can configure additional trusted server rules or create one rule that will match all servers.
Step 16 Click the Next button to advance to the Save Package screen. By default,
the deployment package configuration files are saved in the C:\Program Files\Cisco Systems\Cisco Trust Agent 802_1X Wired Client\ directory. Click the Browse button if you want to save them in a different location. Step 17 In the Deployment Package Filename field, specify a prefix to be
appended to the .xml configuration files that the wizard creates. In this chapter, we use 802_1x-auth to easily distinguish the files. Step 18 When finished, click the Save button. The Deployment Complete screen
appears, showing the three configuration files created: 802_1x-authpolicy.xml, 802_1x-auth-networks.xml, and 802_1x-authcredentials.xml. Step 19 Click the Close button to complete the deployment package wizard.
Obtaining the CN from ACS’s Identity Certificate You can determine the CN for your ACS identity certificate by opening the Microsoft Management Console (MMC) on the ACS box. Choose Start > Run > mmc. If Certificates (Local Computer) is not listed under the Console Root, you need to add the snap-in by selecting File > Add/Remove Snap-In. In the window that appears, choose Add. Select Certificates from the list and then Add. You are prompted for the certificates you want to manage. Choose Computer Account and then Next. In the final window, use the default Local Computer and click Finish. Finally, click OK and you should be back to the MMC. Expand Certificates (Local Computer) and also ACSCertStore. Select the Certificates folder; on the right pane, you should see the identity certificate issued to ACS. Double-click it and choose the Details tab. Select the Subject field; the CN is listed.
Installing the Customized CTA 802.1X Wired Windows Client It is recommended that you load the customized 802.X wired client on an alternate machine (aside from the one the admin client was installed on). This enables you to test the customized deployable client and make any necessary changes by rerunning the deployment wizard on the admin client machine.
42
Chapter 2: Cisco Trust Agent
Follow these steps to install the customized client: Step 1 Run the ctasetup-supplicant-win-version.msi file on the client machine.
However, do not reboot the machine when requested by the installer. Step 2 Copy the 802_1x-auth-policy.xml configuration file to the machine and
place it in the following directory: C:\Program Files\Cisco Systems\ Cisco Trust Agent 802_1x Wired Client\profiles\policies\. Step 3 Copy the 802_1x-auth-networks.xml configuration file to the machine
and place it in the following directory: C:\Program Files\Cisco Systems Cisco Trust Agent 802_1x Wired Client\profiles\networks\.
NOTE
The 802_1x-auth-credentials.xml file is not used on the Cisco CTA 802.1X wired client.
Step 4 Reboot the machine for the configuration to take affect.
The final step is to install the CA certificate (or ACS’s self-signed certificate) into the host’s trusted certificate store. See the section "Installing the CA Certificate," later in this chapter, to complete this task. When the certificate is installed, you are ready to begin testing.
NOTE
You can also install the CA certificate during the installation of the client by creating a certs\ directory in the directory the .msi client executable resides. Copy the CA certificate into the certs\ directory; during the client installation, it will install any certificate in that directory to the trusted root store.
CTA Mac Installation The Cisco Trust Agent first supported Macintosh operating systems starting with Version 2.1 of CTA and Version 10.3.9 (or higher) of OS X. Installation of CTA on the Mac can be accomplished one of the following ways:
• •
Installation with the installation wizard Custom installation from the command line
In this section, we cover the installation of CTA using the installation wizard. Later, in the “Deploying CTA in a Production Network” section, we cover the installation of CTA using the command line. Before installing CTA, you must have administrative privileges on the machine, and you must extract the installation disk image.
Deploying CTA in a Lab Environment
43
Extracting the Installation Disk Image Before you can begin the installation of CTA using the wizard or the command line, you must extract the installation disk image and accept the EULA. Follow these steps to accomplish this task: Step 1 Download the ctaadminex-darwin-version.tar.gz administrative archive
file to the machine you want to install CTA on. Step 2 Open a terminal window and change to the directory where you saved the
ctaadminex-darwin-version.tar.gz archive file. Step 3 Expand the compressed archive by typing the following command: tar
zxvf ctaadminex-darwin-version.tar.gz Step 4 The contents of the archive are extracted in the same directory. Next,
execute the command ./ctaadminex.sh. Step 5 You are presented with the EULA. After you have read the EULA, type
y if you agree to the terms. The cta-darwin-version.dmg file is then extracted. Step 6 Finally, execute the command open cta-darwin-version.dmg to open the
CTA disk image. This places the CiscoTrustAgent volume icon on the desktop and in Finder. With the disk image opened, you are ready to begin the installation process.
Installing CTA on Mac OS X Using the Installation Wizard With the CiscoTrustAgent disk image opened, follow these steps to install CTA using the installation wizard: Step 1 Open Finder and select the CiscoTrustAgent volume. Step 2 Double-click the CiscoTrustAgent.mpkg icon. Step 3 The installation wizard opens, displaying the window shown in
Figure 2-3. Choose Continue.
44
Chapter 2: Cisco Trust Agent
Figure 2-3
CTA Mac Installation Wizard
Step 4 The End User License Agreement is displayed. Read it and click the
Continue button. You are then prompted to agree to the terms of the license agreement. Click Agree to accept the terms and continue. Step 5 The Select a Destination window appears. Select the drive where you
want CTA installed, and then click Continue. Step 6 The Easy Install window appears. Click the Customize button if you
want to install the CTA Scripting Interface (see the section titled “CTA Scripting Interface” for more information about the Scripting Interface); otherwise, skip to step 8. Step 7 The Custom Install window appears. Select the Scripting Interface for
Cisco Trust Agent package from the list. Step 8 Next, choose Install to start the installation process. The installer
prompts you to authenticate with a user account that has administrative rights. Enter a username and password, and then click OK. Step 9 The installer begins to copy the files to the machine. When the process is
complete, you will see the message “The software was successfully installed.” Choose Close to exit the installation wizard. The final step is to install the CA certificate (or ACS’s self-signed certificate) into the host’s trusted certificate store. See the section "Installing the CA Certificate," later in this chapter, to complete this task. When the certificate is installed, you are ready to begin testing.
Deploying CTA in a Lab Environment
45
CTA Linux Installation Installation of CTA on Linux requires superuser privileges. In addition, the RPM Package Manager (RPM) must be installed. To begin the installation of CTA on a Linux machine, follow these steps: Step 1 Download the ctaadminex-linux-version.tar.gz administrative archive
file to the machine on which you want to install CTA. Step 2 Open a terminal window and change to the directory where you saved the
ctaadminex-linux-version.tar.gz archive file. Step 3 Expand the compressed archive by typing the following command: tar
zxvf ctaadminex-linux-version.tar.gz. Step 4 The contents of the archive are extracted in the same directory. Next,
execute this command: ./ctaadminex-linux-version.sh. Step 5 You are presented with the EULA. After you have read the EULA, type
y if you agree to the terms. The script creates a directory named CTAversion and extracts the cta-linux-version.i386.rpm file. Step 6 Change to the CTA-version directory (cd CTA-version) and begin the
installation by typing this command: rpm –ivh cta-linuxversion.i386.rpm. Example: [root@linux CTA-2.1.0-11]# rpm –ivh cta-linux-2.1.0-11.i386.rpm Preparing... 1:cta-linux
################################## [100%] ################################## [100%]
NOTE
To upgrade from a previous version of CTA, use this command: rpm –Uvh cta-linuxversion.i386.rpm.
NOTE
The CTA Scripting Interface is installed by default on Linux installations.
When you finish installing CTA, the CA certificate needs to be installed. Follow the instructions in the next section to complete this final step.
46
Chapter 2: Cisco Trust Agent
Installing the CA Certificate When the CTA installation is complete, you must install the CA certificate (or ACS’s selfsigned certificate) into the client’s trusted certificate store. This allows the client to accept the certificate that ACS provides during the negotiation of the PEAP or EAP-FAST tunnel. Without the certificate, CTA will not form the protected tunnel with ACS to transmit posture credentials. On Windows machines, CTA accepts a PEM (Privacy Enhanced Mail) (Base64) or DER (Distinguished Encoding Rules) encoded binary X.509 certificate. On Mac and Linux, only PEM (Base64) encoded certificates are supported.
NOTE
If you do not have a CA and do not want to purchase a certificate for ACS from a public CA, you can have ACS generate a self-signed certificate. This self-signed certificate must be installed into the trusted certificate store on the CTA host instead of the CA certificate. However, for scalability reasons, it is strongly suggested that you do not use a self-signed certificate. ACS’s self-signed certificate is valid for only one year. After that, you must regenerate it. If you do not currently have a CA server, Microsoft provides one free of charge with its Windows Server operating systems. Just install it from Add/Remove Programs -> Add/Remove Windows Components. For more information on getting a CA certificate or on retrieving ACS’s self-signed certificate, see the documentation that came with those products.
Follow these steps to install the CA certificate (or ACS self-signed certificate) into the trusted certificate store on the CTA client.
Installing a CA Certificate (or ACS Self-Signed Certificate) on Windows Follow these steps to install a CA certificate (or ACS self-signed certificate) on Windows: Step 1 Copy the certificate to the client. Step 2 Open a command prompt and change to the root directory where CTA is
installed: Example: C:\Program Files\Cisco Systems\CiscoTrustAgent\ Step 3 Install the certificate by entering the following command: ctaCert.exe /
ui x /add “path_to_cert” /store “Root”, where x represents the level of user interaction (2 or 3 is no interaction, 4 or 5 is full interaction) and path_to_cert is the full path and filename to the certificate. Example: c:\Program Files\Cisco Systems\CiscoTrustAgent> ctaCert.exe /ui 4 /add “C:\root_ca.cer” /store “Root”
Deploying CTA in a Lab Environment
47
A pop-up appears indicating that the certificate was successfully imported.
Installing a CA Certificate (or ACS Self-Signed Certificate) on Mac OS X Follow these steps to install a CA certificate (or ACS self-signed certificate) on Mac OS X: Step 1 Copy the certificate to the client. Step 2 Open a terminal window and change to the following directory: /opt/
CiscoTrustAgent/bin/. Step 3 Install the certificate by entering the following command: sudo ./ctacert
–add /path/cert_file.cer, where /path/cert_file.cer is the full path and filename to the certificate. Example: mac:/opt/CiscoTrustAgent/bin Admin$ sudo ./ctacert –add /Users/admin/ root_ca.cer
You are prompted to enter the admin password. Step 4 When the certificate is successfully installed, you will see the message
“Certificate successfully added to store with Hashed Name hash.”
Installing a CA Certificate (or ACS Self-Signed Certificate) on Linux Follow these steps to install a CA certificate (or ACS self-signed certificate) on Linux: Step 1 Copy the certificate to the client. Step 2 Open a terminal session. Step 3 At any prompt, install the certificate by entering the following command:
ctacert --add /path/cert_file.cer, where /path/cert_file.cer is the full path and filename to the certificate. Example: [root@linux cta]# ctacert --add root_ca.cer Certificate successfully added to store with Hashed Name 0c23cfaa.0
Post-Certificate Installation Tasks After you install the CA certificate, CTA is ready to go. You can begin testing in your lab network. But before you do, you might want to continue reading. The rest of the chapter is
48
Chapter 2: Cisco Trust Agent
devoted to customizing optional CTA components, deploying CTA in a production environment, and troubleshooting CTA.
User Notifications The CTA client includes a GUI-based user-notification system. With the exception of the 802.1X supplicant, this is the only user-visible part of CTA. Notifications are defined in ACS and sent to users for various reasons. Notifications can include a message along with a clickable URL. The notification system can also autolaunch a web browser to direct the user to a website specified by the ACS policy. Figure 2-4 shows an example of a Healthy user-notification message displayed on a client with CTA installed. Figure 2-4
CTA Healthy User-Notification Message
A few configurable options exist for user notifications, such as the capability to display the notification message before or after user logon, the length of time to display the message before it automatically closes, and whether the user must acknowledge the notification message before being able to continue working. All these options and more are defined in the [UserNotifies] section of the ctad.ini file. If an option is not specified (or a ctad.ini file does not exist), the default value is used. See the next section for a complete list of configurable options.
Customizing CTA with the Optional ctad.ini File The ctad.ini file is an optional file that contains CTA daemon configuration information. This file is not installed with a default installation of CTA, but it can be included in a customized package deployment. The presence of the ctad.ini file allows the Administrator to customize various components of CTA. In the absence of the file, CTA takes the default values. The ctad.ini file is a standard configuration file and can be created in any text editor. Each configuration setting is in attribute=value format. The default CTA installation comes with a ctad.ini.operating_system template file, which you can rename to ctad.ini and edit to
Customizing CTA with the Optional ctad.ini File
49
make modifications as necessary. You can also use the sample file shown in Example 2-1 at the end of this section for reference. The ctad.ini template files are located in the same directory where the ctad.ini file must be saved: Windows: C:\Program Files\Cisco Systems\CiscoTrustAgent\ Mac: /etc/opt/CiscoTrustAgent/ Linux: /etc/opt/CiscoTrustAgent/ The file is divided into the following sections:
• • • • •
[main] [EAPoUDP] [UserNotifies] [ServerCertDNVerification] [Scripting_Interface]
[main] Section The [main] section is optional and contains global configuration options for CTA. If you are using optional posture plug-ins, you might consider altering some of these options from their default. Specifically, if your antivirus posture plug-in returns very large messages, you might consider increasing the PPMsgSize attribute to from 1 K to 4 K. Likewise, you might want to change how frequently CTA polls the plug-ins to detect a change in their status. This option is configurable by changing the SQTimer attribute. See Table 2-6 for the complete list of available options. Table 2-6
[main] Configuration Options
Attribute EnableVFT
Description Notifies CTA of whether the Cisco IOS running on the NAD supports the Validation-Flag TVL.
Operating System(s) Windows, Mac, Linux
0 = Cisco IOS does not support Validation-Flag TVL 1 = Cisco IOS does support Validation-Flag TVL Default value: 0 Range of values: 0, 1
continues
50
Chapter 2: Cisco Trust Agent
Table 2-6
[main] Configuration Options (Continued)
Attribute PPInterfaceType
Description Defines how CTA gathers posture plug-in information. Block: CTA requests posture information serially, from one plugin at a time. It waits for a response before requesting information from the next plug-in.
Operating System(s) Windows, Mac, Linux
NonBlockConcurrent: CTA requests posture information from all plug-ins simultaneously. The request completes when CTA receives a response from each plug-in or when the PPWaitTimeout expires, whichever is sooner. NonBlockSerial: CTA requests posture information from one plug-in at a time. It waits for a response from the plug-in or for the PPWaitTimeout to expire before requesting information from the next plug-in. Default value: Block Range of values: Block, NonBlockConcurrent, NonBlockSerial PPWaitTimeout
This attribute is valid only if PPInterfaceType is set to NonBlockConcurrent or NonBlockSerial. It defines the maximum time allowed (in seconds) for CTA to receive the response from the posture plug-in query.
Windows, Mac, Linux
Default value: 5 seconds Range of values: 1–4294967295 seconds PPMsgSize
Specifies the maximum size of the posture plug-in message. Default value: 1024 bytes
Windows, Mac, Linux
Range of values: 1024–4096 bytes SQTimer
The status query (SQ) timer defines how often CTA queries the posture plug-ins to detect a change in their status. This is applicable only for NAC-L2-802.1X.
Windows, Mac, Linux
Default value: 300 seconds Range of values: 5–4294967295 seconds UserActionDelayTimeout
Defines the length of delay before a web browser window is launched upon receiving a redirect URL. Increasing this value gives the client more time to obtain an IP address (if using NACL2-802.1X) before the web browser attempts to access the URL. Default value: 15 seconds Range of values: 0–4294967295 seconds
Windows, Mac, Linux
Customizing CTA with the Optional ctad.ini File
51
[EAPoUDP] Section The [EAPoUDP] section contains the configurable communication settings for the EAP over UDP connection. The only option that you might consider changing in this section is the LocalPort. However, changing the LocalPort also requires making this change on all the NADs. See Table 2-7 for the complete list of available options. Table 2-7
[EAPoUDP] Configuration Options
Attribute LocalPort
Description UDP port that CTA will listen on. Default value: 21862
Operating System(s) Windows, Mac, Linux
Range of values: 1–65535 MaxSession
Number of simultaneous EAP over UDP sessions allowed.
Windows, Mac, Linux
Note: CTA supports multiple sessions, but only one from a given NAD at a time. Default value: 8 Range of values: 1–256 SessionIdleTimeout
Number of seconds after which idle EAP over UDP sessions times out.
Windows, Mac, Linux
Default value: 3600 Range of values: 60–172800 BootTimeUDPExemptions
This attribute alters the Windows XP SP2 firewall policy to allow CTA to receive EAPoUDP packets during boot.
Windows
0 = Exemptions are disabled. 1 = Exemptions are enabled. Default value: 1 Range of values: 0, 1
[UserNotifies] Section The [UserNotifies] section contains the configurable options for the user-notification messaging system. You might want to disable SysModal or tweak some of the timeout values. See Table 2-8 for a complete list of the available options in this section.
52
Chapter 2: Cisco Trust Agent
Table 2-8
[UserNotifies] Configuration Options
Attribute SysModal
Description If enabled, the user must acknowledge the CTA notification message before being allowed to access any other windows. In addition, if multiple notifications are received, only the newest one is viewable.
Operating System(s) Windows, Mac, Linux
0 = Disabled 1 = Enabled Default value: 1 Range of Windows values: 0, 1 Range of Mac values: 1 EnableNotifies
Enables or disables user notifications. 0 = Disabled
Windows, Mac
1 = Enabled Default value: 1 Range of values: 0, 1 MsgTimeout
Amount of time, in seconds, the notification message appears. A value of 0 indicates no timeout.
Windows, Mac, Linux
Default value: 30 seconds Range of values: 0, 30–4294967 EnableLogonNotifies
Specifies whether user notification messages are displayed on the login screen.
Windows, Mac, Linux
0 = Disabled 1 = Enabled—For Windows, messages are displayed on the logon screen. For Mac and Linux, messages are saved and presented to user after successful login. Default value: 0 Range of values: 0, 1 LogonMsgTimeout
Number of seconds a user notification message is displayed (Windows) or saved (Mac and Linux) when EnableLogonNotifies is set to 1. A value of 0 disables this timeout. Default value: 0 (Windows), 300 (Mac and Linux) Range of values: 0, 30–4294967
Windows, Mac, Linux
Customizing CTA with the Optional ctad.ini File
Table 2-8
53
[UserNotifies] Configuration Options (Continued)
Attribute ClearOldNotification
Description Clears or saves notification messages.
Operating System(s) Mac, Linux
0 = Notification messages are saved. 1 = CTA clears old notification messages before displaying new ones. Default value: 1 Range of values: 0, 1 TermFont
Specifies the font used to display messages. The TermFont for Asian languages will be implemented in a future release.
Linux
Default value: -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60iso10636-1 For Asian languages, set this attribute equal to: -misc-zysong18030-medium-r-normal—0-0-0-0-c-0-iso10646-1 Display Type
Specifies whether user-notification messages sent from ACS to CTA are displayed in a GUI interface or in a terminal window. In Linux, if term is specified, messages are written to /var/opt/ CiscoTrustAgent/msg directory.
Mac, Linux
Default value: gui Range of values: term, gui (Linux); gui (Mac) BrowserPath
Specifies the full path to the user’s web browser. This value is used to open a web browser during URL redirection.
Linux
For Red Hat Enterprise v3 use: /usr/bin/mozilla For Red Hat Enterprise v4 use: /usr/bin/firefox
[ServerCertDNVerification] Distinguished Name-Matching Section Distinguished name matching provides additional security for CTA by requiring additional validation checks for the certificate presented by the ACS server. These checks are similar to, but in addition to, the Trusted Server Policy used with the CTA wired client; they apply to all CTA installations. The additional checks are created by adding distinguished name matching rules in the [ServerCertDNVerification] section of the ctad.ini file. If this section does not exist, CTA accepts any certificate with a validated certificate chain. If rules do exist, the certificate must match one of the rules for the certificate to be accepted. See Table 2-9 for a complete list of options for this section.
54
Chapter 2: Cisco Trust Agent
Table 2-9
[ServerCertDNVerification] Configuration Options
Attribute
Description
TotalRules
Operating System(s)
Defines the number of DN matching rules that will follow. If the number of rules is greater than 1, the rules are connected by an OR statement. A value of 0 disables DN matching
Windows, Mac, Linux
Default value: (none) Range of values: 0–64 RuleX
The RuleX parameters are DN matching rules, where X is the index of the rule. Example:
Windows, Mac, Linux
Rule1=CN=”acs01”, OU=”Cisco”
Each DN matching rule is an OR of the next rule. Therefore, the first rule that matches will cause the certificate to be accepted. Each rule can contain one or more subrules, separated by a comma. If any subrule fails, the entire rule fails. Rules are limited to 255 characters total and must be in this format: RuleX=subrule_a, subrule_b, subrule_c, ... Here, each subrule is comprised of a DN attribute, an operator, and a value: DN_attribute
”value” Table 2-10 lists the valid DN attributes that CTA will accept. There are two possible operators: = (equals)—The certificate must exactly match the value. * (contains)—The certificate presented must contain the value. If the ACS server’s certificate had a Common Name of acs01, an Organization Unit of Cisco, a State of NC, and a Country of US, a validation rule would be written as follows: Rule1=CN=”acs01”, OU=”Cisco”, ST=”NC”, C=”US” Table 2-10
Valid DN Attributes
Attribute
Definition
Attribute
Definition
CN
Common Name
L
Locality
SN
Surname
SP
Province
GN
Given Name
ST
State
N
Unstructured Name
O
Organization
I
Initials
OU
Organization Unit
GENQ
Generation Qualifier
T
Title
C
Country
EA
E-mail address
Customizing CTA with the Optional ctad.ini File
55
In addition to the server certificate, you can validate the issuer attributes (the CA that issued the certificate to ACS). To do so, you must prefix the attribute with the string ISSUER-. For example: Rule1=ISSUER-CN=”ca-server1”
If you are using distinguished name matching rules, you will most likely want to have one rule for each ACS server that the client might need to posture with. The alternative option, if you have multiple ACS servers, is to choose attributes that will be common across each certificate assigned to the ACS servers. This way, only one rule is needed.
TIP
[Scripting_Interface] Section The [Scripting_Interface] section currently contains only one option that is used to determine when to expire old posture data retrieved through the Scripting Interface, from the posture database. This attribute is defined in Table 2-11. For more information on the Scripting Interface, see the section titled “CTA Scripting Interface.” Table 2-11
[Scripting_Interface] Configuration Options
Attribute delta_stale
Description Defines the amount of time, in minutes, before the posture database record is deemed outdated.
Operating System(s) Windows, Mac, Linux
Default value: 43200 minutes Range of values: 0–5256000 minutes; a value of 0 means never age out the records
Example ctad.ini This section closes with a sample ctad.ini file. Example 2-1 shows a sample ctad.ini file that can be used as a template for Windows, Mac, or Linux systems. All attributes listed are shown at their default values, with the exception of the distinguished name matching section. Lines proceeded by a semicolon are commented out.
56
Chapter 2: Cisco Trust Agent
Example 2-1 Sample ctad.ini File ; You can comment out a line ; by preceding it with a semi-colon [main] EnableVFT=0 PPInterfaceType=Block PPWaitTimeout=5 PPMsgSize=1024 SQTimer=300 UserActionDelayTimeout=15 [EAPoUDP] LocalPort=21862 BootTimeUDPExemptions=1 MaxSession=8 SessionIdleTimeout=3600 [UserNotifies] ; The following apply to Windows and MAC only SysModal=1 EnableNotifies=1 ; The following apply to Windows, MAC and Linux MsgTimeout=30 EnableLogonNotifies=0 LogonMsgTimeout=0 ; The following apply to MAC and Linux only ;ClearOldNotification=1 ;DisplayType=gui ; The following apply to Linux only ;TermFont=-misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso10636-1 (default) ;BrowserPath=/usr/bin/firefox ; There are no defaults for Distinguished ; Name matching in the certificates, so all ; the below lines are commented out. ;[ServerCertDNVerification] ;TotalRules=2 ;Rule1=CN=”acs01”, OU=”cisco”, ST=”NC”, ISSUER-CN*”ca-server1” ;Rule2=CN=”acs02”, OU=”cisco”, ST=”NC”, ISSUER-CN*”ca-server1” [Scripting_Interface] delta_stale=43200
CTA Scripting Interface
57
CTA Scripting Interface CTA provides an optional Scripting Interface as a way for non-NAC-aware applications to provide CTA with posture information about that application. Cisco Secure ACS can then combine this additional posture information with the posture information received from NAC-aware applications and use it in determining the overall posture of the host. Although this is not a commonly used feature, it might be useful for companies that have a requirement to validate a specific attribute before making a posture decision. You have the option of installing the Scripting Interface during the installation by selecting either a Complete or Custom installation type. (Linux installations have the Scripting Interface installed by default.) If you choose a Custom Windows or Mac install, you must also manually select the Scripting Interface option and choose to install it on the local hard drive. By default, the Scripting Interface is not installed during a custom installation. See Figure 2-5, which illustrates this step on Windows. Figure 2-5
Scripting Interface Option Selected during Custom Windows Install
NOTE
If you are distributing CTA out to your users and silently installing it on their Windows machines, you must use the ADDLOCAL option to install the Scripting Interface. For example: C:\temp>Msiexec.exe /I “C:\temp\ctasetup-win-2.1.0.11.msi” ADDLOCAL=Scripting_Interface
58
Chapter 2: Cisco Trust Agent
Requirements for Using the Scripting Interface After installing the Scripting Interface executable and posture plug-in module, you must perform the following steps before you can use your user-defined posture credentials in a posture policy on ACS: Step 1 Create an executable script (in any programming language) on the client.
The script should run periodically and output a posture data file with current posture information in attribute-value pair format. Step 2 Create an .inf file to register the script with the ctascriptPP posture
plug-in. Step 3 Add the new user-defined attributes (created by the script) to the ACS
dictionary. Before you can begin with Step 1, you need to determine what information you want to retrieve from the host that will help you make a policy decision about the posture of the host. Some common examples are whether a particular non-NAC compatible application is installed (personal firewall, antivirus application, and so on), whether it is enabled, and what its current version is. When you have determined the information that you would like to get from the host, you are ready to proceed. The next few subsections walk you through each step.
Step 1: Create a Posture Data File You can use any programming or scripting language you want to create a script that will generate a posture data file. The only requirement is that the posture data file must contain only ASCII text and that it must comply with the format shown in Example 2-2. Example 2-2 Sample Posture Data File Excerpt [attr#0] vendor-id=9 vendor-name=Cisco application-id=61440 application-name=Script-001 attribute-id=32768 attribute-name=Script-Name attribute-profile=in attribute-type=string attribute-value=Script "posture_file_01" [attr#1] vendor-id=9 vendor-name=Cisco application-id=61440 application-name=Script-001 attribute-id=32769
CTA Scripting Interface
59
Example 2-2 Sample Posture Data File Excerpt (Continued) attribute-name=Unsigned-Integer attribute-profile=in attribute-type=unsigned integer attribute-value=31 ...
Each posture data file contains one or more posture-validation attribute definitions. Each attribute definition begins with an attribute identifier, followed by a series of attribute value pairs. Table 2-12 lists the valid attributes and their possible values. Table 2-12
Valid Attributes in the Posture Data File
Attribute
Description
Value
Required
[attr#n]
Attribute identifier. Each file must start with [attr#0].
The string “attr#”, enclosed in brackets [], and followed by an integer. The integer should start with zero and increment by one.
Yes
vendor-id
Globally unique vendor ID (used by Radius) assigned by the IANA.
Cisco Systems is assigned ID 9.
No
vendor-name
Vendor name that corresponds to the vendor-id.
Cisco
No
Application-id
Globally unique value that must match the AppType in the .inf file. The application-id must be the same throughout a posture data file.
Must be in the range of 61440–65535.
Yes
Application-name
The name of the script that created the posture data file.
String—no spaces allowed. Only characters, numbers, underscore, or hyphen.
No
attribute-id
Globally unique value assigned to each attribute definition.
Must be in the range of 32768–65535.
Yes
attribute-name
Describes the attribute.
String—no spaces allowed. Only characters, numbers, underscore, or hyphen.
No
attribute-profile
Always ignored. It is included to be consistent with the attribute definition file for ACS.
in, out
No
attribute-type
Format of the attribute-value.
String, integer, unsigned integer, ipaddr, date, version, octet-array
Yes
attribute-value
The posture information passed back to ASC and used in making a policy decision.
See Table 2-13 for a list of the possible values.
Yes
60
Chapter 2: Cisco Trust Agent
Table 2-13 lists the possible formats for the attribute-values used in the posture data file. Remember that the entire point of your script is to create a file of attribute-values. CTA passes these custom attribute-values to ACS, which compares them against the posture policy to help determine the host’s overall posture. Table 2-13
Possible Formats for the attribute-value Data
Data Type
Description
Example
octet-array
A stream of hexadecimal octets, separated by spaces
0x23 0x11 0x0B
integer
A 32-bit signed integer value
–12
Valid range: –2147483647–2147483646 unsigned integer
32-bit unsigned integer
430
string
Free text string
CustomApp_01
ipaddr
Standard 4-tuple dotted-decimal representation of an IP address
192.168.1.1
date
32-bit unsigned value representing the number of seconds elapsed since midnight January 1, 1970, Coordinated Universal Time (UTC)
1134439111
version
String representation of version, in dotteddecimal format. major.minor.revision.rebuild
5.0.1.214
The posture data file can be saved anywhere on a Windows system, but it is recommended that it be saved under the \Program Files\Cisco Systems\CiscoTrustAgent directory. On Linux systems, the posture data file must be saved in the directory /var/tmp/ CiscoTrustAgent/pdata.
Step 2: Create an .inf File An .inf file is required for each script. It must be saved in the \PostureAgent\Plugins\install directory on the host machine. (For Windows, the directory is C:\Program Files\Common Files\PostureAgent\Plug-Ins\Install; for Mac and Linux, it is /opt/PostureAgent/Plug-Ins/ Install). CTA uses the .inf file to register the CTA script posture plug-in, and as a means of locating your custom posture attributes in the local posture database. For this reason, the AppType value must match the application-id value used in the posture data file generated by your script. Example 2-3 shows a sample .inf file that can be used as the basis for all your scripts. You should modify only the last three lines. The AppList is a string (without spaces) that should uniquely describe your script. Also change the corresponding section heading, and ensure that the AppType is in the range 61440–65535 and matches the application-id used in the posture data file created in Step 1. That is all there is to creating and registering the .inf file.
CTA Scripting Interface
61
Example 2-3 Sample .inf File [main] PluginName=ctascriptPP.dll ; For MAC and Linux hosts use the following line instead ; PluginName=ctascriptpp.so VendorID=9 Styles=SupportAsync AppList=script_1 [script_1] AppType=61440
Step 3: Add Attributes to ACS Dictionary The final step is to add the attribute definitions to the ACS dictionary so that ACS is aware of their existence and they can be used in the posture policy definition. To begin, take the posture data file created by your script and copy it to a new file. It is a good idea to maintain the same name on the file but change the suffix to .ini. Next, edit the file and remove the attribute-value line from each of the attribute definition sections. Note that this will be the last line of each section. Finally, move the file to the ACS server and import it into the ACS dictionary using the CSUtil.exe utility. Example: CSUtil.exe –addAVP script1_data_file.ini
NOTE
The CSUtil.exe is located in the following directory starting with ACS Version 4.0: C:\Program Files\CiscoSecure ACS vX.X\bin where X.X is the version of your Cisco Secure ACS software.
NOTE
After adding the attributes to the ACS dictionary, you must stop and restart the CSAuth, CSAdmin, and CSLog services. All services can be restarted from the ACS GUI interface by selecting System Configuration, Service Control, Restart.
62
Chapter 2: Cisco Trust Agent
With the new custom attributes added to the ACS dictionary, you are now ready to use them in your posture policy.
Executing the Scripting Interface When all these steps are complete, the only remaining task is to have your script run the ctasi executable file to import the policy data file into the policy database. On a Windows box, the ctasi.exe file is located in the following directory: C:\Program Files\Common Files\PostureAgent\ On Mac and Linux, it is located here: /opt/PostureAgent/ ctasi will accept two variables passed in. The first is required. It must be the full path to the posture data file. The second is optional and represents whether the script has detected a posture change since the last time it was run. A value of 1 indicates that the script detected a change in posture and CTA should be alerted to this, regardless of the contents of the data file. A value of 2 indicates that the script did not detect a change in posture, and CTA should accept this, regardless of the contents of the data file. If no value is specified, CTA will determine whether a status change occurred by comparing the most recent posture reported with the previous one for the same application-id. In the following example, the posture data file is named script1_data_file.txt and is located in the C:\PostureDataFiles\ directory. The CTA Scripting Interface executable is run, passing in the full path to the file, along with the optional variable 1, to alert CTA that a change has taken place since the previous time the script ran. ctasi.exe C:\PostureDataFiles\script1_data_file.txt 1
An external process (scheduled task, startup script, and so on) should execute your script on a periodic basis so that the data saved to the policy database does not become stale. However, CTA also ages out data added to the posture database by the Scripting Interface if it exceeds a delta_stale value. The default delta_stale value is 43200 minutes (approximately one month). This value can be changed by specifying a new delta_stale value in the ctad.ini file. Example 2-4 shows part of a sample ctad.ini file with the delta_stale value set to 720 minutes. Example 2-4 Sample ctad.ini File Specifying a delta_stale Value Example: ; Sample ctad.ini file [Scripting_Interface] delta_stale=720
CTA Logging Service
63
Remember that this value applies to all posture data added to the database through the Scripting Interface. If more granular control is required, ACS can be configured to age out data on a per-AppType (or per-script) basis. To use this method, you must first add the WriteTimeStamp attribute to the ACS dictionary using CSUtil.exe. Example 2-5 shows a sample WriteTimeStamp.ini file. Example 2-5 Sample WriteTimeStamp.ini file [attr#0] vendor-id=9 vendor-name=Cisco application-id=61440 application-name=Script-001 attribute-id=15 attribute-name=WriteTimeStamp attribute-profile=in attribute-type=date
The WriteTimeStamp attribute applies only to the specified application-id. If additional application-ids are used, modify the application-id and application-name attributes in the WriteTimeStamp.ini file and add it to the ACS dictionary again. When the WriteTimeStamp is added to ACS, you can use it in your policy definition to provide more granular control over when to age out stale data.
NOTE
The local delta_stale attribute on the host overrides any aging policy set on the ACS. For this reason, the delta_stale value should be larger than any value used in a posture policy on ACS.
CTA Logging Service CTA includes its own logging service, ctalogd, for recording events and troubleshooting issues with CTA and posture plug-ins. Because CTA is designed to be a silent application on the end host, logging is disabled by default. However, logging can be enabled through one of two methods:
• •
Creating a ctalogd.ini file Using the clogcli utility
With logging enabled, CTA saves the log files in the following directories by default: Windows: C:\Program Files\Cisco Systems\CiscoTrustAgent\Logging\Logs\ Mac and Linux: /var/log/CiscoTrustAgent/ You can change the default log directory by specifying a different directory in the LogDir attribute in the ctalogd.ini file. With logging enabled, CTA will write all logs to a single file
64
Chapter 2: Cisco Trust Agent
in the log directory. A new file is created every time the log service restarts (when the system reboots) or after the file has reached a specified size (4MB, by default). Each log file has a unique name and follows the following naming convention: CTALOG-YYYY-MM-DDTHH-MM-SS_N.txt Where file values are
• • • • • • • •
YYYY—Four-digit year MM—Month DD—Day T—Literal character separator between date and time HH—Hour MM—Minute SS—Second N—Integer indicating the Nth log file created since the service was started
Creating a ctalogd.ini File The ctalogd.ini file defines the configuration of the logging service. It includes parameters for enabling/disabling logging, log retention policies, and the logging levels for each CTA component. A sample ctalogd.ini file (named ctalogd.tmp) is created when CTA is installed and can be found in the /Logging directory. Edit this file to meet your logging needs, and then save it as ctalogd.ini in the same directory. Example 2-6 shows a sample ctalogd.ini file with all options listed and all logging components set to level 3 (High). Example 2-6 Sample ctalogd.ini File [main] EnableLog=1 LogDir=C:\Program Files\Cisco Systems\CiscoTrustAgent\Logging\Logs MaxFileSize=1 MaxDiskSize=50 FileDeleteAge=30 [LogLevel] PADaemon=3 NetTrans=3 PAPlugin=3 CTAMsg=3 CTAD=3 PEAP=3 EAPTLV=3 EAPSQ=3 PPMgr=3
CTA Logging Service
65
Example 2-6 Sample ctalogd.ini File (Continued) PSDaemon=3 HostPP=3 CTASI=3 ScriptPlugin=3 CTASC=3 CTAVSTLV=3 CTASTATE=3
Table 2-14 lists the configurable options in the ctalogd.ini file. If any attribute is not listed in the ctalogd.ini file, then the default value is used. Table 2-14
ctalogd.ini Configurable Options
Attribute
Description
Value
[main]
Main section header—required.
[main]
EnableLog
Specifies whether logging is enabled.
0 = Disabled (default) 1 = Enabled 2 = Enabled temporarily (until reboot)
LogDir
Full path where log files are stored.
Any full, valid path
MaxFileSize
Maximum size of a single log file in megabytes. If this size is reached, a new log file is created.
0 = no limit
Maximum allowable disk space for log files in megabytes.
0 = no limit
MaxDiskSize
4 = (default) 50 = Max 50 = Min, 100 = Max 50 = (default)
FileDeleteAge
Max age of files before they are deleted.
0 = never delete 30 = (default)
[LogLevel]
Section header for specifying individual component logging levels.
[LogLevel]
PADaemon
CTA Posture Agent daemon logging component
0 = Disabled (default) 1 = Low (critical) 2 = Medium (warnings) 3 = High (informational) 15 = Debug (Packet Dump) continues
66
Chapter 2: Cisco Trust Agent
Table 2-14
ctalogd.ini Configurable Options (Continued)
Attribute NetTrans
Description Network Transport logging component
Value 0 = Disabled (default) 1 = Low (Critical) 2 = Medium (warnings) 3 = High (informational) 15 = Debug (Packet Dump)
PAPlugin
Posture Plug-In logging component
0 = Disabled (default) 1 = Low (Critical) 2 = Medium (Warnings) 3 = High (Informational) 15 = Debug (Packet Dump)
CTAMsg
CTA’s User Notify logging component
0 = Disabled (default) 1 = Low (Critical) 2 = Medium (Warnings) 3 = High (Informational) 15 = Debug (Packet Dump)
CTAD
CTA daemon service logging component
0 = Disabled (Default) 1 = Low (Critical) 2 = Medium (Warnings) 3 = High (Informational) 15 = Debug (Packet Dump)
PEAP
PEAP logging component
0 = Disabled (default) 1 = Low (Critical) 2 = Medium (Warnings) 3 = High (Informational) 15 = Debug (packet dump)
EAPTVL
EAP TVL logging component
0 = Disabled (default) 1 = Low (Critical) 2 = Medium (Warnings) 3 = High (Informational) 15 = Debug (packet dump)
CTA Logging Service
Table 2-14
ctalogd.ini Configurable Options (Continued)
Attribute EAPSQ
67
Description EAP Status Query logging component
Value 0 = Disabled (default) 1 = Low (Critical) 2 = Medium (Warnings) 3 = High (Informational) 15 = Debug (packet dump)
PPMgr
Third-party posture plug-in logging component. If enabled, this specifies the logging level for all third-party plug-ins.
0 = Disabled (default) 1 = Low (Critical) 2 = Medium (Warnings) 3 = High (Informational) 15 = Debug (Packet Dump)
PSDaemon
CTA Policy Server daemon logging component
0 = Disabled (default) 1 = Low (Critical) 2 = Medium (Warnings) 3 = High (Informational) 15 = Debug (Packet Dump)
HostPP
CTA’s built-in host posture plug-in logging component. The HostPP is used to retrieve posture information from the host OS.
0 = Disabled (default) 1 = Low (Critical) 2 = Medium (Warnings) 3 = High (Informational) 15 = Debug (Packet Dump)
CTASI
CTA Scripting Interface logging component
0 = Disabled (default) 1 = Low (Critical) 2 = Medium (Warnings) 3 = High (Informational) 15 = Debug (Packet Dump)
ScriptPlugin
CTA Scripting Interface posture plug-in logging component
0 = Disabled (default) 1 = Low (Critical) 2 = Medium (Warnings) 3 = High (Informational) 15 = Debug (Packet Dump) continues
68
Chapter 2: Cisco Trust Agent
Table 2-14
ctalogd.ini Configurable Options (Continued)
Attribute CTASC
Description CTA Status Change Logging component
Value 0 = Disabled (default) 1 = Low (Critical) 2 = Medium (Warnings) 3 = High (Informational) 15 = Debug (Packet Dump)
CTAVSTLV
CTA Vendor Specific TLV logging component
0 = Disabled (default) 1 = Low (Critical) 2 = Medium (Warnings) 3 = High (Informational) 15 = Debug (Packet Dump)
CTASTATE
CTA State logging component
0 = Disabled (default) 1 = Low (Critical) 2 = Medium (Warnings) 3 = High (Informational) 15 = Debug (packet dump)
If your company policy is to record critical events on the host machines, you can set the logging level to 1 (Low). Levels 2 and 3 are generally reserved for troubleshooting. There is no harm in setting these higher logging levels because the logs will be limited in the amount of disk space they can consume, and they will have negligible impact on the CPU. By default, the logging service will keep 50MB of files and up to 30 days’ worth of files. Logging level 15 should be used at the direction of the Cisco TAC, to troubleshoot a problem with you.
Using the clogcli Utility CTA provides a command-line utility, clogcli, that enables and disables logging on the fly to assist in troubleshooting CTA issues. This utility does not require the presence of the ctalogd.ini file, and thus is simple yet quick and easy to use. All logging configuration parameters are passed to the utility at execution time and take affect immediately. The clogcli utility is located in the following directories: Windows: C:\Program Files\Cisco Systems\CiscoTrustAgent\ Mac and Linux: /opt/CiscoTrustAgent/sbin/
CTA Logging Service
69
Table 2-15 provides a description of the command-line options for the clogcli utility. The command syntax is as follows: clogcli {enable [-t] | disable | clear | loglevel [1-3, 15] | maxfile [0-50] | maxdisk [0, 50-100] | fileage [0 - ...n] | logdir [any valid local dir | default] | zipit}
Table 2-15
clogcli Utility Options
Option clear
Description Clears the current log file. If logging is enabled, a new log file is created.
disable
Disables logging.
enable
Enables logging.
enable –t
Enables logging temporarily until the host is rebooted.
fileage
Specifies the maximum age that a log file will be kept, in days [0–[el]]. The default is 30 days. A value of 0 keeps the files forever.
logdir
Specifies a valid full path where the log file should be written. If this option is not specified, the log will be written to the default directory.
loglevel
Sets the logging level for all CTA components at once and to the same level. 1 = Low (Critical) 2 = Medium (Warnings) 3 = High (Informational) 15 = Debug (Packet Dump)
maxdisk
Specifies the maximum amount of disk space that can by used by logging (in megabytes). When this limit is reached, the oldest log files are deleted until the space used falls below this limit. The default is 50MB.
maxfile
Specifies the maximum size a single log file can grow to, in megabytes (MB). If this option is not specified, the default of 4MB is used.
zipit
Captures the log files and zips them into a compressed archive.
When executing the clogcli command, you can pass only one option at a time. Therefore, if you wanted to temporarily enable logging and set the level to High, you would issue the following two commands: clogcli enable –t clogcli loglevel 3
In the background, the clogcli executable checks whether a ctalogd.ini file exists. If not, it creates one. If one does exist, it modifies the file by inserting or adjusting the appropriate option.
NOTE
If you use comments in the ctalogd.ini file, note that the executing clogcli will cause all comments to be removed from the ctalogd.ini file.
70
Chapter 2: Cisco Trust Agent
Deploying CTA in a Production Network When you have thoroughly tested CTA in conjunction with the other components of NAC Framework in a lab environment and have decided on the configuration options for CTA, you can proceed with preparations for a production rollout.
NOTE
Before continuing, it is assumed that you have already read most of the remaining chapters in this book and have made a detailed, phased plan for a production rollout of CTA. You should have identified the ACS boxes you will be using for NAC and obtained the respective CA certificates. You should also know whether you will be using any third-party posture plug-ins that you can deploy with the CTA custom installation.
The first step in the production deployment is to download the appropriate CTA Admin package to an administrative workstation. Refer to Table 2-3 for a list of the available Admin packages. Execute the admin package to extract the client installation file. In addition, the process prompts you to accept the EULA. Because you will be pushing the application out to your users silently, they will not be prompted to accept the EULA. Therefore, your acceptance of the EULA here is on behalf of your end users. The next step is to gather all the files needed for the customized deployment and place them in a temporary directory. These files might include the following:
• •
CTA client executable (with or without the wired supplicant)
• • • • •
ctalogd.ini file, specifying logging settings and logging levels
ctad.ini file with communication settings, user-notification options, and certificatematching rules specified CA certificate to authenticate ACS’s server certificate Microsoft Windows Installer (MSI) Third-party posture plug-ins Customized .inf files for the Scripting Interface
Finally, prepare to create the distributable archive by copying the configuration files, certificates, and plug-ins to the appropriate directories for CTA to access during the install. Create all directories under the directory where the CTA silent package is located. Table 2-16 lists the files and directories that can be included.
Deploying CTA in a Production Network
Table 2-16
71
CTA Custom Installation Files
File or Directory ctasetup-win-version.exe ctasetup-supplicant-win-version.exe
Description CTA client installation file. Select the appropriate one for your custom installation package.
CiscoTrustAgent.mpkg cta-linux-version.i386.rpm ctad.ini
Configuration file that specifies communication settings, user notifications, and certificate validation.
ctalogd.ini
Configuration file that specifies the logging settings.
certs\
Create this directory and place the CA certificates for the ACS servers in it. These certificates are required. During CTA installation, any certificate located in this directory is added to the system root certificate store.
plugins\
Create this directory and place any third-party posture plug-in files in it, to be provisioned at install time. If using the optional Scripting Interface, place any custom .inf files in this directory as well.
802_1x\policies\
(Optional) This directory should contain the custom .xml policy file for the 802.1X wired supplicant that you saved at the end of the supplicant configuration wizard.
802_1x\networks\
(Optional) This directory should contain the custom .xml network file for the 802.1X wired supplicant that you saved at the end of the supplicant configuration wizard.
*.inf
(Optional) INF files for custom scripts. Place these files in the plugins\ directory.
instmsiw.exe
(Optional) Microsoft Windows installer application. This is needed only for clients that do not have MSI 2.0 already installed (older Windows NT clients).
Create the custom installation package by including the extracted silent installation file, along with any custom configuration files, certificates, and plug-ins in a distributable file set. One example is to include the files in a compressed zip archive, as shown in Figure 2-6, and push the zip file out to the individual clients. However, there is no restriction on how the files are deployed to the clients.
NOTE
If you deploy the CTA executable file without any custom configuration files, then CTA installs with all the defaults. However, you must still install the CA certificate before CTA could be operational.
72
Chapter 2: Cisco Trust Agent
Figure 2-6
CTA Distribution Package Example
With the distribution package deployed to the clients, complete the installation instructions in the corresponding section for your operating system.
Deploying CTA on Windows With the deployment package pushed out to the end clients, extract the files to a temporary directory to prepare for installation. CTA uses the standard MSI installer; options are included on the command line to determine the level of user interaction and what features to install. Table 2-17 lists the common MSI installation options Table 2-17
MSI Common Installation Options
Option
Description
/I “path_to_file”
Installs the MSI program located at path_to_file using an interactive installation wizard. Example:
/x ProductCode
Uninstalls the program with the ProductCode specified. CTA’s ProductCode can be found by using the Windows Registry editor and navigating to HKEY_LOCAL_MACHINE\Software\Cisco Systems\Cisco Trust Agent.
ADDLOCAL=option
Enables you to specify which features you want to install. The only two valid features for CTA are: 8021x_Wired_Client and Scripting_Interface. Both can be installed by using the ALL option or by separating them with a comma. Examples:
msiexec.exe /I “C:\temp\ctasetup-win-2.1.0.11.msi”
msiexec.exe /I “C:\temp\ctasetup-supplicant-win-2.1.0.11.msi” ADDLOCAL=8021x_Wired_Client,Scripting_Interface msiexec.exe /I “C:\temp\ctasetup-supplicant-win-2.1.0.11.msi” ADDLOCAL=ALL
Deploying CTA in a Production Network
Table 2-17
73
MSI Common Installation Options (Continued)
Option REBOOT=option
Description By default, the MSI installer will detect when a reboot is needed and automatically prompt the user. This action can be overridden by specifying the REBOOT option on the command line. The Force option automatically reboots the system when the installation completes, without prompting the user. The ReallySuppress option suppresses all reboots (both during and after the installation), and the user is never prompted. Example: msiexec.exe /I “C:\temp\ctasetup-supplicant-win-2.1.0.11.msi” ADDLOCAL=8021x_Wired_Client REBOOT=Force
/L*V “path_to_file”
The /L option instructs the installer to create a log file during the installation. *V indicates to use verbose logging. The path_to_file is the full path and filename of the log file to be created. The path must already exist. Example: msiexec.exe /I “C:\temp\ctasetup-win-2.1.0.11.msi” /L*V “C:\temp\cta_install.log”
/q, /qf, /qr, /qn+, /qb, /qb+
These options specify how much user interaction occurs during the CTA installation. /q—Quiet, no interaction. Silent install. /qf—Full user interaction. Users must walk through the installation wizard. /qr—Users see some of the installation wizard windows and a progress bar, but they are not prompted for any action. /qn+—Users receive a pop-up message at the end of the installation, indicating success or failure. /qb—Users see messages alerting them that CTA is being installed and configured, but they are not prompted to take any action. /qb+—Same as /qb, plus at the end, they receive a pop-up message indicating success or failure. Example: msiexec.exe /I “C:\temp\ctasetup-win-2.1.0.11.msi” /q
To solidify this section, we cover three of the very common CLI options to install the client on end machines, and we show the files and directory structure needed for the installation. In all cases, a customized ctad.ini and ctalogd.ini file were included in the deployment package. The most common deployment is to install CTA completely silently, without any other features. This command is needed to execute this installation: C:\> msiexec.exe /I “C:\temp\ctasetup-win-2.1.0.11.msi” /q
The CTA installation file, along with the corresponding custom configuration files and the root CA certificate, was deployed as part of a deployment package. The directory structure and files needed are shown in Example 2-7.
74
Chapter 2: Cisco Trust Agent
Example 2-7 Directory Structure and Files Needed for Standard Installation C:\temp>dir /S /B /A-D C:\temp\ctasetup-win-2.1.0.11.msi C:\temp\ctad.ini C:\temp\ctalogd.ini C:\temp\certs\root_ca.cer
Likewise, for the CTA wired client, with a completely silent install and no reboot at the end (which is required before the 802.1X supplicant will operate) the command would be C:\> msiexec.exe /I “C:\temp\ctasetup-supplicant-win-2.1.0.11.msi” ADDLOCAL=8021x_Wired_Client REBOOT=ReallySuppress /q
Example 2.8 shows the directory structure and files needed for this installation. Example 2-8 Directory Structure and Files Needed for Supplicant Installation C:\temp>dir /S /B /A-D C:\temp\ctasetup-supplicant-win-2.1.0.11.msi C:\temp\ctad.ini C:\temp\ctalogd.ini C:\temp\certs\root_ca.cer C:\temp\802_1x\policies\802_1x-auth-policy.xml C:\temp\802_1x\networks\802_1x-auth-networks.xml
Finally, to install the CTA wired client, along with the Scripting Interface and a custom script .inf file, allow the user to see the installation occur and let Windows determine whether a reboot is needed, use the following command: C:\> msiexec.exe /I “C:\temp\ctasetup-supplicant-win-2.1.0.11.msi” ADDLOCAL=8021x_Wired_Client,Scripting_Interface /qr
The directory structure and files needed for this installation are shown in Example 2-9. Example 2-9 Directory Structure and Files Needed for Supplicant and Scripting Interface Installation C:\temp>dir /S /B /A-D C:\temp\ctasetup-supplicant-win-2.1.0.11.msi C:\temp\ctad.ini C:\temp\ctalogd.ini C:\temp\certs\root_ca.cer C:\temp\plugins\script1.inf C:\temp\802_1x\policies\802_1x-auth-policy.xml C:\temp\802_1x\networks\802_1x-auth-networks.xml
NOTE
For a complete list of MSI command-line options, see the Microsoft Windows Installer SDK: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/msi/setup/ about_windows_installer.asp
Deploying CTA in a Production Network
NOTE
75
CTA will not create a program group once installed, or an icon on the desktop or in the system tray. It is essentially hidden from the end user. If the 802.1X wired supplicant is installed, an icon appears in the system tray to alert the user about the connection status.
The procedure for installing CTA on Mac and Linux is similar and is covered in the next two sections.
Deploying CTA on Mac OS X Earlier in this chapter, we extracted the cta-darwin-version.dmg disk image from the CTA admin installation file. The disk image includes the CiscoTrustAgent.mpkg package, which is used to install CTA. The disk image can also be customized by adding configuration .ini files, as well as the root CA certificate. Follow these steps to customize the disk image and install CTA on end clients: Step 1 Locate the cta-darwin-version.dmg disk image file in Finder and rename
it to indicate that is has been customized. In this example, you will name it cta-custom-darwin-version.dmg. Step 2 Double-click the custom disk image to open its contents. Step 3 Copy the root CA certificate for your ACS server (or ACS’s self-signed
certificate, if not using a CA) to the Certs directory. Step 4 (Optional) Copy any third-party plug-ins for the plug-ins directory. Step 5 (Optional) Create a ctad.ini file to customize CTA and copy it to the
CiscoTrustAgent disk image (at the same level as the CiscoTrustAgent.mpkg file). Step 6 (Optional) Create a ctalogd.ini file to customize CTA’s logging and copy
it to the CiscTrustAgent disk image (at the same level as the CiscoTrustAgent.mpkg file). Step 7 (Optional) Copy any custom .inf files that you created to use with the
Scripting Interface to the plug-ins directory. Step 8 Eject the customized disk image.
76
Chapter 2: Cisco Trust Agent
Step 9 Deploy the custom disk image file to your Macintosh machines. Step 10 On the remote client machine, change to the directory where the custom
disk image was deployed and execute the command open cta-customdarwin-version.dmg. Step 11 Change to the directory /Volumes/CiscoTrustAgent. Step 12 Install CTA by executing the following command (all on one line): sudo installer –verbose –pkg /Volumes/CiscoTrustAgent/ CiscoTrustAgent.mpkg/ -target /Volumes/Macintosh\ /HD
If you want to install the optional Scripting Interface, use the following command instead: sudo installer –verbose –pkg /Volumes/CiscoTrustAgent/ CiscoTrustAgent.mpkg/CiscoTrustAgentSI.pkg/ -target /Volumes/ Macintosh\ /HD
Step 13 When prompted, enter the Administrator’s password. CTA will now be
installed. When finished, you will see the message “The install was successful.” Step 14 Exit the /Volumes/CiscoTrustAgent directory by typing cd .. Step 15 Complete the installation by detaching the CiscoTrustAgent volume. To
do this, execute the command hdiutil detach /Volumes/ CiscoTrustAgent. Step 16 A message appears, indicating that the volume was unmounted and
ejected. This completes the installation of a custom deployment package of CTA on a Mac.
Deploying CTA on Linux As indicated earlier in this section, you need to create a custom distribution package that contains the cta-linux-version.i386.rpm file, along with the root CA certificate (located in the /certs subdirectory) and, optionally, ctad.ini and ctalogd.ini, plus any third-party plugins (in the /plugins subdirectory) you plan to use. With the custom distribution package created, follow the steps below to install CTA on Linux client machines. Step 1 Deploy the custom distribution package to your end clients and extract
the contents to a temporary directory. In this example, we use /tmp/CTA. Example 2-10 shows files and directories our distribution package created.
Troubleshooting CTA
77
Example 2-10 Directory Structure and Files Needed for Supplicant and Scripting [root@linux CTA]# ls –bR1 .: certs ctad.ini cta-linux-2.1.0-11.i386.rpm ctalogd.ini plugins ./certs: root_ca.cer ./plugins: script1.inf
Step 2 Install CTA by executing the command rpm –ivh cta-linux-
version.i386.rpm. You will receive messages indicating that CTA was installed. Example: [root@linux CTA]# rpm –ivh cta-linux-2.1.0-11.i386.rpm Preparing... 1:cta-linux
################################## [100%] ################################## [100%]
Step 3 This completes the installation of a custom deployment package of CTA
on Linux.
Troubleshooting CTA This section includes some common problems you might run into during the deployment of CTA, along with examples. We begin with installation issues.
Installation Issues If you have successfully installed CTA but are not being postured, or are seeing any indication that CTA is operational, first verify that the services are running. For Windows, you should see the following services running:
• • • •
Cisco Posture Server Daemon Cisco Systems, Inc., CTA Posture State Daemon Cisco Trust Agent EOU Daemon Cisco Trust Agent Logger Daemon
78
Chapter 2: Cisco Trust Agent
If the 802.1X lite supplicant is installed, you will also see the following services:
•
Cisco Trust Agent 802.1X wired client
For Mac and Linux installations, verify that the following daemons are running:
• • • •
ctad ctalogd ctapsd ctaeoud
This can be verified by executing the command: ps –A grep cta
If one or more of the services are not running, reboot the machine to see if that resolves the issue. If not, enable logging in the ctalogd.ini file and examine the logs to see if they give a reason why a service failed to start. If necessary uninstall, reboot, and then reinstall CTA.
Communication Issues CTA communicates on UDP port 21862 with the NAD. If you are experiencing communication issues, ensure that this port is not blocked by a host-based firewall or an ACL on a device between your client and the NAD. Take a sniffer trace on the client and verify that you are seeing two-way communications. You can also use the ctastat utility to view the current status of CTA. This executable is located in the default CTA installation directory. When run, the command returns the session type, the system posture token, and the last time posture information was sent or received. It also includes information about each of the posture plug-ins installed. See Examples 2-11 and 2-12 for the output of this command on EAPoUDP and 802.1X-enabled clients.
Example 2-11
ctastat Output for an EAPoUDP Session C:\Program Files\Cisco Systems\CiscoTrustAgent>ctastat CTA Statistics Reporting Tool Cisco Trust Agent Statistics Current Time: Sat Aug 19 16:11:50 2006
Session Information Session Number (Hex): 01000000 Session Type: EOU IP Address: 172.18.173.99:21862
Troubleshooting CTA
Example 2-11
ctastat Output for an EAPoUDP Session (Continued) System Posture Token Value: Healthy Received on: Sat Aug 19 14:47:58 2006 Total Postures Received: 38 Last SQ Response was "No Status Change" Last "Status Change": Sat Aug 19 14:47:57 2006 Plugin Vendor/Application: 9/1 Application Posture Token Value: Healthy Received: Sat Aug 19 14:47:58 2006 Posture Request last received: Sat Aug 19 14:47:58 2006 Length of last response to Posture Req: 42 Sent: Sat Aug 19 14:47:58 2006 Plug-ins: Vendor: Cisco Systems Application ID: 1 Status: Operational Application ID: 2 Status: Operational
Example 2-12 ctastat Output for an 802.1X Session C:\Program Files\Cisco Systems\CiscoTrustAgent>ctastat CTA Statistics Reporting Tool Cisco Trust Agent Statistics Current Time: Sun Aug 13 18:25:37 2006
Session Information Session Number (Hex): 02000000 Session Type: 802.1X Local MAC Address: 00D0B74C46EC Remote MAC Address: 0014A9386882 System Posture Token Value: Healthy Received on: Sun Aug 13 17:24:51 2006 Total Postures Received: 2 Plugin Vendor/Application: 9/1 Application Posture Token Value: Healthy Received: Sun Aug 13 17:24:51 2006 Posture Request last received: Sun Aug 13 17:24:51 2006 Length of last response to Posture Req: 42 Sent: Sun Aug 13 17:24:51 2006 Plug-ins: Vendor: Cisco Systems Application ID: 1 Status: Operational Application ID: 2 Status: Operational
79
80
Chapter 2: Cisco Trust Agent
System Logs Enabling logging is also a great way to troubleshoot any problem on CTA after installation. Logging can be enabled quickly and easily just by executing the following two commands: clogcli enable –t clogcli loglevel 3
This set of commands enables logging temporarily (using the -t variable), until the next reboot, at an Informational level (using the loglevel 3 variable). Some example log messages follow. The following error indicates that CTA was unable to retrieve a key from the Windows Registry: 2 15:55:56.186 10/02/2005 Sev=Critical/1 to Open Registry Key, error code 13
PSDaemon/0xE3C0001C
Failed
Table 2-18 lists the Registry entries created by CTA. If you encounter this problem, verify that these entries exist. If any are missing, attempt a reinstall after rebooting the machine.
Table 2-18
Windows Registry Entries Created by CTA
Description
Registry
Cisco Trust Agent Service
\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ctad
Cisco Trust Agent Logging Service
\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ctalogd
Cisco Trust Agent MSI Product Code
\HKEY_LOCAL_MACHINE\SOFTWARE\CiscoSystems\Cisco Trust Agent\ProductCode\
Cisco Trust Agent Install Paths
\HKEY_LOCAL_MACHINE\SOFTWARE\CiscoSystems\Cisco Trust Agent
MSI Install Information
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\ UserData\S-1-5-18\Products\
MSI Uninstall Information
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall \Product_code Product_code refers to the code in the Cisco Trust Agent MSI Product Code key in the registry.
The following message indicates that ACS is requesting posture information through the NAD: 30 17:07:14.443 10/02/2005 Sev=Info/4 being requested on session 0x02FFFFFE
PSDaemon/0x63C0001B
Posture is
Troubleshooting CTA
81
The following messages indicate that ACS evaluated the posture credentials returned from the client and assigned a Healthy posture token to both the application and the system: 60 17:15:55.763 10/02/2005 Posture Result = Healthy 61 17:15:55.763 10/02/2005 Posture Result = Healthy
Sev=Info/4
PAPlugin/0x63200001
Sev=Info/4
Application
PAPlugin/0x63200002
System
The following messages show a certificate that was successful in passing the DN certificatevalidation rules: 21 14:17:40.683 10/04/2005 Sev=Info/5 PEAP/0x6340000D Server certificate (/C=US/ST=NC/O=RTP/OU=cisco/CN=acs01) has been validated by local CA certificate (/DC=com/DC=cisco/CN=ca server1). 22 14:17:40.733 10/04/2005 Sev=Info/5 PEAP/0x6340000F Server certificate matches following DN checking rule: CN="acs01"
The following messages show a certificate that failed to match the DN certificate-validation rules. 266 14:07:51.671 10/04/2005 Sev=Info/5 PEAP/0x6340000D Server certificate (/C=US/ST=NC/O=RTP/OU=cisco/CN=acs01) has been validated by local CA certificate (/DC=com/DC=cisco/CN=ca server1). 267 14:07:51.671 10/04/2005 Sev=Warning/2 PEAP/0xA3400009 Server certificate failed DN verification (no matching rules), connection is rejected.
Many of the log messages are meaningful and can be interpreted literally. However, some require the assistance of the Cisco TAC to interpret.
CTA Client Fails to Receive a Posture Token You can quickly validate the posture token a client receives by checking either the NAD (for NAC-L2-IP and NAC-L3-IP) or the Passed and Failed attempts logs on ACS. The following output from a Cisco IOS switch shows a client that failed to receive a posture token. c3750#show eou all ------------------------------------------------------------------------Address Interface AuthType Posture-Token Age(min) ------------------------------------------------------------------------172.18.173.69 GigabitEthernet1/0/4 EAP ------6
Next, if the NAD device does not have too many clients, we can enable debug radius authentication to watch the authentication debugs. Once enabled, we will force a reposturing of the client by issuing the following command on the NAD clear eou ip 172.18.173.69. From the output of the RADIUS debugs, we see that the ACS server returned an Access-Reject packet. 6w2d: 6w2d: 6w2d: 6w2d: 6w2d: 6w2d:
RADIUS: Received from id 1645/111 172.18.173.77:1645, Access-Reject, len 56 RADIUS: authenticator DB 61 F7 FD 4F 2A 40 75 - C4 A5 2C E2 47 9F 24 10 RADIUS: EAP-Message [79] 6 RADIUS: 04 1C 00 04 [????] RADIUS: Reply-Message [18] 12 RADIUS: 52 65 6A 65 63 74 65 64 0A 0D [Rejected??]
82
Chapter 2: Cisco Trust Agent
The next step is to check the Failed Attempts logs on the ACS server. We find the current log for our client and see that the Authen-Failure-Code is that EAP-TLS or PEAP authentication failed during SSL handshake. This indicates a certificate issue. If other clients are successfully getting postured, you know that the ACS certificate is fine. So the next step is to check the client. On the client, execute ctalogd enable, followed by ctalogd level 3. This causes the client to start logging CTA events at level 3 (High). Next, we force a new revalidation by issuing the command clear eou ip 172.18.173.69 on the NAD, and we check the CTA log file. In it, we see the following: 22 16:44:31.216 08/19/2006 Sev=Warning/2 PEAP/0xA340000A PEAP certificate verification failure: self signed certificate in certificate chain. Subject of current certificate: /DC=com/DC=cisco/CN=ca-server1.
This tells us that the client did not establish the PEAP session because the certificate verification failed. Also note that the client thinks the certificate provided is a self-signed certificate. However, we know it is not. The reason the client thinks this is because it does not have a valid root CA certificate installed in its trusted root store. This problem is resolved by installing the root CA certificate on the client by issuing the command: C:\Program Files\Cisco Systems\CiscoTrustAgent>ctaCert.exe /ui 4 /add “C:\root_ca.cer” /store “Root”
We can verify that the client received a valid posture token by issuing the command show eou all on the NAD again. c3750#show eou all ------------------------------------------------------------------------Address Interface AuthType Posture-Token Age(min) ------------------------------------------------------------------------172.18.173.69 GigabitEthernet1/0/4 EAP Healthy 0
CTA 802.1X Wired Client The following sections apply only to the Cisco Trust Agent 802.1X wired client and cover troubleshooting wired client specific issues only. This does not apply to the CTA nonwired client.
CTA Wired Client System Report Utility Troubleshooting issues with 802.1X authentication can be complicated. However, the CTA 802.1X wired client comes with a nice tool called System Report, found in the Cisco Trust
Troubleshooting CTA
83
Agent 802.1X wired client program group. When executed, this tool gathers the following information from the client:
• •
*-networks.xml and *-policy.xml—Network- and policy-configuration files
• •
log_current.txt—CTA 802.1X wired client’s current log file
The contents of the profiles/ directory—Contains all the configuration files for the client CiscoLiteSysRepLogdate.txt—This file contains information about the client PC, including processor information, memory usage, active process list, network adapter information, Cisco Secure Services Client network, and policy profiles, as well as a list of all client files with their corresponding versions.
The System Report utility zips up all these files into a file named CiscoLiteSysRepdatestamp.zip. This .zip file is then placed on the user’s desktop where it can be e-mailed to the support team. Additional files are included in the .zip archive, including older log files, the client’s license file, and client debug logs, which can be sent to the Cisco TAC for additional troubleshooting, if necessary. Because some of these files contain sensitive information, the System Report utility allows you to encrypt the sensitive files with a password. Follow these steps to generate the System Report archive: Step 1 From the Windows Start menu, select Programs > Cisco Trust Agent
802.1X Wired Client > Cisco Trust Agent 802.1X Wired Client System Report. You should see the System Report utility screen shown in Figure 2-7. Figure 2-7
System Report Utility
84
Chapter 2: Cisco Trust Agent
Step 2 (Optional) Select the Protect Sensitive Data with the Following
Password check box to encrypt the configuration and licensing files. If selected, the .zip utility you use to extract the .zip archive must also support encrypted files. I have tested and used WinZip 9.0, and it works fine. Step 3 Click the Collect Data button to generate the report. Step 4 When complete, the archive file is placed on the user’s desktop. Click the
Locate Report File button to launch a Windows Explorer window showing the location of the file. The most important file in the archive is the log_current.txt file, which contains the most recent messages generated by the client. Each message in the log file is encoded in the following format: date time [process] msg_id severity context_ID string
The Severity field can be one of the following values:
• • •
I: Informational message W: Warning message E: Error message
When troubleshooting a client issue, it is best to search for error messages first to quickly locate the problem. Once located, examine the logs leading up to the error, to gain additional contextual information. The context_id field provides further information about the interface and device the client is authenticating with. Table 2-19 lists the possible values for the context_id field. Table 2-19
Possible Values for context_id Field Code
Description
MAC corresponds to the MAC address of the client interface adaptor.
MAC corresponds to the MAC address of the access device.
<MT Ethernet|WiFi>
Media Type identifier.
Connection identifier—an incrementing integer.
Profile name, truncated to 16 characters.
Usually, the log_current.txt file provides enough information to assist you in determining the cause of the problem. In rare cases when the message is not completely clear, you can lookup the msg_id in the table of possible messages at the end of the Cisco Trust Agent 802.1X Wired Client’s User Guide.
Troubleshooting CTA
85
Viewing the Client Logs and Connection Status in Real Time You can view the client logs and watch the connection status in real time by opening the CTA 802.1X wired client GUI and selecting the Manage Networks tab. Select the interface and network you are attempting to connect to from the list, and then select the Details button. A new Information window opens, displaying the real-time logs from the client. The current client status also appears at the top of the window. See Figure 2-8 for a screen shot of the Information window just after connecting to a NAC-L2-802.1x enabled wireless network. Figure 2-8
Client Information Window
Client Icon Does Not Appear in System Tray If you do not see the CTA 802.1X wired client icon in the system tray, open the client GUI and select the Client menu; deselect Show System Tray and then reselect it.
Client GUI Does Not Start If you receive an error when you attempt to start the client GUI, run the System Report utility. In the .zip archive that it creates, open the clientDebug_current.txt file and scroll down to the bottom to read the most current events. Most errors are printed in plain English (not encoded hex strings) and are, therefore, straightforward to understand and diagnose.
86
Chapter 2: Cisco Trust Agent
Note that installation of the client over Remote Desktop (RDC) is not supported. If attempted, upon reboot and logon via RDC, the client GUI will fail to start, even though the services are running. If you reboot the PC again and log on via the console (or over a VNC session), you can successfully start the client GUI, but, again, this is unsupported.
Client Does Not Prompt for Password One common reason the user is never presented with a password dialogue box is if the ACS server is not in the Trusted Server list or if none of the rules can validate ACS’s certificate. When this happens, if the user clicks the Connect button in the client GUI, the connection fails and the icon changes to red. In addition, in the bottom of the client window reads the message “Connection failed: The server is not trusted.” If you see this message, follow the instructions in the Defining Trusted Servers section in this chapter to add a trusted server rule for ACS. You can also validate this issue remotely by having the end user run the System Report tool and sending in the .zip file it creates. To verify that this is the problem, open the .zip file and look in the /log directory for the log_current.txt file. Open the file and scroll to the bottom (where the most recent messages are) and look for the message “Trusted server list empty, server cannot be validated.” If some trusted server rules are defined on the client, you should also see messages indicating why these rules failed to validate ACS’s certificate.
Wireless Client Is Immediately Dissociated after 802.1X Authentication If your wireless client is authenticating via 802.1X but then immediately dissociates from the access point, check the CPU usage on the client during the authentication process. If the CPU is high, the CTA 802.1X wired client might not be getting enough CPU time to complete the protocol handshake within the time period permitted by the access point. If the CPU is high, check that you are running antivirus software that automatically scans files that are written to disk. Most current antivirus software does this automatically. Because the CTA 802.1X wired client software generates a lot of log messages during the authentication phase, the antivirus software is busy monitoring all these disk writes. This often prevents the client from getting enough CPU time to complete the handshake within the time period allowed. To resolve this issue, exclude the following directories from being monitored by the antivirus software: C:\Program Files\Cisco Systems\Cisco Trust Agent 802_1x Wired Client\system\log C:\Program Files\Cisco Systems\Cisco Trust Agent 802_1x Wired Client\log
Review Questions
87
Client Is Disconnected (Suspended) If the status of the client shows up as Disconnected (Suspended), on the Manage Networks tab, you just need to press the Connect button to allow the client to reconnect to the network. However, sometimes the Connect button is grayed out. In these cases, right-click the Cisco Trust Agent 802.1X wired client tray icon and deselect Enable Client; then wait a second and re-enable it. This should cause the Connect button to no longer be grayed out.
Chapter Summary This chapter opened with an introduction to CTA, followed by a list of decisions that must be made before deployment. The minimum system requirements were covered next, along with step-by-step instructions for installing CTA in a lab environment. Deploying CTA in a production environment came next. The remainder of the chapter described the various configuration files, along with the options available in each. Quite a bit of time was also spent describing the optional Scripting Interface and how to use it. Finally, we wrapped up by devoting a section to configuring logging and troubleshooting.
References NAC2 Deployment Guide Cisco Trust Agent Administrator Guide 2.1
Review Questions You can find the answers to the review questions in Appendix A, “Answers to Review Questions.” 1. What port does CTA use to communicate with the NAD? a.
12628
b.
1812
c.
1813
d.
21862
2. What type of certificate is required to be installed on the CTA client? a.
Identity certificate
b.
Root certificate
c.
Self-signed certificate
88
Chapter 2: Cisco Trust Agent
3. The 802.1X supplicant bundled with CTA supports what interface types? a.
Wired interfaces only
b.
Wireless interfaces only
c.
Both wired and wireless interfaces
4. On default CTA installs, logging is a.
Enabled at level High
b.
Enabled at level Medium
c.
Enabled at level Low
d.
Disabled
5. To temporarily enable CTA logging: a.
Manually start the ctalogd service
b.
Execute the clogcli command
c.
Create a log.ini file
6. What command will allow you to view the current status of CTA? a.
show status
b.
ctad -status
c.
ctastat
7. What file must be edited to disable user notifications? a.
ctalogd.ini
b.
ctad.ini
c.
ctaconfig.ini
8. True or false: The CTA Scripting Interface is installed by default.
Review Questions
89
9. When using the Scripting Interface, which of the following is not true: a.
The AppType value in the .inf file must match the application-id used in the posture data file.
b.
The application-id can be any positive integer.
c.
The ctasi executable is used to load the output of your custom script into the posture database on the client.
10. How do you add custom attributes to the ACS database? a.
Use CSUtil.exe
b.
Import a csv file, attributes.def, into ACS
c.
Enter each one into the GUI under the Posture Validation section
This chapter covers the following topics:
• • • •
Installing and configuring the Cisco Secure Services Client
•
Troubleshooting the Cisco Secure Services Client
Deploying the Cisco Secure Services Client in a production network Viewing the current status of the Cisco Secure Services Client Understanding interaction of the Cisco Secure Services Client with Windows Wireless Zero Configuration
CHAPTER
3
Cisco Secure Services Client In Chapter 2, “Cisco Trust Agent,” we covered CTA and its included 802.1X wired supplicant. In this chapter, we look at the Cisco Secure Services Client. This is a fullfeatured 802.1X supplicant for wired and wireless interfaces that integrates natively with NAC. This is important because the integration allows the posture validation to take place in the 802.1X exchange itself, within the authentication phase. Thus, posture information can be used along with authentication credentials for VLAN assignment.
NOTE
The Cisco Secure Services Client was previously the Meetinghouse AEGIS SecureConnect client. Cisco acquired Meetinghouse in August 2006.
Table 3-1 compares the CTA 2.1 wired 802.1X client with the Cisco Secure Services Client. Table 3-1
Comparison of CTA Wired Client and the Cisco Secure Services Client Features/OS Support
CTA 2.1
Cisco Secure Services Client 4.0
Wired connections
✓
✓ ✓
Wireless connections Windows 2003 Server (Enterprise, Standard, and Web)
✓
✓
Windows XP Professional
✓
✓
Windows 2000 (Professional and Server)
✓
✓
EAP support
FAST v.1a
FAST v.1a, EAP-LEAP, EAP-PEAP, EAP-TTLS, EAP-TLS
Network profiles
One
Multiple profiles allowed
Network adapter support
Wired only
Unlimited adapter support
92
Chapter 3: Cisco Secure Services Client
NOTE
Note that the Microsoft 802.1X supplicant is not included in this chapter. This is because the current Microsoft supplicant does not natively support NAC. This means that posture validation cannot occur in the 802.1X authentication phase. You can still use the Microsoft supplicant for 802.1X authentication, and when authentication is complete, CTA can be used for posture validation using NAC-L2-IP or NAC-L3-IP. However, in this case, authentication and posture validation are completely independent of one another. Cisco and Microsoft have agreed to work together to allow interoperability between NAC and Microsoft's Network Access Protection (NAP). Both Windows Vista and the next release of Windows Server (code-named Longhorn) will natively support NAC without the need for CTA.
If you do not plan to install the Cisco Secure Services Client, it is safe to skip this chapter and continue on to Chapter 4, “Configuring Layer 2 NAC on Network Access Devices.”
Installing and Configuring the Cisco Secure Services Client The Cisco Secure Services Client is a full-featured 802.1X supplicant that supports multiple network profiles for both wired and wireless connections. CTA's 802.1x wired supplicant is actually a stripped-down version of the Cisco Secure Services Client. Therefore, the installation and operation of the two are very similar, but the Cisco Secure Services Client has much more configurable options and can be used in any 802.1Xenabled network. In the next few sections, we cover how to install, configure, and deploy the Cisco Secure Services Client to hosts in your network. As always, before making any network deployment, we recommend that you fully test the client and deployment method in a lab or nonproduction environment. The time spent installing, configuring, and troubleshooting hands-on in a lab will make for a much smoother (and less stressful) production rollout. Two versions of the Cisco Secure Services Client exist:
• •
Administrator version End-User version
Both versions are installed using the same executable file, but the Administrator version (default install) enables you to create a deployable End-User version. The End-User version is defined by the configuration files that you will create when stepping through the Deployment Package Wizard. The installation of the configuration files during the Cisco Secure Services Client installation causes the client to become an end-user client.
Installing and Configuring the Cisco Secure Services Client
93
Minimum System Requirements The Administrator version of the Cisco Secure Services Client requires a user with administrative privileges to install. Table 3-2 lists the minimum system requirements; as you can see, these are minimal. Table 3-2
Cisco Secure Services Administrative Client—Minimum System Requirements Component
Requirement
Operating system
Windows 2003 Windows XP Professional (SP1, SP2) Windows 2000 (SP4) Windows 2000 Server (SP4)
RAM
256MB: Windows XP, 2003 128MB: Windows 2000
Hard drive space
24MB
Software installer
Microsoft System Installer (MSI) Version 2.0 (Version 3.0 or higher recommended)
You should experience no problem installing the Administrative Client on any system that supports the minimum OS requirements. Before installing the Cisco Secure Services Administrative Client, you need to install CTA on the host machine. See Chapter 2 for instructions on installing CTA. The Cisco Secure Services Client requires a CTA version of 2.0.0.30 or greater. (This was the first FCS build of CTA 2.0.) Also when installing CTA, make sure you choose the nonsupplicant version because you will be using the supplicant included with the Cisco Secure Services Client.
Installing the Cisco Secure Services Administrative Client Installation of the Cisco Secure Services Administrative Client is very simple and straightforward. The Windows version comes packaged as an .msi executable. The format of the file name is as follows: Cisco_SSC-OS-version.msi For example, the XP/2000 version of the client has the filename Cisco_SSC-2KXP4.0.5.4783.msi. Double-click the .msi file to start the InstallShield installation wizard. The installer presents the End User License Agreement (EULA). You must read and accept the EULA before proceeding. Next, you are prompted to choose the location where you want the Cisco Secure Services Client installed (the default is C:\Program Files\Cisco Systems\Cisco Secure Services Client\). The next screen presents you with two installation
94
Chapter 3: Cisco Secure Services Client
options: Complete (recommended) and Custom. The only difference is that, with the Custom option, you can choose not to install the documentation and a shortcut to the client GUI in the Program Group. After making your choice, click Install to start the installation. When the installation completes, choose Finish to close the InstallShield wizard. Next, you see a pop-up window requesting that you restart your computer. You must restart the computer before using the Administrative Client.
NOTE
The Cisco Secure Services Administrative Client contains its own full-featured 802.1X supplicant. This enables you to test the client configuration settings before packaging them in a deployment bundle.
The client installs itself as a Windows service entitled Cisco Secure Services Client. The service starts automatically at bootup using the local system account. After the reboot, you will notice the gray and blue Cisco Secure Services Client icon, which now appears in the system tray. Right-clicking the icon brings up a menu that enables you to open the configuration utility, disable the client, or disable the WiFi radio. Additionally, the installation creates the Cisco Secure Services Client Program Group, which contains the client configuration utility, the Release Notes and User's Guide, and the System Report utility, which we look at later. With the installation complete, the next step is to configure the client by creating a network profile and policy.
Configuring the Cisco Secure Services Administrative Client With the Administrative Client installed, the next step is to configure it in your lab environment and test it. This step is crucial and should not be overlooked. Take time to thoroughly test the client in the lab before any production rollout. Lessons learned in the lab can prevent major issues from appearing during the production rollout. The first step in configuring the client is to create a network profile. The next section walks you through completing this task.
Creating a Network Profile With the Administrative Client installed, follow these steps to create a network profile: Step 1 Right-click the Cisco Secure Services Client tray icon and choose Open
from the pop-up menu, as shown in Figure 3-1.
Installing and Configuring the Cisco Secure Services Client
Figure 3-1
Cisco Secure Services Client Tray Status Icon
Step 2 You will see a screen similar to the one in Figure 3-2. However, you
might see more or fewer networks listed, depending on the number of interfaces on your device and the number of wireless networks detected.
Figure 3-2
Cisco Secure Services Client GUI
Step 3 Click the Create Network button at the bottom of the window to open
the Network Profile Configuration window. Step 4 In the Name field, fill in a user-friendly name for the network profile. In
this example, we use SecureMe Corporate Network.
95
96
Chapter 3: Cisco Secure Services Client
Step 5 To make this network profile available to all users of the machine, check
the Available to All Users (Public Profile) check box. It is enabled by default, allowing all users to see this network in their main network display list. Step 6 Determine how and when authentication should take place.
— Select Automatically Establish Machine Connection if you want to allow the machine to be authenticated on its own, without requiring a user to log in to it. — Select Automatically Establish User Connection if you want this profile to be available in the automatic-selection process. — Select Before User Account if this profile requires authenticating to a domain or Active Directory (this is the default and the most common configuration). This option allows the authentication to take place before the Windows Domain Login, thus allowing network connectivity for Microsoft GPOs. However, this method supports only password authentication and smart cards; it does not support client certificates that are stored in the Microsoft Certificate Store. See Figure 3-3 for an example of this screen.
NOTE
If you are performing both machine and user authentication, you must deselect the Before User Account option. This option is not needed because the machine authentication will establish the network connectivity.
Step 7 Configure the authentication method by clicking the Modify button. The
default option is no authentication, which you would choose for open hotspots or home wireless access points. For enterprise networks, an authentication method is almost always selected. After selecting Modify in Step 7, the Network Authentication window appears, as shown in Figure 3-4. On the left of the screen is the Authentication Methods selection. Select Turn On to enable authentication; then select Use Anonymous as Identity if authenticating to an ACS server. This prevents the username from appearing in the outer (unprotected) tunnel. Step 8 Next, select one or more authentication protocols from the list provided.
For NAC-L2-802.1X, you must select FAST from the list and then choose the Configure button to modify the EAP-FAST settings.
Installing and Configuring the Cisco Secure Services Client
Figure 3-3
Network Profile Screen
Figure 3-4
Network Authentication Screen
97
98
Chapter 3: Cisco Secure Services Client
Step 9
A new window appears, enabling you to configure the EAP method. Use Client Certificate, if selected, is used only initially to provision the PAC (phase 1). This is deselected by default and is not required. Select this box only if you will be using client certificates to establish the initial EAP-FAST tunnel. (If you do not know, do not select it).
Step 10 Ensure that both Validate Server Certificate boxes are checked
(default), to validate the certificate that ACS presents during the EAPFAST and optional EAP-TLS authentication. Deselecting these options is not recommended because this can substantially weaken the security posture of the client.
NOTE
This option requires the CA certificate to be installed in the client's Trusted Root Store and for the server to be in the client's Trusted Servers list. Deselecting this option is not advised because it weakens the security posture.
Step 11 Select Allow Fast Session Resumption to allow cached credentials to be
used for reauthentication. Step 12 Under Tunneled Method, if you want to restrict the inner EAP method
used, select it from the list. Otherwise, use the default of Any Method. Step 13 Under the EAP-TLS Settings, the Use Smart Card–based Client
Certificates Only option restricts the client to presenting only certificates contained on smart cards and not a locally stored certificate. This option is not selected by default. Step 14 Select the OK button to close this window. Step 15 You should be back at the Network Authentication screen, where you can
configure the user credentials on the right pane. Select Use Machine Credentials only if you want all users of the machine to authenticate using the machine's certificate (not common). Otherwise, choose Use Single Sign-On Credentials to use the credentials provided during Windows login, or Request When Needed to have a pop-up box appear when authentication is required (default). This last option further enables you to configure whether you want the credentials cached forever (default), or for the life of the session (connection), or for a preset number of minutes. After making your selection, click the OK button to return to the Network Profile screen.
Installing and Configuring the Cisco Secure Services Client
99
Step 16 At the bottom of the Network Profile screen, choose the Add button to
add an access device (network connection) that you want to apply your configured policy to. This opens a new window with a list of available network devices shown in the upper half. Step 17 For wired connections, select the <ethernet> access method and then
choose the Add Access button. For wireless connections, choose the SSID from the list. This prepopulates the Access (SSID) field, along with the Mode (encryption type). If the SSID is not currently available, manually enter it in the Access (SSID) field and choose the encryption method from the Mode drop-down list. Finally, choose Add Access. Repeat this step to add additional network interfaces or SSIDs. The client can support up to ten network access devices. See Figure 3-5 for an example of this step. Figure 3-5
Add Access Device Screen
NOTE
Check the box Actively Search for This Access Device only if the wireless access point does not broadcast beacons or probes.
100
Chapter 3: Cisco Secure Services Client
Step 18 You should now be back at the Network Profile screen, and it should look
similar to what you see in Figure 3-6. Figure 3-6
Completed Network Profile Screen
Step 19 Click the OK button to close the Network Profile screen and return to the
Cisco Secure Services Client GUI. Upon closing the screen in Step 17, you might be prompted to authenticate to the network. However, if you enabled validation of the server's certificate in Step 10, you must complete the steps in the next section, “Defining Trusted Servers,” before you can authenticate.
NOTE
It is assumed that you previously installed the CA certificate into the Trusted Root Store of the client machine, as described in Chapter 2. If not, refer to the section in that chapter entitled “Installing the CA Certificate” for step-by-step instructions before proceeding.
Installing and Configuring the Cisco Secure Services Client
101
Defining Trusted Servers If the client is configured to validate the server certificate in the EAP exchange (highly suggested, for security reasons), after configuring the network profile, you must define at least one trusted server in the client. Add ACS as a trusted server by completing these steps: Step 1 Select the Client menu and choose Trusted Servers > Manage
Machine/All Users Trusted Servers. Optionally, you can choose to add ACS as a trusted server for just that user account by selecting Manage Current User Trusted Servers, but this is not recommended. Step 2 A new window opens displaying the current server rules. Select the Add
Server Rule button to create a new rule. Step 3 The Trusted Server configuration window opens. In the Rule Name text
box, fill in a user-friendly name for this rule. I suggest using the ACS keyword somewhere in the rule so that it is easily recognizable. Step 4 In the Validation Method drop-down box, select Certificate. Step 5 Under the Match ANY Certification Validation Rule section, select the
check box next to either (or both) of the options. The Subject Alternative Name in the certificate is typically the fully qualified domain name of the ACS machine. The Subject/Common Name is whatever string you specified when requesting the certificate. It can be easily determined by opening the certificate and selecting the Details tab. When ACS presents its certificate to the client, one of these rules must match or the client will reject the certificate. See Figure 3-7 for a screen shot of a configured trusted server rule. Figure 3-7
Create a Trusted Server Rule
102
Chapter 3: Cisco Secure Services Client
TIP
If you have multiple ACS servers and do not to define a unique rule for each server's certificate, then consider choosing to validate the ACS certificates against the subject alternative name with a match option of Ends With followed by the domain name.
Step 6 With the rule defined, click the OK button to return to the Manage
Machine/All Users Trusted Servers window. Your new rule should be visible as shown in Figure 3-8. If you need to define additional rules for multiple ACS servers, do so now before continuing. When finished, select the Close button to return to the Cisco Secure Services Client GUI window. Figure 3-8
Rule Added to the Trusted Server List
This completes the process of defining a rule to validate a trusted server's certificate. If a user is never prompted to enter the password, it is possible that the ACS server's certificate did not match any of the trusted server rules. See the “Troubleshooting the Cisco Secure Services Client” section in this chapter for more information on how to troubleshoot this type of issue.
Deploying the Cisco Secure Services Client in a Production Network After thoroughly testing the client in a lab environment, you are ready to deploy the client in your network. The following sections walk you through this process.
Deploying the Cisco Secure Services Client in a Production Network
103
End-User Client Deployment Installation Prerequisite Before deploying the Cisco Secure Services End-User Client, you need to install CTA on the client machines. See Chapter 2 for instructions on installing CTA. The Cisco Secure Services Client requires a CTA version of 2.0.0.30 or greater (this was the first FCS build of CTA 2.0). Also, when installing CTA, make sure you choose the nonsupplicant version because you will be using the supplicant included with the Cisco Secure Services Client.
Creating End-User Client-Configuration Files When you are ready to create End-User Client configuration files, select the Create Deployment Package item from the Administration menu. This launches a wizard that walks you through the process. Along the way, you create client policies and network profiles, which you package into a distribution along with the End-User Client (supplicant). Follow these steps to create the client-configuration files: Step 1 After selecting the Administration > Create Deployment Package
option, the Enterprise Deployment Wizard window appears, as shown in Figure 3-9. Figure 3-9
Enterprise Client Deployment Wizard
104
Chapter 3: Cisco Secure Services Client
Step 2 Unless you are editing an existing deployment, choose Start with
Default Policy and Start Without Any Configured Networks. Select the Start button to begin. Step 3 The Station Policy screen appears. You must first select whether you want
the end users to be able to create new networks using a configurable client (needed for sales or traveling users) or whether you want to provide them with a preset client. Users with a preset client will be able to access only the networks that you have defined; they will not have the ability to create new networks, and their user interface will show them only the status of the client. Step 4 If you chose a configurable client in Step 3, under the General Settings
section, you have the option Allow Users to Create Public Profiles, or profiles that are available to all users of the computer. This option must be selected if you want to allow the user to create machine-authentication connection profiles (uncommon). The default and most common deployment is to leave this option unchecked. Additionally, you might select the Remove Activation menu option, which removes the activation item from the Help menu (default). This option needs to be visible to end users only if you plan to have them manually install new licenses. Step 5 Under the Trusted Server Validation section, if you chose a preset client,
you can choose only Always Validate Servers (most secure option) or Never Validate Servers (least secure option). The configurable client has the additional option to allow the end user to select whether to validate the server on a per-network basis (most flexible option). Additionally, if the Always Validate Servers option is selected, then you can choose to Allow user to add new servers, or Do not allow the user to add new servers. Selecting Do not allow the user to add new servers removes the Manage Trusted Servers option from the Client menu. If you are unsure about what options to select, choose the defaults: a configurable client that always validates the server and does not allow users to add new servers. Step 6 Under the WPA/WPA2 Handshake Validation section, you can disable
the handshake-validation process if the client's end stations have wireless adapters that do not support RSN probe response/beacon IE verification performed within a four-way handshake. Disabling this option reduces the security. Also, you have an option to allow the client to choose by selecting the Advanced Settings from the Client menu. Step 7 Finally, in the Simultaneous Connections pane, you can choose Allow
Only One Connection at a Time or Allow Multiple Simultaneous Connections. Allowing multiple connections lets multihomed machines use all connections to the network at the same time. Finally, you can allow the user to choose the connection setting option.
Deploying the Cisco Secure Services Client in a Production Network
Step 8 Figure 3-10 shows a configured Station Policy screen. When you are
finished defining the station policy, click the Next button. Figure 3-10 Station Policy Screen
Step 9 The Network Policy screen now appears. The User Credentials section
enables you to prohibit machine authentication by deselecting the Allow Machine Credentials check box (uncommon). It also has an option Allow Single Sign-On and Request Credentials, which must be selected to perform user authentication. You can also specify how long the client should retain the authentication credentials. The default, For the User Session, is the most common. Forever is the equivalent of static credentials (less secure). Specifying a time limit reprompts the user to reenter credentials when the specified time elapses. Step 10 The Allow Media Types section enables you to restrict the client to a
specified network interface type (wired or wireless). It is uncommon to deselect either of these.
105
106
Chapter 3: Cisco Secure Services Client
Step 11 The Wired/Ethernet Settings control how many Interactive
Authentication Retries and Noninteractive Authentication Retries are allowed before marking the connection as failed. You should not change the defaults here unless you have a strong reason to do so and have tested the configuration thoroughly before deploying in your network. Increasing the interactive retries causes more pop-up boxes for your users, and increasing the noninteractive retries could add delay to the machine boot/user logon. These same options are provided under the WiFi Settings section, along with the Association Retries. Step 12 Figure 3-11 shows a configured Network Policy screen. When you are
finished making your selections, select the Next button. Figure 3-11 Network Policy Screen
Step 13 The WiFi Policy screen now appears, listing all the wireless modes the
client license supports. None of the modes is selected by default. If Configurable Client was selected in Step 3, I suggest selecting each
Deploying the Cisco Secure Services Client in a Production Network
mode listed. If Preset Client was chosen, you can choose only the modes being used in your enterprise network. When you are finished, click the Next button. Step 14 The Authentication Policy screen appears, listing the licensed
authentication methods. Choose the outer tunnel authentication methods you want available to the end users. For NAC-L2-802.1X, you must select FAST. If you are using non-NAC-capable 802.1X switches or wireless access points in your network, select the authentication method used on those devices and then click Next. Step 15 The Trusted Server Policy window appears. Click the Add Server Rule
button to create a new rule. Step 16 The Trusted Server configuration window opens. In the Rule Name text
box, fill in a user-friendly name for this rule, I suggest using the ACS keyword somewhere in the rule so that it is easily recognizable. Step 17 In the Validation Method drop-down box, select Certificate. Step 18 Under the Match Any Certification Validation Rule section, select the
check box next to either (or both) of the options. The Subject Alternative Name in the certificate is typically the fully qualified domain name of the ACS machine. The Subject/Common Name is whatever string you specified when requesting the certificate. When finished, click the OK button. If you have multiple ACS servers, you might need to define additional rules. When finished, click the Next button. Step 19 The Create Network Profile screen appears. Click the Create Network
button to open the Network Profile window. Step 20 In the Name field, fill in a user-friendly name for the network profile. Step 21 Determine how and when authentication should take place.
— Select Automatically Establish Machine Connection if you want to allow the machine to be authenticated on its own, without requiring a user to log in to it. — Select Automatically Establish User Connection if you want this profile to be available in the automatic-selection process. — Select Before User Account if this profile requires authenticating to a domain or Active Directory (this is the default and the most common configuration). This option allows the authentication to take place before the Windows Domain Login, thus allowing network connectivity for Microsoft GPOs. However, this method
107
108
Chapter 3: Cisco Secure Services Client
supports only password authentication and smart cards; it does not support client certificates that are stored in the Microsoft Certificate Store.
NOTE
If you are performing both machine and user authentication, you must deselect the Before User Account option. This option is not needed because the machine authentication will establish the network connectivity.
Step 22 Configure the authentication method by clicking the Modify button. The
default option is No Authentication, which you would choose for open hotspots or home wireless access points. For enterprise networks, an authentication method is almost always selected. Step 23 After selecting Modify in Step 22, the Network Authentication window
appears, as shown in Figure 3-2. On the left of the screen is the Authentication Methods selection. Select Turn On to enable authentication; then select Use Anonymous as Identity if authenticating to an ACS server. This prevents the username from appearing in the outer (unprotected) tunnel. Next, select one or more authentication protocols from the list provided. For NAC-L2-802.1X, you must select FAST from the list and then click the Configure button to modify the EAP-FAST settings. Step 24 A new window appears that enables you to configure the EAP method.
Use Client Certificate, if selected, is used only initially to provision the PAC (phase 1). This is deselected by default. Step 25 The Validate Server Certificate box is checked if you selected it back
in Step 5. When checked, ACS's certificate is validated during the EAPFAST and optional EAP-TLS authentication.
NOTE
Validating ACS identity certificate requires the CA certificate to be installed in the client's Trusted Root Store and for the server to be in the client's Trusted Servers list. Deselecting this option is not advised because it weakens the security posture.
Step 26 Select Allow Fast Session Resumption to allow cached credentials to be
used for reauthentication.
Deploying the Cisco Secure Services Client in a Production Network
109
Step 27 Finally, under Tunneled Method, if you want to restrict the inner EAP
method used, select it from the list. Otherwise, use the default of Any Method. Step 28 Under the EAP-TLS Settings, the Use Smart Card–based Client
Certificates Only option restricts the client to presenting only certificates contained on smart cards and not a locally stored certificate. This option is not selected by default. Step 29 Select the OK button to close this window. Step 30 You should be back at the Network Authentication screen, where you can
configure the user credentials in the right pane. Select Use Machine Credentials only if you want all users of the machine to authenticate using the machine's certificate (not common). Otherwise, choose Use Single Sign-On Credentials to use the credentials provided during Windows login, or choose Request When Needed to have a pop-up box appear when authentication is required (default). After making your selection, click the OK button to return to the Network Profile screen. Step 31 In the bottom of the Network Profile screen, click the Add button to add
an access device (network connection) that you want to apply your configured policy to. This opens a new window with a list of available network devices shown in the upper half. Step 32 For wired connections, select the <ethernet> access method and then
click the Add Access button. For wireless connections, choose the SSID from the list. This prepopulates the Access (SSID) field, along with the Mode (encryption type). If the SSID is not currently available, manually enter it in the Access (SSID) field and choose the encryption method from the Mode drop-down list. Finally, choose Add Access. Repeat this step to add network interfaces or SSIDs. The client can support up to ten network access devices.
NOTE
Check the box Actively Search for This Access Device only if the wireless access point does not broadcast beacons or probes.
Step 33 You should now be back at the Network Profile screen, and it should look
similar to what you see in Figure 3-4.
110
Chapter 3: Cisco Secure Services Client
Step 34 Click the OK button to close the Network Profile screen and return to the
Create Network Profile screen. Your network profile, along with the Network Configuration Summary, is displayed on the right side of the screen, as shown in Figure 3-12. Click the Next button to continue. Figure 3-12 Completed Network Profile Screen
Step 35 The Save Package screen now appears. Click the Browse button to
choose the directory where you want to save the deployment package. In the Deployment Package Filename field, specify a prefix to be appended to the .xml configuration files that the wizard creates. I used 802_1x-auth to easily distinguish the files. Step 36 Finally, click the Save button. The Deployment Complete screen
appears, as shown in Figure 3-13, providing a summary of the files created.
Deploying the Cisco Secure Services Client in a Production Network
111
Figure 3-13 Deployment Package Complete
The deployment package that you just created is really just a set of three .xml configuration files. The files are saved in the directory you specified in the last step and have the following naming conventions:
• • •
prefix-policy.xml prefix-networks.xml prefix-credentials.xml
Creating the License File Before deploying the client to end users, you must create a license file. To do this, open a text editor and paste the license string (obtained from Cisco) into the file. If you have more then one license, paste in each one a separate line. When you are finished, save the file with the name licenseTransport.txt. This file will be moved to the installation directory during the deployment process.
112
Chapter 3: Cisco Secure Services Client
Deploying the End-User Client Now you have everything you need to deploy the End-User Client. Follow these steps to push the client out to machines in your network: Step 1 Locate the Cisco Secure Services Client .msi installation file. It should
have the following naming convention: Cisco_SSC-OS-version.msi (this is the same file that was used previously to install the Administrative Client). Push this file out to end clients using your company's standard software-publishing process (Microsoft SMS, Altiris, and so on). Step 2 Also push out the *-policy.xml, *-networks.xml, and *-credentials.xml
files, created in the previous section, to a temporary directory on the client machine. Step 3 Execute the client using the silent install method, and try not to reboot the
client after installation. If the client has the Microsoft System Installer Version 3.0 or higher, you can use the following to perform a silent install and prevent the client from rebooting: msiexec /i Cisco_SSC-XP2K-4.0.5.4783.msi /quiet /norestart
Step 4 After the Cisco Secure Services Client has been installed, the *.xml
configuration files need to be moved to the following locations: — Policy .xml file: $INSTALL_DIR\profiles\policies\ — Networks .xml file: $INSTALL_DIR\profiles\networks\ — Credentials .xml file: $INSTALL_DIR\profiles\users\settings\ Step 5 With the correct configuration files installed, delete the default policy-
configuration file located in $INSTALL_DIR\profiles\policies\default\. Step 6 Move the license file to $INSTALL_DIR. Example: C:\Program Files\Cisco Systems\Cisco Secure Services Client\licenseTransport.txt
Step 7 With configuration now complete, restart the end user's machine. You can
accomplish this using the tsshutdn /REBOOT command. On Windows XP and Windows 2000 machines with the Resource Kit installed, you can also use the shutdown –r command to reboot the machine.
Viewing the Current Status of the Cisco Secure Services Client
113
Example 3-1 contains a sample .bat file that moves the .xml configuration files from C:\Temp to their proper locations. Then it removes the default policy and moves the license file to the correct location. Example 3-1 Sample Executable .bat File Used to Configure Clients REM Move configuration files to correct locations move C:\temp\802_1x-auth-policy.xml "C:\Program Files\Cisco Systems\Cisco Secure Services Client\profiles\policies\" move C:\temp\802_1x-auth-networks.xml "C:\Program Files\Cisco Systems\Cisco Secure Services Client\profiles\networks\" move C:\temp\802_1x-auth-credentials.xml "C:\Program Files\Cisco Systems\Cisco Secure Services Client\profiles\users\settings\" REM Delete the default policy del "C:\Program Files\Cisco Systems\Cisco Secure Services Client\profiles\policies\default\*" REM Move the license file to the correct location move C:\temp\licenseTransport.txt "C:\Program Files\Cisco Systems\Cisco Secure Services Client\"
It is highly recommended that before you push the client out on a large scale, you test the deployment process in the lab. This enables you to verify the process and ensure that everything works as expected before pushing it out to your end users.
NOTE
If you modify the client's configuration by pushing out a new network or policy .xml file with a different name, the Cisco Secure Services Client will use the file with the latest time stamp. However, it is still a good idea to remove the older configuration files to prevent confusion.
Viewing the Current Status of the Cisco Secure Services Client The Cisco Secure Services Client installs an icon in the system tray, as shown in Figure 3-1. The icon changes colors to represent the current status of the client. Table 3-3 lists the possible colors for the Cisco Secure Services icon and what they mean.
114
Chapter 3: Cisco Secure Services Client
Table 3-3
Cisco Secure Services Client—System Tray Icon Colors Color
Meaning
Green
Connected (authenticated, or no authentication required)
Yellow
Connecting (authenticating)
Red
Failed authentication
Gray
Disconnected (idle/not connected)—default state when not in any of the previous states
Additional information about the connection status can be obtained by opening the client GUI (right-click the status icon and choose the Open menu item). Select the network from the list that you want to retrieve additional status from, and then click the Status button. A screen similar to the one shown in Figure 3-14 appears, providing additional connection details. For wireless connections, selecting the WiFi Details tab displays additional information about the wireless link. Figure 3-14 Additional Connection Status Details
Troubleshooting the Cisco Secure Services Client
115
Windows Wireless Zero Configuration The Cisco Secure Services Client disables the Windows Wireless Zero Configuration (WZC) utility automatically when it binds to the network interfaces. Disabling the Cisco Secure Services Client by right-clicking the system tray status icon and deselecting Active restores the WZC on the interfaces previously controlled by the Cisco Secure Services Client.
NOTE
You can define several network policies in the client to allow end users to connect to various open wireless networks. However, you must know the SSID of the network to add it to the list of managed networks.
If you are deploying a preset client, laptop users will most likely disable the Cisco Secure Services Client when roaming from the office. However, if a configurable client is deployed, the Cisco Secure Services Client will display all wireless networks it detects, and the user can select the network SSID to join the network (much like the WZC utility). Whichever deployment model you choose, make sure you educate the user community on how to connect to nonenterprise networks.
Troubleshooting the Cisco Secure Services Client In this section, we cover troubleshooting tools and techniques to use when troubleshooting issues with the client. Common problems along with their solutions are also presented.
System Report Utility Troubleshooting End-User Client issues or issues with 802.1X authentication can be complicated. However, the Cisco Secure Services Client comes with a very nice tool called System Report, which can be found in the Cisco Secure Services Client program group. When executed, this tool gathers the following information from the client:
• •
*-networks.xml and *-policy.xml, network- and policy-configuration files.
• •
log_current.txt, the Cisco Secure Services Client's current log file.
The contents of the profiles/ directory, which contains all the configuration files for the client. Cisco_SSCSysRepLogdate.txt contains information about the client PC, including processor information, memory usage, active process list, network adapter information, Cisco Secure Services Client network and policy profiles, and a list of all client files with their corresponding versions.
116
Chapter 3: Cisco Secure Services Client
The System Report utility zips up all these files in a file named Cisco_SSCSysRepdatestamp.zip. This .zip file is then placed on the user's desktop, where it can be e-mailed to the support team. Additional files are included in the .zip archive, including older log files, the client's license file, and client debug logs, which can be sent to the Cisco TAC for additional troubleshooting, if necessary. Because some of these files contain sensitive information, the System Report utility enables you to encrypt the sensitive files with a password. Follow these steps to generate the System Report archive: Step 1 From the Windows Start menu, select Programs > Cisco Secure
Services Client > Cisco Secure Services Client System Report. You should see the System Report utility screen shown in Figure 3-15. Figure 3-15 System Report Utility
Step 2 (Optional) Select the Protect Sensitive Data with the Following
Password check box to encrypt the configuration and licensing files. If selected, the .zip utility you use to extract the .zip archive must also support encrypted files. I have tested and used WinZip 9.0, and it works fine. Step 3 Select the Collect Data button to generate the report. Step 4 When complete, the archive file is placed on the user's desktop. Press the
Locate Report File button to launch a Windows Explorer window showing the location of the file.
Troubleshooting the Cisco Secure Services Client
117
The most important file in the archive is the log_current.txt file, which contains the most recent messages generated by the client. Each message in the log file is encoded in the following format: date time [process] msg_id severity context_id string The severity field can be one of the following values:
• • •
I: Informational message W: Warning message E: Error message
When troubleshooting a client issue, it is best to search for error messages first to quickly locate the problem. Then examine the logs leading up to the error, to gain additional contextual information. The context_id field provides further information about the interface and device the client is authenticating with. Table 3-4 lists the possible values for the context_id field. Table 3-4
Possible Values for context_id Field Code
Description
MAC corresponds to the MAC address of the client interface adaptor.
MAC corresponds to the MAC address of the access device.
<MT Ethernet|WiFi>
Media Type identifier.
Connection identifier, an incrementing integer.
Profile name, truncated to 16 characters.
Usually, the log_current.txt file provides enough information to assist you in determining the cause of the problem. In the rare cases in which the message is not completely clear, you can look up the msg_id in the table of possible messages at the end of the Cisco Secure Services Client's User Guide.
Viewing the Client Logs and Connection Status in Real Time You can view the client logs and watch the connection status in real time by opening the Cisco Secure Services Client GUI and selecting the Manage Networks tab. Select the interface and network you are attempting to connect to from the list, and then click the Details button. A new Information window opens, displaying the real-time logs from the client; the current client status appears at the top of the window. See Figure 3-16 for a screen shot of the Information window just after connecting to a NAC-L2-802.1X–enabled wireless network.
118
Chapter 3: Cisco Secure Services Client
Figure 3-16 Client Information Window
Client Icon Does Not Appear in System Tray If you do not see the Cisco Secure Services Client icon in the system tray, open the client GUI and select the Client menu; deselect Show System Tray, then reselect it.
Client GUI Does Not Start If you receive an error when attempting to start the client GUI, run the System Report utility. In the .zip archive that it creates, open the clientDebug_current.txt file and scroll down to the bottom to read the most current events. Most errors are printed in plain English (not encoded hex strings) and are therefore straightforward to understand and diagnose. Note that installation of the client over Remote Desktop (RDC) is not supported. If attempted, upon reboot and logon via RDC, the client GUI will fail to start, even though the services are running. If you reboot the PC again and log on via the console (or over a VNC session), you can successfully start the client GUI, but, again, this is unsupported.
Troubleshooting the Cisco Secure Services Client
119
Client Does Not Prompt for Password One common reason the user is never presented with a password dialogue box is that the ACS server is not in the Trusted Server list or if none of the rules can validate ACS's certificate. When this happens, if the user clicks the Connect button in the client GUI, the connection fails and the icon changes to red. In addition, in the bottom of the client window is the message “Connection failed: the server is not trusted.” If you see this message, follow the instructions in the Defining Trusted Servers section in this chapter to add a trusted server rule for ACS. You can also validate this issue remotely by having the end user run the System Report tool and sending in the .zip file it creates. To verify that this is the problem, open the .zip file and look in the /log directory for the log_current.txt file. Open the file and scroll to the bottom (where the most recent messages are) and look for the message, “Trusted server list empty, server cannot be validated.” If some trusted server rules are defined on the client, you should also see messages indicating why these rules failed to validate ACS’s certificate.
Wireless Client Is Immediately Dissociated after 802.1X Authentication If your wireless client is authenticating via 802.1X but then immediately is dissociated from the access point, check the CPU usage on the client during the authentication process. If the CPU is high, the Cisco Secure Services Client might not be getting enough CPU time to complete the protocol handshake within the time period permitted by the access point. If the CPU is high, check whether you are running antivirus software that automatically scans files that are written to disk. Most current antivirus software does this automatically. Because the Cisco Secure Services Client software generates a lot of log messages during the authentication phase, the antivirus software is busy monitoring all these disk writes. This often prevents the client from getting enough CPU time to complete the handshake within the time period allowed. To resolve this issue, exclude the following directories from being monitored by the antivirus software: C:\Program Files\Cisco Systems\Cisco Secure Services Client\system\log C:\Program Files\Cisco Systems\Cisco Secure Services Client\log
Client Is Disconnected (Suspended) If the status of the client shows up as Disconnected(Suspended), on the Manage Networks tab, you just need to press the Connect button to allow the client to reconnect to the network. However, sometimes the Connect button is grayed out. In these cases, right-click the Cisco Secure Services Client tray icon and deselect Enable Client, then wait a second an re-enable it. This should cause the Connect button to no longer be grayed out.
120
Chapter 3: Cisco Secure Services Client
Summary This chapter covered the Cisco Secure Services Client, a full-featured 802.1X client for both wired and wireless networks, that natively integrates with NAC Framework. The minimum system requirements were covered, followed by step-by-step instructions on how to install, configure, and deploy the client to end users. We finished the chapter by covering troubleshooting steps and common problem seen by end users.
References Cisco Secure Services Client's User Guide
Review Questions You can find the answers to the review questions in Appendix A, “Answers to Review Questions.” 1. What is the difference between the Administrator version and the End-User version of
the Cisco Secure Services Client? a.
The End-User Client version has a different .msi executable file than the Administrator version.
b.
The Administrator version is licensed separately.
c.
The clients are the same; the only difference is the configuration files.
2. The Cisco Secure Services End-Client configuration is defined by what three files? a.
*-networks.xml, *-config.xml, *-profile.xml
b.
*-config.xml, *-profile.xml, *-policy.xml
c.
*-config.xml, *-networks.xml, *-policy.xml
d.
*-networks.xml, *-policy.xml, *-credentials.xml
3. True or false: The Cisco Secure Services Client must always validate ACS's identity
certificate. 4. True or false: Cisco Secure Services Preset Clients cannot add new networks to their
profiles.
Review Questions
5. The Cisco Secure Services Client must be configured for which Authentication
method to support NAC-L2-802.1X? a.
EAP-MD5
b.
EAP-TLS
c.
FAST
d.
PEAP
6. What utility is included with the Cisco Secure Services Client to assist you in
troubleshooting client issues? a.
Debugger
b.
System Report
c.
Cisco Secure Services Troubleshooter
d.
None of the above
121
This chapter covers the following topics:
• •
NAC-L2-IP architecture, configuration, and troubleshooting NAC-L2-802.1X architecture, configuration, and troubleshooting
CHAPTER
4
Configuring Layer 2 NAC on Network Access Devices The Cisco Catalyst switches are capable of enforcing device security policy compliance when local-area network (LAN) users attempt to access the network. Switches that support NAC Framework features are capable of denying access to noncompliant devices and placing them in a quarantined area and allowing restricted access to network resources for remediation purposes. This posture validation is done at the Layer 2 network edge using two different technologies:
• •
NAC Layer 2 IP (NAC-L2-IP) NAC Layer 2 802.1X (NAC-L2-802.1X)
This chapter guides you in configuring and troubleshooting these technologies on Cisco Catalyst switches.
NAC-L2-IP This section covers the details about NAC-L2-IP, including the following:
• • •
Architecture of NAC-L2-IP Configuration of NAC-L2-IP Troubleshooting tips for NAC-L2-IP
Architecture of NAC-L2-IP NAC-L2-IP uses EAP over UDP (EoU) as the transport mechanism to complete the posture assessment of a device attempting to connect to the corporate network. This is similar to NAC Layer 3; however, the posture is done on a Layer 2 switch port. The posture assessment is triggered when the Cisco Catalyst switch receives a Dynamic Host Configuration Protocol (DHCP) or an Address Resolution Protocol (ARP) request from the device attempting to connect to the network. When the switch detects the DHCP or ARP request, it challenges the host by sending an EoU packet to start the posture validation. Figure 4-1 illustrates how the posture validation is performed in NAC-L2-IP.
124
Chapter 4: Configuring Layer 2 NAC on Network Access Devices
Figure 4-1 1
NAC-L2-IP Posture Validation DHCP or ARP Request EAP over UDP
3
Host with CTA
2
CTA Response
4
5 HCAP
EAP over RADIUS
Catalyst Switch PEAP Tunnel
EAP over RADIUS (Access Accept)
6 Cisco Secure ACS
Vendor Server
7
The following steps describe the process illustrated in Figure 4-1: Step 1 A DHCP or ARP request triggers the Cisco Catalyst switch to start the
posture-validation process. Step 2 The Cisco Catalyst Switch sends an EAP over UDP message to the
end host. Step 3 The Cisco Trust Agent (CTA) application replies to the Cisco Catalyst
with the host credentials (antivirus signature-definition information, operating system hotfixes, and service packs). Step 4 The Cisco Catalyst switch sends the host’s posture credentials to Cisco
Secure Access Control Server (ACS) through EAP over RADIUS. Step 5 Optionally, Cisco Secure ACS can send portions of the host credentials
to a third-party vendor server (such as antivirus) for further policy enforcement through the Host Credential Authorization Protocol (HCAP). Step 6 Cisco Secure ACS completes posture validation based on the configured
policies and determines the authorization rights of the machine. For example, it determines whether the host complies with the configured policies and classifies it as Healthy, Infected, Quarantined, and so on. Step 7 The Catalyst switch receives the response from the Cisco Secure ACS
server and downloads appropriate Access Control Lists (ACLs) to allow or deny the end host from communicating with the rest of the network.
NAC-L2-IP
125
Table 4-1 lists the NAC feature compatibility matrix, including all the supported switch platforms. Table 4-1
Switch Support Matrix Platform/ Supervisor 6500 with Sup32 or Sup720 6500 with Sup2 6500 with Sup32 or Sup720 6500 with Sup2 or Sup32 or Sup720 4500 Series with SupII+, II+TS, IV, V, V-10GE 4900 3550, 3560, 3750 2950, 2940, 2955, 2960, 2970 6500 with Sup1A 5000 4000—Sup I, II, 4000-SUP III 3500XL, 2900XM, 1900
NOTE
Operating System Native IOS
NAC L2 802.1X Future
NAC L2 IP Yes
NAC L3 IP Future
Native IOS Hybrid
No Yes
No Yes
No No
CatOS
Yes
Yes
No
IOS
Yes
Yes
Future
IOS IOS IOS
Yes Yes Yes
Yes Yes No
Future No No
All All CatOS IOS All
No No No No No
No No No No No
No No No No No
All the switches that support NAC L2 IP also support NAC agentless hosts (NAH) with a third-party audit server.
Configuring NAC-L2-IP This section guides you on how to configure NAC-L2-IP on Cisco Catalyst switches running Cisco IOS and CatOS. Figure 4-2 illustrates the topology used in the following examples.
126
Chapter 4: Configuring Layer 2 NAC on Network Access Devices
Figure 4-2
Configuring NAC-L2-IP Example Network 10.10.20.10
VLAN110 Users 6503-A (IOS)
VLAN101 Cisco Secure ACS 10.10.20.181
VLAN111 10.10.20.11
Users 6503-B (CATOS)
Remediation Server 10.10.20.30
NAC-L2-IP Cisco IOS Configuration The following steps are necessary to configure NAC-L2-IP on a Cisco Catalyst running Cisco IOS: Step 1 Enable Authentication, Authorization, and Accounting (AAA) services: 6503-A(config)#aaa new-model
Step 2 Enable EAPoUDP RADIUS authentication: 6503-A(config)#aaa authentication eou default group radius
Step 3 Configure the switch to run authorization for all network-related service
requests: 6503-A(config)#aaa authorization network default group radius
Step 4 Enable AAA RADIUS accounting: 6503-A(config)# aaa accounting network default start-stop group radius
Step 5 Next, you must specify the host name or IP address of the RADIUS
server using the radius-server host command. The Cisco Secure ACS RADIUS server IP address is 10.10.20.181. The default RADIUS port number for authentication is 1645 and for accounting is 1646; however, you can optionally change the port. In this example, the default ports are used. 6503-A(config)#radius-server host 10.10.20.181
NAC-L2-IP
127
Step 6 Enter the RADIUS server encryption key: 6503-A(config)#radius-server key cisco123
NOTE
The RADIUS server key must match the key configured in the Cisco Secure ACS server. If they do not match, the switch and Cisco Secure ACS will not be capable of communicating with each other. In this example, cisco123 is the key configured. Chapter 8, “Cisco Secure Access Control Server,” covers the configuration of the Cisco Secure ACS server.
Step 7 Configure the switch to send the Framed-IP-Address RADIUS attribute
(attribute 8) in access-request or accounting-request packets: 6503-A(config)#radius-server attribute 8 include-in-access-req
Step 8 Configure the switch to recognize and use vendor-specific attributes from
and to the Cisco Secure ACS server: 6503-A(config)#radius-server vsa send authentication
Step 9 Optionally, you can specify the interface from which all outgoing
RADIUS packets will be sourced. This is an optional step; however, it is recommended when multiple paths might exist for the communication between the switch and the RADIUS server. In this example, all RADIUS packets will be sourced from the VLAN 101 virtual interface. 6503-A(config)#ip radius source-interface Vlan101
Step 10 Enable the IP Device Tracking feature on the switch. This feature is used
for the switch to maintain a table that includes the IP and MAC addresses of the host attempting to access the network and information about what interface on the switch detected the host. IP Device Tracking enables the inspection of ARP packets to start the posture process. 6503-A(config)#ip device tracking
Step 11 In NAC-L2-IP, an ARP request from the host can trigger the security
posture-validation process. Optionally, you can enable the DHCP Snooping feature in the switch to trigger NAC posture validation after a DHCP request is detected. To enable DHCP snooping on VLAN 110, use the following commands: 6503-A(config)#ip dhcp snooping 6503-A(config)#ip dhcp snooping vlan 110
128
Chapter 4: Configuring Layer 2 NAC on Network Access Devices
Step 12 Create a default interface Access Control List (ACL) to be applied to the
client ingress switch port. This ACL is used as the default security policy. After NAC posture validation, an ACL is downloaded from the Cisco Secure ACS server that allows or denies traffic to the user based on the security posture results. 6503-A(config)#ip access-list extended interface_acl 6503-A(config-ext-nacl)#remark Allow EAPoUDP 6503-A(config-ext-nacl)#permit udp any any eq 21862 6503-A(config-ext-nacl)#remark Allow DHCP 6503-A(config-ext-nacl)#permit udp any eq bootpc any eq bootps 6503-A(config-ext-nacl)#remark Allow HTTP access to remediation server 6503-A(config-ext-nacl)#permit tcp any host 10.10.20.30 eq www
NOTE
Unlike NAC Layer 3 IP, there is no concept of an intercept ACL for NAC-L2-IP.
In this example, the ACL is named interface_acl and allows EAPoUDP traffic from the end host (CTA), DHCP requests, and HTTP traffic to a web server where quarantined clients can be redirected to obtain more information on how to download OS patches, hotfixes, service packs, and any other software needed to be compliant. Step 13 Create the IP admission rule to enable the EAPoUDP posture process.
The rule name in this example is NAC-L2-IP. 6503-A(config)#ip admission name NAC-L2-IP eapoudp
Step 14 Apply the interface ACL and the IP admission rule to the switch
interfaces where the clients reside. In this example, we apply it to the GigabitEthernet2/48 interface: 6503-A(config)#interface GigabitEthernet2/48 6503-A(config-if)# switchport 6503-A(config-if)# switchport mode access 6503-A(config-if)# switchport access vlan 110 6503-A(config-if)# ip access-group interface_acl in 6503-A(config-if)# ip admission NAC-L2-IP
NOTE
The ip admission command can be applied only to physical ports; it cannot be applied to VLAN interfaces. The switch will not accept the ip admission command if switchport mode access is not enabled on the interface.
NAC-L2-IP
129
Step 15 Configure the EAPoUDP hold-period timer to specify the time to wait (in
seconds) after a client-credential validation fails (accept-reject from RADIUS) or an EAPoUDP association fails. The default is 180 seconds. In this example, the switch is configured to wait 160 seconds. 6503-A(config)#eou timeout hold-period 160
Step 16 After a client-credential validation and security posture session is
successfully established, the switch sends a status-query to the client (CTA). If the switch does not receive a response from CTA, it waits 300 seconds, by default, before sending a new status-query message. To change the default value, use the eou timeout status-query command: 6503-A(config)#eou timeout status-query 360
Step 17 To verify whether any changes in the client admission policy have
occurred, the switch sends a revalidation EAPoUDP message to CTA every 36,000 seconds (10 hours) by default. However, you can change the default revalidation period timer using the eou timeout revalidation command. In this example, the timer is configured to wait 18,000 seconds (five hours) before revalidating the security posture of the endhost machine. 6503-A(config)#eou timeout revalidation 18000
NOTE
The status query and revalidation timeouts can also be configured in the Cisco Secure ACS server and sent to the switch during posture validation. The Cisco Secure ACS timers take precedence over the switch global EAPoUDP timers. This is the recommended method for controlling session timers, especially when interacting with a remediation server.
Step 18 To configure URL redirection, you can configure an ACL on the switch
to allow HTTP traffic to the server that has additional information for the user after being quarantined. The ACL must match the ACL defined in the Cisco Secure ACS server. In this example, the name of the ACL is quarantine_url_redir_acl. 6503-A(config)# ip access-list extended quarantine_url_redir_acl 6503-A(config-ext-nacl)# deny tcp any host 10.10.20.30 eq www
Step 19 For URL redirection to work, you must enable the HTTP server service
in the Catalyst switch. 6503-A(config)#ip http server
130
NOTE
Chapter 4: Configuring Layer 2 NAC on Network Access Devices
To increase the security of your switch, it is recommended that you protect against any HTTP vulnerability by restricting access to the switch HTTP services with other devices within your infrastructure, such as firewalls, infrastructure ACLs, and so on.
NAC-L2-IP Cisco CatOS Configuration This section covers the steps necessary to configure NAC-L2-IP on a Cisco Catalyst switch running CatOS. NAC-L2-IP is supported on Cisco Catalyst switches running CatOS version 8.5 or later. The following steps are necessary to configure the switch for NAC-L2-IP: Step 1 Configure the RADIUS server information on the switch. The RADIUS
server in this example is 10.10.20.181, and it is set as the primary RADIUS server. The RADIUS shared secret key is cisco123. Console> (enable)set radius server 10.10.20.181 primary Console> (enable)set radius key cisco123
Step 2 Enable EAP over UDP on the switch: Console> (enable)set eou enable
Step 3 Enable EAP over UDP for the switch port that will require posture
validation: Console> (enable)set port eou 2/48 auto
Step 4 Optionally, remove any previously configured Access Control Lists on
the switch: Console> (enable)clear security acl all
Step 5 Configure a policy-based ACL to allow the necessary services for NAC-
L2-IP and to restrict access based on the posture of the end host. Permit ARP: Console> (enable)set security acl ip nac permit arp Console> (enable)set security acl ip nac permit arp-inspection any any
Permit DHCP snooping: Console> (enable)set security acl ip nac permit dhcp-snooping
Allow EAPoUDP communication: Console> (enable)set security acl ip nac permit eapoudp
Allow DHCP communication: Console> (enable)set security acl ip nac permit udp any eq 67 any Console> (enable)set security acl ip nac permit udp any eq 68 any
NAC-L2-IP
131
Optionally, permit DNS services to resolve any internal hosts for remediation or used by URL redirect: Console> (enable)set security acl ip nac permit udp any any eq 53
Create an Access Control List entry that defines the level of access Healthy hosts will have after security posture validation. This must match the Healthy policy group name defined in the Cisco Secure ACS server. Console> (enable)set security acl ip nac permit ip group Healthy_hosts any
NOTE
In this example, the Healthy policy group name is Healthy_hosts. Refer to Chapter 8 to learn how to configure the Cisco Secure ACS server.
Allow limited access for quarantined hosts. In this example, the quarantine policy group name defined in the Cisco Secure ACS server is Quarantine_hosts. This is a policy-based ACL (PBACL). Console> (enable)set security acl ip nac permit ip group Quarantine_hosts 10.10.20.30 0.0.0.0 Console> (enable)set security acl ip nac permit ip 10.10.20.30 0.0.0.0 group Quarantine_hosts
NOTE
In this example, quarantined hosts are allowed to communicate to only an internal server (10.10.20.30) to obtain further instructions, patches, or any other software necessary for remediation.
PBACLs are Access Control Lists that are created dynamically with policy-based definitions in each Access Control Entry (ACE). These represent groups of network users. Enforcement on Catalyst 6500s is restricted to PBACLs. These PBACLs are commonly referred as intelligent VACLs. PBACLs are expanded in the Catalyst 6500 TCAM ACL implementation when the switch detects a new IP address on a specific port. The Catalyst 6500 looks at the group policy of the port and creates a specific ACE in the TCAM with the new IP address substituting for the group definition in the ACE.
132
Chapter 4: Configuring Layer 2 NAC on Network Access Devices
These group definitions are either static definitions or dynamic definitions done through a RADIUS assignment. In NAC-L2-802.1X, the most common implementation is the dynamic assignment from Cisco Secure ACS. On the other hand, PBACLs are not restricted to NAC-L2802.1X; PBACLs are also supported with NAC L2 IP as a way to dynamically implement access control policy. Step 6 Commit the configured ACL: Console> (enable)commit security acl all
Step 7 Map the ACL to the VLAN that will be used for NAC-L2-IP. In this case,
VLAN 111 is used. Console> (enable)set security acl map nac 111
NAC Nonresponsive Hosts NAC nonresponsive hosts are often referred to as NAC agentless hosts (NAH). These are devices that do not or cannot run CTA. Consequently, NAH are incapable of performing NAC functions. Examples of these devices are printers, scanners, IP phones, and hosts with unsupported operating systems. You can allow these hosts network access in several ways:
•
Using static exceptions defined on the switch based on the MAC address or IP address of such device
• • •
Configuring Network Access Profile (NAP) filtering on the Cisco Secure ACS server Using CDP, in the case of Cisco IP Phones Using a third-party audit server
This section teaches you how to configure static exceptions on the switch. Refer to Chapter 8 to learn how to configure NAP filtering and NARs on the Cisco Secure ACS server. Chapter 11, “Audit Servers,” covers the integration of third-party audit servers. In Figure 4-3, a printer with IP address 10.10.10.145 and an IP-enabled camera with MAC address 0099.1234.abcd need to be statically authorized. Additionally, all Cisco IP phones need to be excluded using CDP. Take the following steps to accomplish this task: Step 1 Configure an identity profile for EoU: 6503-A(config)#identity profile eapoudp
Step 2 Use the device authorize ip-address command to statically authorize
the printer’s IP address 10.10.10.145: 6503-A(config-identity-prof)#device authorize ip-address 10.10.10.145
NAC-L2-IP
133
Step 3 Use the device authorize mac-address command to statically authorize
the camera’s MAC address: 6503-A(config-identity-prof)#device authorize mac-address 0099.1234.abcd
Step 4 Use the device authorize type cisco ip phone command to statically
authorize the IP using the CDP protocol: 6503-A(config-identity-prof)#device authorize type cisco ip phone
Figure 4-3
NAH Exception Lists Example Network
Printer 10.10.10.145 6503-A (IOS)
Cisco Secure ACS 10.10.20.181
IP Phone 0099.1234.adcd
IP Phone
Troubleshooting NAC-L2-IP This section provides several tips on how to troubleshoot NAC-L2-IP problems. It includes the most useful show commands, debugs, and log messages that will help you troubleshoot any unexpected problems and monitor the NAC solution.
Useful show Commands You can use several show commands to monitor and report the state of NAC-L2-IP connections. The show eou all command is one of the most commonly used because it displays a table that summarizes all current NAC sessions. However, the show eou command has several options that can help you get more specific information about a NAC session. The following are all the options of the show eou command: show eou {all posture token authentication ip mac}
134
Chapter 4: Configuring Layer 2 NAC on Network Access Devices
Example 4-1 shows sample output of the show eou all command. Example 4-1 Output of the show eou all Command 6503-A#show eou all ------------------------------------------------------------------------Address Interface AuthType Posture-Token Age(min) ------------------------------------------------------------------------10.10.10.5 GigabitEthernet2/44 EAP Infected 4 10.10.10.6 GigabitEthernet2/45 EAP Quarantine 2 10.10.10.2 GigabitEthernet2/46 EAP Healthy 3 10.10.10.133 GigabitEthernet2/48 EAP Healthy 5
The switch has performed posture validation for four end hosts in Example 4-1. Two of the hosts are Healthy, one is Infected, and one is Quarantined. Example 4-2 shows sample output of the show eou ip command. In this example, details about the end host with IP address 10.10.10.133 are shown. Example 4-2 Displaying EoU Session Details for a Specific IP Address 6503-A# show eou ip Address MAC Address Interface AuthType Audit Session ID PostureToken Age(min) URL Redirect URL Redirect ACL ACL Name User Name Revalidation Period Status Query Period
10.10.10.133 : 10.10.10.133 : 0004.5aa8.2bde : GigabitEthernet2/48 : EAP : 0000003843C75E400000002AC1FE192 : Healthy : 15 : NO URL REDIRECT : NO URL REDIRECT ACL : #ACSACL#-IP-healthy-42c46e7c : PC123:User1 : 3600 Seconds : 300 Seconds
The output of the show eou ip command, as in Example 4-2, shows useful information such as the following:
• • • • • • • •
Interface on which the end host resides Posture token assigned to this session Age of the token URL redirect information Posture ACL name Username information Revalidation period Status query period
NAC-L2-IP
135
NAC-L2-IP EoU sessions can be reset on the switch on a per-interface, per-session basis or all at once. To clear all EoU sessions on the switch, use the clear eou all command. This command completely resets all existing NAC-L2-IP sessions. This command also clears all the information about existing sessions. Several other options in the clear eou command enable you to reset specific EoU sessions, as shown in Example 4-3. Example 4-3 clear eou Command Options 6503-A#clear eou ? all All EAPoUDP clients authentication Authentication Type interface Interface information ip IP Address mac MAC Address posturetoken Posture Token
The clear eou command enables you to reset specific EoU using the following keywords: all—Clears all EoU sessions authentication—Clears EoU sessions based on authentication type (for example, clientless, EAP, and static) interface—Clears EoU sessions terminated on a specific interface/switch port ip—Clears a specific EoU session using the end host’s IP address mac—Clears a specific EoU session using the end host’s MAC address posturetoken—Clears all EoU session for a specific posture token (Healthy, Quarantine, Infected, and so on) In CatOS, you can verify the NAC-L2-IP functionality and posture with the show policy group all command. Example 4-4 shows sample output of this command. Example 4-4 Verifying NAC-L2-IP Posture in CatOS 6503-B (enable) show policy group all -------------------------------------------------Group Name = Healthy Group Id = 1 No.of IP Addresses = 1 Is Changed flag = 0 Src Type = ACL CLI List of Hosts in group. ----------------------Interface = 2/48 IpAddress = 10.10.10.133 Src type = NAC
136
Chapter 4: Configuring Layer 2 NAC on Network Access Devices
You can also use the show eou config command to display the current EoU configuration on the switch running CatOS, as shown in Example 4-5. Example 4-5 show eou config Command 6503-B (enable) show eou config Eou Protocol Version : 1 Eou Global Config ----------------Eou Global Enable : Enabled Eou Clientless : Enabled Eou IP-Station-Id : Enabled Eou Logging : Enabled Eou Radius Accounting : Disabled Eou MaxRetry : 3 Eou AAA timeout : 60 Eou Hold timeout : 180 Eou Retransmit timeout : 30 Eou Revalidation timeout : 3600 Eou Status Query timeout : 300 Eou Rate Limit : 0 Eou Udp Port : 21862
In CatOS, you can also use the show eou all command as demonstrated earlier for Cisco Catalyst switches running Cisco IOS. You also can use the show eou ip ip-address command to obtain EoU information about a particular host. For example, if you want to see EoU information for a host with the IP address 10.10.21.123, you can use the show eou ip 10.10.21.123. You can also use the show access-list command to see the URL redirect access list and its hit count.
EoU Logging You can obtain detailed information about NAC-L2-IP sessions by enabling EoU logging on the Cisco Catalyst switch that is acting as a NAC network access device. This information can then be sent to a syslog server or an event-correlation system, such as CSMARS. To enable EoU logging, use the eou logging command, as shown in Example 4-6. Example 4-6 Enabling EoU Logging 6503-A(config)# eou logging
NAC-L2-IP
137
Example 4-7 shows the log entries of a security posture session of a Healthy host (10.10.10.5). Example 4-7 Event Log Messages of a Healthy Host w0d: eou-ev:eou_send_eap_msg: Send EAP Msg host= 0.0.0.0 eou_port= 5566 (hex) 5w0d: eou-ev:Stopping All timers 5w0d: eou-ev:Starting AAA timer 60(10.10.10.5) 5w0d: eou-ev:Stopping Retransmit timer 5w0d: %EOU-6-POLICY: IP=10.10.10.5| ACLNAME=#ACSACL#-IP-healthy_acl-43c0799b 5w0d: %EOU-6-POLICY: IP=10.10.10.5| TOKEN=Healthy 5w0d: %EOU-6-POLICY: IP=10.10.10.5| HOSTNAME=PC-UY303MGWIN:user 5w0d: %EOU-6-POSTURE: IP=10.10.10.5| HOST=AUTHORIZED| Interface=GigabitEthernet2 /48 5w0d: eou-ev:Stopping AAA timer
The shaded lines show the access control list downloaded from Cisco Secure ACS, the Healthy token, the username and end-host machine name, and the interface from which the end host is attempting to connect to the network.
Useful Debugs You can enable the following useful debug commands on the Cisco Catalyst switches when troubleshooting EoU or with authentication problems:
WARNING
• • • •
debug eou events—Shows EoU basic event information
• •
debug radius brief—Displays a summary of RADIUS authentication transactions
debug eou packets—Displays detailed packet information on EoU transactions debug eou all—Enables both debug eou events and debug eou packets debug radius authentication—Displays RADIUS authentication transactions in detail debug aaa authentication—Displays general AAA authentication messages
Be careful when enabling any of these debugs on busy devices. It is recommended to first start by enabling debug eou events and/or debug radius to troubleshoot authentication and communication problems. However, they need to be carefully enabled in production switches.
138
Chapter 4: Configuring Layer 2 NAC on Network Access Devices
Example 4-8 includes the output of debug eou events and debug radius authentication. In this example, the Cisco Secure ACS was offline. Example 4-8 Debugging RADIUS and EoU Communication Problems 5w0d: eou-ev:69.171.218.244: msg = 33(eventEouCreateSession) 5w0d: AAA/BIND(00000021): Bind i/f 5w0d: %EOU-6-SESSION: IP=10.10.10.5 HOST=DETECTED| Interface=GigabitEthernet2/48 5w0d: eou-ev:10.10.10.5: msg = 3(eventEouStartHello) 5w0d: eou-ev:Starting Retransmit timer 3(10.10.10.5) 5w0d: eou-ev:eou_send_hello_request: Send Hello Request host= 0.0.0.0 eou_port= 5566 (hex) 5w0d: eou-ev:Stopping All timers 5w0d: %EOU-6-CTA: IP=10.10.10.5| CiscoTrustAgent=DETECTED 5w0d: eou-ev:10.10.10.5: msg = 21(eventEouEapStart) 5w0d: eou-ev:Starting Retransmit timer 3(10.10.10.5) 5w0d: eou-ev:eou_send_eap_msg: Send EAP Msg host= 0.0.0.0 eou_port= 5566 (hex) 5w0d: eou-ev:Stopping All timers 5w0d: eou-ev:Starting AAA timer 60(10.10.10.5) 5w0d: eou-ev:Stopping Retransmit timer 5w0d: AAA/AUTHEN/EOU (00000021): Pick method list 'default' 5w0d: RADIUS(00000021): Config NAS IP: 10.10.20.10 5w0d: RADIUS/ENCODE(00000021): acct_session_id: 48 5w0d: RADIUS(00000021): sending 5w0d: RADIUS(00000021): Send Access-Request to 10.10.20.181:1645 id 1645/152, len 192 5w0d: RADIUS: authenticator 63 F9 BF 20 E9 5E E7 E5 - 1D 37 10 10 0D 4F 70 BA 5w0d: RADIUS: User-Name [1] 2 "" 5w0d: RADIUS: Called-Station-Id [30] 16 "0014.1c6b.864f" 5w0d: RADIUS: Calling-Station-Id [31] 16 "0006.5b02.944c" 5w0d: RADIUS: Framed-IP-Address [8] 6 10.10.10.5 5w0d: RADIUS: Vendor, Cisco [26] 32 5w0d: RADIUS: Cisco AVpair [1] 26 "aaa:service=ip_admission" 5w0d: RADIUS: Vendor, Cisco [26] 57 5w0d: RADIUS: Cisco AVpair [1] 51 "audit-sessionid=00000000B84E5D4C000000110A0A0A05" 5w0d: RADIUS: NAS-Port-Type [61] 6 Virtual [5] 5w0d: RADIUS: Message-Authenticato[80] 18 5w0d: RADIUS: 80 F0 8D B5 7F C5 B5 57 29 08 9D B3 D6 8A 3A DF [???????W)?????:?] 5w0d: RADIUS: EAP-Message [79] 7 5w0d: RADIUS: 02 01 00 05 01 [?????] 5w0d: RADIUS: Service-Type [6] 6 EAPoUDP [25] 5w0d: RADIUS: NAS-IP-Address [4] 6 10.10.20.10 5w0d: RADIUS: no sg in radius-timers: ctx 0x53E6DFC0 sg 0x0000 5w0d: RADIUS: Retransmit to (10.10.20.181:1645,1646) for id 1645/152 5w0d: RADIUS: no sg in radius-timers: ctx 0x53E6DFC0 sg 0x0000 5w0d: RADIUS: Retransmit to (10.10.20.181:1645,1646) for id 1645/152 5w0d: RADIUS: no sg in radius-timers: ctx 0x53E6DFC0 sg 0x0000 5w0d: RADIUS: Retransmit to (10.10.20.181:1645,1646) for id 1645/152 5w0d: RADIUS: no sg in radius-timers: ctx 0x53E6DFC0 sg 0x0000 5w0d: RADIUS: No response from (10.10.20.181:1645,1646) for id 1645/152 5w0d: RADIUS/DECODE: parse response no app start; FAIL 5w0d: RADIUS/DECODE: parse response; FAIL
NAC-L2-802.1X
139
The shaded lines show the Cisco Catalyst switch starting the EoU negotiations with the end host and subsequently trying to send its information to the Cisco Secure ACS RADIUS server. After several retransmissions, the connection times out and the RADIUS session fails.
TIP
In the previous example, only one RADIUS server is configured on the switch. You can specify backup RADIUS servers (if available) for higher availability.
NAC-L2-802.1X NAC-L2-802.1X leverages the Identity-Based Network Services (IBNS) solution to provide user- and machine-based authentication and adds security posture capabilities with the use of the Extensible Authentication Protocol–Flexible Authentication via Secure Tunneling (EAP-FAST). This section details the architecture of NAC-L2-802.1X and guides you on how to configure and troubleshoot NAC-L2-802.1X on Cisco Catalyst switches.
Architecture of NAC-L2-802.1X The NAC-L2-802.1X feature enables you to perform a security posture assessment of a host using 802.1X proven technologies on a Layer 2 switch port. NAC-L2-802.1X uses EAPFAST as the transport mechanism to carry identity and security posture information within a Transport Layer Security (TLS) tunnel. Consequently, an 802.1X supplicant that supports EAP-FAST is needed for NAC-L2-802.1X.
NOTE
The embedded supplicant included with CTA supports EAP-FAST. It also supports EAPGTC, EAP-MSCHAPv2, and EAP-TLS for client-side authentication. CTA is covered in Chapter 2, “Cisco Trust Agent.” Cisco initially developed EAP-FAST to support customers who cannot enforce a strong password policy and want to deploy an 802.1X EAP type that does not require digital certificates, supports a variety of user and password database types, supports password expiration and change, and is flexible, easy to deploy, and easy to manage. Two different sets of credentials can be sent from the client to the NAD and, subsequently, to ACS and back-end servers in a Microsoft Windows environment:
• •
Machine credentials (machine authentication) User credentials (user authentication)
140
Chapter 4: Configuring Layer 2 NAC on Network Access Devices
Microsoft Windows allows a client machine (using machine authentication) to send its identity information before authenticating a user. This information is sent at boot time, establishing a secure channel to update and participate in the domain Group Policy Objects (GPO) model. This enables the end host to subsequently communicate with a Windows domain controller to obtain machine group policies. The second method is user authentication. A user can log in to the local computer or to a Windows domain. The username and password can be used as the identity credentials for 802.1X authentication. EAP-FAST uses a unique shared credential called the Protected Access Credential (PAC) to mutually authenticate the client and the RADIUS server. The PAC is linked to the client username and a server authority ID. A PAC supplements the use of digital certificates in a Public Key Infrastructure (PKI) environment. EAP-FAST has three basic phases: Phase 0 (optional)—This is a special case of Phase 1 and Phase 2 provisioning. This phase is used infrequently to enable the client to be dynamically provisioned with a PAC. During this phase, a per-user access credential is generated securely between the user and the network. This per-user credential, known as the PAC, is used in Phase 1 of EAP-FAST authentication. Phase 1—A secure tunnel is established using the provided PAC. Phase 2—The client is authenticated via the secure tunnel. Two methods of provisioning the PAC are used:
• • NOTE
Out-of-band In-band
The 802.1X supplicant bundled with CTA supports only in-band provisioning. Additionally, CTA’s supplicant provisions a PAC to the client only if the Cisco Secure ACS server is configured to allow in-band provisioning and if there is a successful machine authentication using a digital certificate or a successful user authentication.
In NAC-L2-802.1X, security posture is performed in addition to the user and/or machine authentication. After a security posture token is assigned, the policy enforcement for NACL2-802.1X is done via dynamic VLAN assignment. Figure 4-4 illustrates the NAC-L2802.1X authentication process. The following steps describe the NAC-L2-802.1X authentication process illustrated in Figure 4-4: Step 1 The 802.1X connection is set up between the switch and the end host
(supplicant).
NAC-L2-802.1X
141
Step 2 The switch requests the credentials from the end host through EAP over
802.1X. This can include user and machine credentials and posture information (antivirus version and state, OS type, version, and so on). Step 3 The end host (CTA using the NAC-compatible supplicant) sends the
user/device credentials. Step 4 The switch forwards the credentials to Cisco Secure ACS via EAP over
RADIUS. Step 5 Cisco Secure ACS can send user/device credentials to external
authentication databases such as Microsoft Active Directory, Lightweight Directory Access Protocol (LDAP), and so on. Step 6 Cisco Secure ACS can also send security posture information to a third-
party vendor server through HCAP. Step 7 Cisco Secure ACS validates credentials and determines authorization
rights. Step 8 Cisco Secure ACS sends the authorization policy, including VLAN
assignment, to the switch.
NOTE
Optional notifications can also be sent to applications on end-host machines.
Figure 4-4
NAC-L2-802.1X Authentication Process
1
801.1X Negotiation
EAP over 802.1X (EAP-FAST)
3
CTA Response
2 4
5 External Authentication
EAP over RADIUS
Active Directory
Host with CTA
Catalyst Switch PEAP Tunnel
EAP over RADIUS (Access Accept)
6 Cisco Secure ACS 7 HCAP 8 Vendor Server
142
Chapter 4: Configuring Layer 2 NAC on Network Access Devices
Configuring NAC-L2-802.1X This section guides you on how to configure NAC-L2-802.1X on Cisco Catalyst switches.
NAC-L2-802.1X Cisco IOS Configuration The following steps are necessary to configure NAC-L2-802.1X on a Cisco Catalyst switch running Cisco IOS. Step 1 VLAN assignment is the method used in NAC-L2-802.1X for policy
enforcement. In this example, the following VLANs are used: — VLAN 10—Healthy Employees — VLAN 20—Guests — VLAN 30—Quarantine — VLAN 40—Infected — VLAN 50—Contractors Configure the appropriate VLANs as follows: 6503-A#configure terminal Enter configuration commands, one per line.
End with CNTL/Z.
6503-A(config)#vlan 10 6503-A(config-vlan)#name Healthy_Employees 6503-A(config-vlan)#exit 6503-A(config)#vlan 20 6503-A(config-vlan)#name Guests 6503-A(config-vlan)#exit 6503-A(config)#vlan 30 6503-A(config-vlan)#name Quarantine 6503-A(config-vlan)#exit 6503-A(config)#vlan 40 6503-A(config-vlan)#name Infected 6503-A(config-vlan)#exit 6503-A(config)#vlan 50 6503-A(config-vlan)#name Contractors 6503-A(config-vlan)#exit
Step 2 Enable the switch AAA services: 6503-A(config)#aaa new-model
Step 3 Configure the switch to use RADIUS for 802.1X authentication: 6503-A(config)#aaa authentication dot1x default group radius
NAC-L2-802.1X
Step 4 Enable authorization for all network-related service requests: 6503-A(config)#aaa authorization network default group radius
Step 5 Enable accounting with the following command: 6503-A(config)#aaa accounting network default start-stop radius
Step 6 Next you need to specify the host name or IP address of the RADIUS
server using the radius-server host command. The Cisco Secure ACS RADIUS server IP address is 10.10.20.181. The default RADIUS port number for authentication is 1645 and for accounting is 1646; however, you can optionally change the port. In this example, the default ports are used. 6503-A(config)#radius-server host 10.10.20.181
Step 7 Enter the RADIUS server encryption key: 6503-A(config)#radius-server key cisco123
Step 8 Optionally, you can specify the switch interface from which all outgoing
RADIUS packets will be originated (GigabitEthernet 2/12 is used in this example): 6503-A(config)#ip radius source-interface GigabitEthernet 2/12
Step 9 Enable 802.1X on the switch: 6503-A(config)#dot1x system-auth-control
Step 10 After enabling 802.1X globally, configure 802.1X parameters on all the
switch interfaces where NAC-L2-802.1X end hosts reside. Configure 802.1X port control to auto. This enables 802.1X port-based authentication and allows the port to begin in the unauthorized state, allowing only EAPOL packets to be sent and received. The authentication process starts when an EAPOL-start frame is detected or when the link state of the port changes to up. 6503-A(config)#interface GigabitEthernet 2/38 6503-A(config-if)#dot1x port-control auto
NOTE
All end hosts attempting to access the network are uniquely identified by their MAC addresses.
Step 11 Configure the 802.1X reauthentication timer. In this case, the switch uses
the timer configured in the Cisco Secure ACS server: 6503-A(config-if)#dot1x timeout reauth-period server
143
144
Chapter 4: Configuring Layer 2 NAC on Network Access Devices
Step 12 Enable 802.1X reauthentication: 6503-A(config-if)#dot1x reauthentication
NAC-L2-802.1X Cisco CatOS Configuration The following steps are necessary to configure NAC-L2-802.1X on a Cisco Catalyst switch running CatOS. NAC-L2-802.1X is supported on Cisco CatOS Version 8.5 and later. Step 1 Configure the RADIUS server information on the switch. The RADIUS
server in this example is 10.10.20.181, and it is set as the primary RADIUS server. The RADIUS shared secret key is cisco123. Console> (enable) set radius server 10.10.20.181 primary Console> (enable) set radius key cisco123
Step 2 Enable 802.1X authentication globally in the switch: Console> (enable) set dot1x system-auth-control enable
Step 3 Enable 802.1X control on the switch ports that the end hosts are
connected to. In this example, an NAC-L2-802.1X client is connected to port 2/38. Console> (enable) set port dot1x 2/38 port-control auto
Step 4 Enable reauthentication on the port: Console> (enable) set port dot1x 2/38 reauthentication
MAC Authentication Bypass MAC authentication bypass or MAC Auth Bypass is an 802.1X feature to control policies for NAC agentless hosts. MAC authentication bypass is configured on a per-port basis and currently is supported only on the Catalyst 6500 running CatOS. When this feature is enabled, the switch makes a RADIUS request to the Cisco Secure ACS server with the MAC address of the client machine that is attempting to connect to the network. If Cisco Secure ACS finds the MAC address of the client machine in its internal database, it sends an access-accept to the switch, and the host is allowed onto the network. This MAC authentication happens after NAC-L2-802.1X. It bypasses the default NAC-L2-802.1X security policy of denying access for all devices that cannot complete an EAP authentication.
NAC-L2-802.1X
TIP
145
You can use the MAC address OUI to wildcard and allow devices with MAC addresses within the same OUI range to access the network. This avoids an administrator having to enter each individual MAC address for devices such as printers or terminals that don’t have an 802.1X supplicant and need to be allowed access to the network.
The Cisco Catalyst 6500 configuration for MAC authentication bypass consists of only a few commands. It must be enabled globally and then applied to a port. To enable MAC authentication bypass globally, use the set mac-auth-bypass enable command: Console> (enable) set mac-auth-bypass enable
Then apply it to an specific port, as follows: Console> (enable) set port mac-auth-bypass 2/3 enable
This enables MAC authentication bypass on port 2/3.
TIP
Refer to Chapter 8 for the configuration of Cisco Secure ACS for MAC authentication bypass.
Troubleshooting NAC-L2-802.1X This section lists several show and debug commands useful for troubleshooting NAC-L2802.1X problems. The show dot1x all command displays a detailed table of authentication and posture information. This table includes information such as the following:
• • • • • •
Authentication state Current posture token Reauthentication information Timer settings VLAN information Maximum attempts
146
Chapter 4: Configuring Layer 2 NAC on Network Access Devices
Example 4-9 shows sample output of the show dot1x all command. Example 4-9
Output of show dot1x all Command 6503-A#show dot1x all Dot1x Info for interface GigabitEthernet2/38 ---------------------------------------------------Supplicant MAC 000f.4321.1234 AuthSM State = AUTHENTICATED BendSM State = IDLE Posture = Healthy ReAuthPeriod = 3600 Seconds (From Authentication Server) ReAuthAction = Reauthenticate TimeToNextReauth = 3590 Seconds PortStatus = AUTHORIZED MaxReq = 2 MaxAuthReq = 2 HostMode = Single PortControl = Auto QuietPeriod = 60 Seconds Re-authentication = Enabled ReAuthPeriod = From Authentication Server ServerTimeout = 30 Seconds SuppTimeout = 30 Seconds TxPeriod = 30 Seconds Guest-Vlan = 216 AuthFail-Vlan = 0 AuthFail-Max-Attempts = 3
TIP
You can also display this information on a per-interface basis with the show dot1x interface interface command. For example, to display information about the host connected on port GigabitEthernet 0/1, use the show dot1x interface GigabitEthernet 0/1 command. You can also use show dot1x interface interface detail to display detailed information on a specific interface. In addition, you can use the show dot1x interface interface statistics command to provide 802.1X interface statistics.
NAC-L2-802.1X
147
Example 4-10 includes a summarized view of the output of the show vlan command after the end host on port GigabitEthernet 2/38 was successfully authenticated and its security posture was Healthy. VLAN 10 (Healthy_Employees) was assigned to interface GigabitEthernet 2/38. Example 4-10 Output of show vlan Command after Authentication and Posture 6503-A#show vlan VLAN Name Status Ports -----------------------------------------------------1 default active Gi3/2 10 Healthy_Employees active Gi2/38
Unlike NAC-L2-IP, on NAC-L2-802.1X, no logging is available. However, the 802.1X accounting features provide useful information when troubleshooting 802.1X authentication issues. To enable 802.1X accounting, use the following command: aaa accounting dot1x default group radius
The following are some useful debug commands when troubleshooting 802.1X issues: debug dot1x errors debug dot1x events debug dot1x packets debug dot1x state-machine
NOTE
The output of the debug dot1x packets command can be very lengthy and can impact performance on busy switches.
Similar to NAC-L2-IP, the debug radius command can help you troubleshoot RADIUS negotiation issues on NAC-L2-802.1X.
Configuring NAC-L2-802.1X on Cisco Wireless Access Points Wireless networks are being deployed more every day. The increased deployment of these networks has also increased the need to secure them. Several different security methods, such as WEP keys, have classically been used by companies that deploy wireless networks. However, these methods have not been enough. NAC-L2-802.1X not only provides the secure mechanisms to perform authentication and identity, but it also provides advanced admission-control features. This section includes the steps necessary to configure NAC-L2802.1X on Cisco wireless access points.
148
Chapter 4: Configuring Layer 2 NAC on Network Access Devices
Cisco’s authentication scheme is based on the Extensible Authentication Protocol (EAP). Cisco Wireless provides mutual authentication, in part to guard against man-in-the-middle authentication attacks from rogue access points. The client device authenticates the network via a RADIUS server. The RADIUS server authenticates the client. The two sides of this authentication scheme are decoupled on separate secure channels, with the access point in the middle. Figure 4-5 illustrates this. The following steps are illustrated in Figure 4-5: 1. The client machine initiates the wireless association process with the Wireless
Access Point. 2. The access point blocks client requests for LAN access and establishes a tunnel using
EAP-FAST. Figure 4-5
Summary of Wireless NAC-L2-802.1X 1
Client Associates with AP EAP over 802.1X (EAP-FAST)
2
CTA/Supplicant Response
3
4
Access Point
Client
Cisco Secure ACS
EAP Tunnel Reply from ACS Quarantine!
5
8
3. The user and machine credentials are sent from CTA and the wireless 802.1X
supplicant. 4. Cisco Secure ACS processes the authentication request and also checks its NAC
policies for admission control. 5. Cisco Secure ACS replies and sends RADIUS attributes to the wireless access point. 6. The wireless access point enforces security based on the security posture of the
device. In this example, the client is quarantined because it didn’t comply with the policies configured on Cisco Secure ACS. The EAP protocol has a very detailed authentication process. Figure 4-6 illustrates the details of the EAP authentication sequence.
NAC-L2-802.1X
149
Now that you have learned the protocol details of EAP and NAC-L2-802.1X, it’s time you learn how to configure the wireless access points. The configuration of NAC-L2-802.1X on Cisco wireless access points is basically the same as the traditional configuration for 802.1X. Follow these steps to configure NAC-L2-802.1X on the Cisco wireless access point: 1. Log in to the Cisco wireless access point via its web console. 2. Select Security from the navigation menu and click Server Manager. This section
enables you to enter the authentication settings and to configure the RADIUS server information. 3. Configure the Cisco Secure ACS server information, identifying its IP address
(10.10.20.181 in this example), as illustrated in Figure 4-7.
Figure 4-6
Details of the EAP Authentication Sequence
Access Point
Wireless Client 1
Authentication Request Identity Request
3
5
7
9
Cisco Secure ACS
2
Username
(Relay to Server)
(Relay to Client)
Authentication Challenge
Authentication Response
(Relay to Server)
(Relay to Client)
Authentication Success
Authentication Challenge
(Relay to Server)
(Relay to Client)
Authentication Response
Successful Authentication
(Relay to Server)
4
6
8
150
Chapter 4: Configuring Layer 2 NAC on Network Access Devices
Figure 4-7
Adding Cisco Secure ACS Information to the Cisco Wireless Access Point
4. Enter a shared secret key between the Cisco wireless access point and the Cisco
Secure ACS server. The shared secret on the Cisco wireless access point must match the shared secret on the Local/Backup server. 5. Click Apply. 6. Navigate to Security > SSID Manager. 7. Enter your SSID information and select Network EAP. SecureMe is entered as the
SSID in this example in Figure 4-8. The SSID is the unique identifier that client devices use to associate with the wireless access point. The SSID can be any alphanumeric, case-sensitive entry from 2 to 32 characters. 8. Click Apply.
NOTE
Refer to Chapter 3, “Cisco Secure Services Client,” for the configuration of the 802.1X supplicant, and Chapter 8 for the configuration of Cisco Secure ACS.
Summary
Figure 4-8
151
Configuring the SSID Information on the Cisco Wireless Access Point
Summary This chapter covered the configuration of NAC-L2-IP and NAC-L2-802.1X on the Cisco Catalyst switches. It provided a step-by-step guide on how to configure these NAC features on switches running Cisco IOS and Cisco CatOS. It also included useful show and debug commands, as well as several tips on how to troubleshoot NAC-L2-IP and NAC 802.1X problems on the Cisco Catalyst switches. This chapter described the methods used in wireless NAC-L2-802.1X. It also demonstrated how to configure NAC-L2-802.1X on Cisco wireless access points.
152
Chapter 4: Configuring Layer 2 NAC on Network Access Devices
Review Questions You can find the answers to the review questions in Appendix A, “Answers to Review Questions.” 1. What command do you use to enable 802.1X globally on a switch running CatOS? a.
dot1x system-auth-control
b.
set dot1x system-auth-control
c.
dot1x enable
d.
set dot1x enable
2. True or false: EAP-FAST Phase 0 is used very frequently to enable the client to be
dynamically provisioned with a PAC. Phases 1 and 2 cannot complete without Phase 0. 3. True or false: VLAN assignment is the method used in NAC-L2-802.1X for policy
enforcement. 4. True or false: The output of the debug dot1x packets command can be very lengthy
and might impact performance on busy switches. 5. NAC nonresponsive hosts are often referred to as NAC agentless hosts (NAH). These
are devices that do not or cannot run CTA. What command can you use to statically authorize a NAH though its IP address in a Catalyst switch running IOS? a.
set device authorize ip ip-address
b.
device authorize ip-address ip-address
c.
ip device authorize ip-address
d.
device ip authorize ip-address
6. What command is used to enable EoU logging on a Catalyst switch running
Cisco IOS? a.
eou logging enable
b.
set eou logging
c.
ip logging eou
d.
eou logging
Review Questions
153
7. True or false: In NAC-L2-IP, the security posture process is triggered by an EAP-
START. 8. True or false: You can configure only one RADIUS server on a Catalyst switch
running CatOS. 9. True or false: The connection between CTA and a Catalyst switch running EoU is
encrypted using IPSec. 10. True or false: By default, a Catalyst switch configured for NAC-L2-IP and running
Cisco IOS will reauthenticate every 275 seconds.
This chapter covers the following topics:
• • •
Architectural overview of NAC on Layer 3 devices Configuration steps of NAC on Layer 3 devices Monitoring and troubleshooting NAC on Layer 3 devices
CHAPTER
5
Configuring Layer 3 NAC on Network Access Devices The Layer 3 NAC solution ensures that posture validation is done before packets are allowed to pass through the Cisco IOS network-access devices (NADs). A number of Cisco IOS routers support this solution. This way, the NADs apply appropriate access restrictions when an end host tries to access network resources. These restrictions are based on the end hosts’ state, such as the information about their antivirus software and their signature definitions. The Layer 3 NAC solution is useful in network deployments where
• •
You have Layer 2 devices but they do not support NAC.
•
You are using a site-to-site VPN tunnel to a partner and want to check the posture of your partner’s machines before allowing access to your network.
•
You have SSL- or IPSec-based remote-access VPN tunnels that NAC does not support.
You want to implement NAC on a central routing device instead of enabling it on all the Layer 2 and wireless devices.
This chapter discusses Layer 3 NAC implementation by providing an architectural overview of the solution and then step-by-step configuration examples.
NOTE
NAC Layer 3 support on Cisco IOS routers was introduced in the first phase of the NAC framework; NAC Layer 3 support on Cisco IOS—based Catalyst 6500 switches is currently planned.
Architectural Overview of NAC on Layer 3 Devices The posture-validation process on a Layer 3 device starts when an end host requests access to the network. Figure 5-1 provides a complete flow of the posture-validation process on a Layer 3 NAD. A Cisco 3845 router is acting as the Layer 3 NAD to validate the end host’s posture before allowing access to the corporate network. This assessment is checked against the policies defined on the Cisco Secure Access Control Server (Cisco Secure ACS).
156
Chapter 5: Configuring Layer 3 NAC on Network Access Devices
Figure 5-1
Layer 3 Posture-Validation Process for a Host Cisco 3845 Router
ACS Server
CTA-Enabled Host Corporate Network Application Data Posture Validation Start (EAP Request) Posture Validation Start (EAP Reply)
Posture Validation Start Posture Validation Start (Posture Request) Posture Validation Start (Posture Reply) Posture Result Access Policies Application Data
The end host, the Cisco IOS router, and the Cisco Secure ACS server go through the following process when a host tries to access the network: 1. The end host tries to access the network by sending traffic. The NAD identifies a new
host when it sees a host's IP address that is not registered in its table. 2. The NAD checks its exception list to determine whether the device is exempt from the
posture-validation process. If the reported device identity (IP address, MAC address, IP phone) is — In the exception list, the device is not subject to NAC verification. The NAD can optionally apply an access list (ACL) to restrict the traffic from these exempted hosts. — Not in the exception list, the host is subject to posture validation, and the NAC process continues.
Architectural Overview of NAC on Layer 3 Devices
157
3. The NAD creates an Extensible Authentication Protocol (EAP) session and applies a
default access list until the host is fully validated. The NAD sends an Extensible Authentication Protocol over User Datagram Protocol (EAPoUDP) hello packet to the host. If an EAPoUDP hello response is — Received, the NAD initiates the NAC posture validation process. — Not received after a number of retries, the NAD assumes that it is an agentless or unresponsive host. The NAD skips to step 11 for further processing of the agentless hosts. 4. The NAD sends an EAP-identity request to the host. The host sends an EAP-identity
response that is forwarded to the Cisco Secure ACS server as a part of the NAC access-request packet. 5. The Cisco Secure ACS server initiates a Protected Extensible Authentication Protocol
(PEAP) session to establish a secure communication channel, to ensure integrity of the packets that follow. 6. The Cisco Secure ACS server requests posture information from the host. The NAD
simply forwards this request to the host. The host responds with the requested posture information. 7. The Cisco Secure ACS server sends either an access-accept or accept-reject packet
based on the assessment. If it is — Access-accept, the Cisco Secure ACS server sends the NAC configuration and an ACL to be applied on the end machine. — Access-reject, the Cisco Secure ACS server displays an error, and the NAD treats the host as an agentless host. The NAD skips to step 10 for further processing of the agentless hosts. 8. The Cisco Secure ACS server closes the PEAP session with the end host. The NAD
starts the status query and revalidation timers. 9. The NAD sends a status query to the end host when it expires. If the response is
— Invalid or the host does not respond, the NAD initiates a full revalidation of the host machine by going back to step 4. — Valid, and the validation flag is not set, the NAC processing enters into the idle state. — Valid, and the validation flag is set, the NAD initiates a full revalidation of the host machine by going back to step 4. 10. The NAD discards the EAPoUDP association when the revalidation timer expires. In
this case, it goes back to step 3.
158
Chapter 5: Configuring Layer 3 NAC on Network Access Devices
11. The NAD starts a hold-off timer if the end host is agentless or if it does not respond
to EAPoUDP communication. In this state, the NAD ceases the EAPoUDP and other NAC-related activities until the hold-off timer expires. When it expires, the NAD initiates a full revalidation and goes back to step 3. 12. If the end host does not respond to an EAPoUDP hello message, it is deemed to be
agentless. The NAD requests agentless (clientless) policies from the Cisco Secure ACS server by forwarding the clientless user credentials.
NOTE
For clientless hosts, you can use an audit server to determine the current state of the machine. Consult Chapter 11, “Audit Servers,” for more information.
Configuration Steps of NAC on Layer 3 Devices Figure 5-2 illustrates a network topology in which a Cisco IOS 3845 router is acting as a NAD. Two Cisco Secure ACS servers are connected to the GigabitEthernet0/0 interface. These servers are used for EAPoUDP sessions and posture validation. On the GigabitEthernet0/1 interface, two end machines are connected. One is running the Cisco Trust Agent (CTA); the other acts as an agentless machine. Figure 5-2
Network Topology for Layer 3 NAC
CTA-Enabled Host .10
.181
Cisco 3845 Router 10.10.20.0/24
.182
.1 Gi0/0
.1 Gi0/1
Corporate Network
10.10.10.0/24
.2
Agentless Host
ACS Servers
The implementation of NAC on a Layer 3 device can be divided into the following eight steps: Step 1 Configure Authentication, Authorization, and Accounting (AAA)
authentication. Step 2 Define a Remote Authentication Dial-In User Service (RADIUS) server.
Configuration Steps of NAC on Layer 3 Devices
159
Step 3 Specify the interface Access Control List (ACL). Step 4 Configure the NAC parameters. Step 5 (Optional) Define the NAC intercept (ACL). Step 6 (Optional) Set up the exception policies. Step 7 (Optional) Configure the clientless host parameters. Step 8 (Optional) Optimize the NAC parameters.
NOTE
You need Cisco IOS Release 12.3(8)T or higher to enable NAC on Cisco routers.
Step 1: Configuring AAA Authentication The first step in configuring NAC on a Layer 3 Cisco IOS device is to enable AAA for posture validation. The NAC framework uses an external RADIUS server to validate the posture presented by the end hosts. Consequently, it is mandatory that the Cisco IOS NAD be set up to pass EAPoUDP sessions to the RADIUS server. A Cisco IOS NAD device can be set up for AAA by using the aaa new-model command, if it is not already configured to do so. This command enables the AAA process globally on a Cisco IOS device. Use the aaa authentication eou command to enable EAPoUDP processing by the AAA process. This command ensures that the Cisco IOS NAD requests the appropriate posture information from the end hosts and forwards them to the RADIUS server for authentication and verification. In Example 5-1, a Cisco IOS router is set up for the AAA process. It is then configured to process the EAPoUDP packets with the aaa authentication eou default group radius command. The default group radius option instructs the Cisco IOS NAD to send all EAPoUDP queries to a RADIUS server, defined in the next step. Example 5-1 AAA Configuration for Cisco IOS NAD IOS-NAD# configure terminal IOS-NAD(config)# aaa new-model IOS-NAD(config)# aaa authentication eou default group radius IOS-NAD(config)# aaa accounting network default start-stop group radius
You can optionally enable aaa accounting network if you want the Cisco IOS NAD to send an accounting record for each EAPoUDP session. In Example 5-1, the Cisco IOS NAD is set up to send an accounting record to the RADIUS server after it creates an EAPoUDP session and to send another accounting record when it tears down that session.
160
Chapter 5: Configuring Layer 3 NAC on Network Access Devices
NOTE
If the aaa new-model command is not configured, you will not see any AAA commands in the Cisco IOS command syntax.
NOTE
Using NAC with authentication proxy (Auth-Proxy) is fully supported. In this case, the Cisco IOS NAD subjects the received traffic to the Auth-proxy process first, followed by the NAC process. The ACLs for auth-proxy get overwritten by the ACLs that NAC downloads after posture validation.
Step 2: Defining the RADIUS Server After the IOS NAD is set up for the AAA process, the next step is to define a list of the RADIUS servers. The Cisco IOS NAD checks their availability on a round-robin basis. If the first server is not reachable, it tries the second server, and so on. It is highly recommended that you set up more than one RADIUS server, in case the first server is not reachable. A RADIUS server entry can be defined by using the radius-server host command followed by the IP address of the RADIUS server. You can optionally provide the following information for each of the RADIUS servers:
NOTE
•
Authentication and authorization port—If no default port is specified, the Cisco IOS NAD uses UDP port 1645 to send the authentication and authorization requests. The authentication port can be defined by using the auth-port keyword followed by the new port number.
•
Accounting port—If no default port is specified, the Cisco IOS NAD uses UDP port 1646 to send the accounting records. The accounting port can be defined by using the acct-port keyword followed by the new port number.
•
Shared secret—If all your RADIUS servers are configured to use the same shared secret, you can define a global key. You can use the radius-server key command followed by the actual shared secret. The Cisco IOS NAD authenticates itself to the RADIUS server by using a preconfigured shared secret. For security reasons, this shared secret is never sent over the network.
User passwords are sent as encrypted messages from the Cisco IOS NAD to the RADIUS server. This is useful to protect this critical information from an intruder. The Cisco IOS NAD hashes the password using the shared secret that is defined on the NAD and the RADIUS server. As shown in Example 5-2, a Cisco IOS NAD is configured for two RADIUS servers located at 10.10.20.181 and 10.10.20.182. Because both servers use the same shared secret, the administrator has defined a global key of cisco123. It is a best practice to encrypt the
Configuration Steps of NAC on Layer 3 Devices
161
specified shared secret by using the service password-encryption command. This way, an intruder will not be able to get this key even if he gets access to the NAD’s configuration. Example 5-2 Configuration of RADIUS Servers IOS-NAD# configure terminal IOS-NAD(config)# service password-encryption IOS-NAD(config)# radius-server host 10.10.20.181 IOS-NAD(config)# radius-server host 10.10.20.182 IOS-NAD(config)# radius-server key cisco123 IOS-NAD(config)# ip radius source-interface loopback0
If the Cisco IOS NAD can reach the RADIUS server through multiple interfaces, it is highly recommended that you use the ip radius source-interface command to send and receive the RADIUS traffic on a particular interface. In Example 5-2, a loopback0 interface is configured as the source interface for the RADIUS packets.
TIP
It is a best practice to use a loopback interface to source the RADIUS packets from the NAD to the RADIUS server. This is because a loopback interface is always up, and the source IP address in the RADIUS packets will be the same, regardless of the egress interface from the router.
Step 3: Specifying the Interface Access Control List The next step is to define an ACL that limits the inside hosts’ capability to send traffic until the RADIUS server validates their posture. In other words, this ACL defines exception rules for the traffic that needs to skip posture validation. This ACL is applied to the interface facing the end hosts. In Figure 5-2, the end hosts (client machines) reside on the inside interface of GigabitEthernet0/1. It is recommended that this ACL allows only EAPoUDP packets that are destined to the router on UDP port 21862. You can optionally allow other traffic such as Dynamic Host Configuration Protocol (DHCP) and Domain Name System (DNS) if those servers reside on different subnets. In Example 5-3, an ACL called intf-ACL is configured to allow UDP port 21862 to access the router’s inside interface IP address of 10.10.10.1. The ACL is then applied on the interface facing the end-host network as an inbound list. Example 5-3 Configuration of Interface ACL IOS-NAD# configure terminal IOS-NAD(config)# ip access-list extended intf-ACL IOS-NAD(config-ext-nacl)# permit udp any host 10.10.10.1 eq 21862 IOS-NAD(config-ext-nacl)# exit IOS-NAD(config)# interface GigabitEthernet0/1 IOS-NAD(config-if)# ip access-group intf-ACL in
162
NOTE
Chapter 5: Configuring Layer 3 NAC on Network Access Devices
An implicit deny (as in deny ip any any) is at the end of every ACL on Cisco IOS NADs.
If you have agentless hosts or other network devices such as IP phones, printers, switches, and routers, you can configure their IP addresses in this list. However, it is recommended that you specify those networking devices in the exception list, discussed in step 6.
Step 4: Configuring the NAC Parameters After specifying the interface ACL, the next step is to set up the NAC parameters. In this step, you configure a global rule that enables the EAPoUDP posture-validation process. This global policy is then applied to the interface facing the end hosts. Use the ip admission name command followed by a policy name to set up this policy. In Example 5-4, a NAC global policy called IOS-NAC is set up for the EAPoUDP posturing process. This policy is applied to the GigabitEthernet0/1 interface by using the ip admission IOS-NAC command under interface subconfiguration mode. Example 5-4 Configuration of NAC Parameters IOS-NAD# configure terminal IOS-NAD(config)# ip admission name IOS-NAC eapoudp IOS-NAD(config)# interface GigabitEthernet0/1 IOS-NAD(config-if)# ip admission IOS-NAC
NOTE
You can optionally define an ACL that lists the networks that are subject to the postureassessment process. This is discussed in the next step.
NOTE
Use the eou allow ip-station-id command to use an end machine’s IP address as the Calling-Station-Id. Otherwise, the IOS NAD uses the MAC address of the host machine. IOS-NAD(config)# eou allow station-ip-address
Step 5: Defining the NAC Intercept Access Control List (Optional) If you would rather include a few networks (or hosts) to go through the posture-validation process, you can define those interesting entities in an ACL. You can then map the ACL to the ip admission name command. This way, the Cisco IOS NAD subjects to the posture process only the entities that are defined in the mapped ACL. Example 5-5 shows the
Configuration Steps of NAC on Layer 3 Devices
163
configuration of a Cisco IOS NAD that is validating hosts on 10.10.10.0. Other networks behind the NAC-enabled interface are not checked for NAC. Example 5-5 Configuration of NAC Intercept ACL IOS-NAD# configure terminal IOS-NAD(config)# ip access-list extended NAC-ACL IOS-NAD(config-ext-nacl)# permit ip 10.10.10.0 0.0.0.255 any IOS-NAD(config-ext-nacl)# exit IOS-NAD(config)# ip admission name IOS-NAC eapoudp list NAC-ACL
Step 6: Setting Up the Exception Policies (Optional) If you are not using an audit server in your environment, you must install the CTA application in all your networking devices. However, in many instances installing CTA is not possible on all devices. As discussed in Chapter 2, “Cisco Trust Agent,” CTA is currently available for the Windows, Linux, and Macintosh platforms. Therefore, if you have other operating systems or network printers, you need to exempt them so that they are not subject to the posture-validation process. You can except these devices based on the following three attributes:
• • •
IP address MAC address Type
If you assign static IP addresses to the non-CTA-enabled devices, you can define their IP addresses in the exception rules. When the Cisco IOS NAD receives a packet from the IP address specified in the exception rule, the Cisco IOS NAD does not challenge the host for the posture-validation process. Using an IP address in the exception list can contradict your security polices because an inside intruder can try to bypass the posture-validation process by spoofing the address. The other option is to define an exception list consisting of the MAC addresses of the devices to be exempt from this process. This option is useful if you use a DHCP server to allocate IP addresses in your organization. You can specify the MAC addresses of your nonCTA-supported devices in this exception list even if they receive dynamic IP addresses. The third option is to specify the type of device you are using in your network. Currently, Cisco IP phones are the only valid device type. The exempt devices are added in the list by using the identity profile eapoudp command. Issuing this command places you into identity profile subconfiguration mode. All the exempt devices can be specified by using the device authorize command followed by one
164
Chapter 5: Configuring Layer 3 NAC on Network Access Devices
of the three options discussed previously. In Example 5-6, a device with a MAC address of 0011.2582.399d is allowed to exempt the posture process. Example 5-6 Configuration of Exemption List IOS-NAD# configure terminal IOS-NAD(config)# identity profile eapoudp IOS-NAD(config-identity-prof)# device authorize mac-address 0011.2582.399d
The Cisco IOS NAD also enables you to map a policy to the exempted devices to further define their network-access attributes. For example, you can limit the exempted devices to access only the allowed hosts on the network. You can create this policy by using the identity policy command followed by the policy name. You then are placed in identitypolicy subconfiguration mode, where you can apply an ACL to limit network access. As shown in Example 5-7, an extended ACL called Policy-ACL is created that permits traffic from the 10.10.10.0 subnet to a host located at 10.10.20.50. This ACL is mapped to an identity policy called Exempt-Devices by using the access-group Policy-ACL command. Finally, this policy is linked to the exemption rules by using the device authorize command.
NOTE
In a large enterprise network, it is a best practice to use centralized exemptions using Cisco Secure ACS. Consult Chapter 8, “Cisco Secure Access Control Server,” for more information about central device exemption.
Example 5-7 Configuration of Exemption List IOS-NAD# configure terminal IOS-NAD(config)# ip access-list extended Policy-ACL IOS-NAD(config-ext-nacl)# permit ip 10.10.10.0 0.0.0.255 host 10.10.20.50 IOS-NAD(config)# identity policy Exempt-Devices IOS-NAD(config-identity-policy)# access-group Policy-ACL IOS-NAD(config)# identity profile eapoudp IOS-NAD(config-identity-prof)# device authorize mac-address 0011.2582.399d policy Exempt-Devices
NOTE
The ACL mapped to the exempt devices must be a named ACL, not a numbered ACL.
The NAC feature of the Cisco IOS NAD also provides protection against infected devices that are exempted. You can set appropriate policies to redirect unallowed traffic to an internal web page. For example, if an infected machine tries to browse the Internet, you can
Configuration Steps of NAC on Layer 3 Devices
165
redirect the connection so that the user on the infected machine is instructed to load the appropriate software before granting access to the requested hosts. In Example 5-8, a redirect URL of internal.securemeinc.com is specified under the identity policy called Exempt-Devices. Example 5-8 Configuration of Exemption List IOS-NAD(config)# identity policy Exempt-Devices IOS-NAD(config-identity-policy)# access-group Policy-ACL IOS-NAD(config-identity-policy)# redirect url http://internal.securemeinc.com
NOTE
Cisco Secure ACS can instruct the Cisco IOS NAD to apply a redirect ACL to the user sessions. The ACL defined on Cisco Secure ACS for URL redirect must have an identical name because it is case sensitive. Cisco Secure ACS RADIUS attributes: • url-redirect=http://IP-Address-Of-Remediation-Server • url-redirect-acl=quarantine_url_redir_acl
Cisco IOS NAD configuration: IOS-NAD(config)# ip access-list extended quarantine_url_redir_acl IOS-NAD(config-ext-nacl)# permit tcp any 10.0.0.0 0.0.0.255 eq www
Step 7: Configuring the Clientless Host Parameters (Optional) If you own a relatively large network, adding all non-CTA-enabled devices in the exception list can be a cumbersome task. Alternatively, you can enable the clientless authentication feature for the hosts that do not respond to the EAPoUDP packets. This way, the unresponsive hosts are treated as clientless, and the Cisco IOS NAD sends the preconfigured authentication credentials for the RADIUS server. If authenticated successfully, the RADIUS server returns appropriate attributes such as an ACL that will be enforced on those machines. It is recommended that clientless machines such as guests’ and contractors’ end hosts not be given access to the trusted network of the company. Therefore, the RADIUS server can send a downloadable ACL to be applied to the clientless machines. In Example 5-9, a clientless user named clientless is set up with a password of cisco123cisco. The eou allow clientless command initiates the clientless machine authentication for the unresponsive hosts. This command requires that you set up a user
166
Chapter 5: Configuring Layer 3 NAC on Network Access Devices
account on the Cisco Secure ACS server with the same username and the password, and specify the appropriate restrictions on it. Example 5-9 Configuration of Clientless Host Credentials IOS-NAD(config)# eou clientless username clientless IOS-NAD(config)# eou clientless password cisco123cisco IOS-NAD(config)# eou allow clientless
If the clientless authentication parameters do not match the configuration on Cisco Secure ACS, an authentication failure occurs. This causes the unresponsive hosts to be unsuccessful if they try to access the network.
NOTE
The Cisco IOS router running the 12.4(6)T or higher version of the code does not use clientless user authentication. The eou clientless username and eou clientless password commands have been deprecated. To have the clientless functionality on the IOS NAD devices running the 12.4(6)T or higher version of code, follow these steps: 1.
Enable the eou allow clientless and eou allow ip-station-id commands in the Cisco IOS router.
2.
Configure the Cisco Secure ACS server to use an external audit server for posture validation. Please consult Chapter 11, "Audit Servers,"for the configuration steps.
Step 8: Optimizing the NAC Parameters (Optional) The Cisco IOS NAD supports five EAPoUDP timeouts when a machine goes through the posture-validation process:
•
Status query timeout—This timeout ensures that the Cisco IOS NAD periodically checks the posture state of the CTA-enabled host, in case it has changed from the last time. The default status query timer is 300 seconds. In Example 5-10, the status query timer is changed to 600 seconds, which is recommended if the number of concurrent sessions is high. If this value is set too low, the Cisco IOS NAD will use a lot of system resources in sending status queries to the agents.
•
Revalidation timeout—This timeout initiates a complete posture-validation process on the CTA-enabled host. The default timer is set to 36,000 seconds (10 hours). You can lower this timer to 5 hours, as shown in Example 5-10, if your organization requires you to revalidate the hosts more often. This is helpful when new antivirus patches are continuously updated on the servers and you want the end machines to update them as soon as they go through a new posture validation.
Configuration Steps of NAC on Layer 3 Devices
167
•
Hold period timeout—This timeout instructs the Cisco IOS NAD to initiate the posture-validation process if the host fails the EAPoUDP association in the previous attempt or if the Cisco Secure ACS server fails the authentication. In Example 5-10, the hold period timeout is changed from its default value of 180 seconds to 300 seconds. The hold period timeout varies between 60 and 86,400 seconds.
•
Retransmission timeout—The retransmission timeout indicates how long the Cisco IOS NAD waits if it fails to receive a reply from the end host. The default is 3 seconds, and it varies from 1 to 60 seconds. This timeout must be greater than the expected round-trip delays. If you have a slow network in which the round-trip delay might take more than 3 seconds, you should change it to a higher value, such as 10 seconds, as shown in Example 5-10.
•
AAA timeout—The default is 60 seconds; it varies from 1 to 60 seconds.
Example 5-10 Changing the NAC Timeouts on Cisco IOS NAD IOS-NAD(config)# IOS-NAD(config)# IOS-NAD(config)# IOS-NAD(config)#
NOTE
eou eou eou eou
timeout timeout timeout timeout
status-query 600 revalidation 18000 hold-period 300 retransmit 10
If the Cisco Secure ACS server is also set up to specify the status query and revalidation timeouts, the Cisco IOS NAD prefers the received timeouts from the Cisco Secure ACS server over the statically configured global timeouts in Cisco IOS.
In addition to the previously discussed NAC timeouts, you can modify the following NAC EAPoUDP parameters:
•
EAPoUDP port—If you have a requirement to use an EAPoUDP port different than 21862, you can achieve that by using the eou port command. It is recommended that you not change this port, if possible. In Example 5-11, the EAPoUDP port has been changed to port 21800.
•
EAPoUDP max-retry—The Cisco IOS NAD sends a retransmission EAPoUDP packet if it does not receive a response from a host. By default, it retransmits the EAPoUDP packet three times before declaring the host as agentless. If you would rather have the Cisco IOS NAD retransmit only two times, you can use the eou maxretry 2 command, as shown in Example 5-11.
•
EAPoUDP revalidation—In Cisco IOS NAD, the revalidation process for the CTAenabled hosts is enabled by default. If you do not want the existing EAPoUDP connections to go through the revalidation process, you can use the no eou revalidate command, as shown in Example 5-11.
168
Chapter 5: Configuring Layer 3 NAC on Network Access Devices
•
EAPoUDP rate-limit—You can set the Cisco IOS NAD to rate-limit the number of simultaneous posture validations for EAPoUDP. This way, if your Cisco IOS NAD gets overwhelmed with the number of simultaneous EAPoUDP requests, it will not run out of memory or CPU cycles. (This can occur if the entire building has a power outage and all clients boot and attempt to access the network at the exact same time.) Use the eou rate-limit command in global configuration mode to set the limit. In Example 5-11, the simultaneous number of EAPoUDP sessions has been limited to 100. If the 101st client tries to connect, the Cisco IOS NAD will not proceed with the posture-validation process until it is finished with one of the older sessions.
If you want to configure the Cisco IOS NAD to the default values of EAPoUDP, use the eou default command. Example 5-11 Changing the EOU Parameters on Cisco IOS NAD IOS-NAD(config)# IOS-NAD(config)# IOS-NAD(config)# IOS-NAD(config)#
eou port 21800 eou max-retry 2 no eou revalidate eou rate-limit 100
Monitoring and Troubleshooting NAC on Layer 3 Devices This section provides several tips on how to troubleshoot NAC Layer 3 issues. It includes the most useful show commands, debugs, and log messages that will help you troubleshoot any unexpected problems and monitor the NAC solution.
Useful Monitoring Commands Several show commands help monitor and report the state of NAC Layer 3 IP connections. The show eou all command is one of the most commonly used because it displays a table that summarizes all current NAC sessions. As shown in Example 5-12, the first entry indicates a clientless host that resides at 10.10.10.2. It was authenticated 3 minutes earlier, and the posture token is not known. The second entry indicates a static host that resides at 10.10.10.5 IP address. The last entry indicates a CTA-enabled host whose postureassessment result is Healthy. Example 5-12 Output of show eou all IOS-NAD# show eou all Address Interface 10.10.10.2 GigabitEthernet 10.10.10.5 GigabitEthernet 10.10.10.10 GigabitEthernet
AuthType CLIENTLESS STATIC EAP
Posture-Token Age(min) ------3 ------0 Healthy 15
Monitoring and Troubleshooting NAC on Layer 3 Devices
169
If you would rather get detailed information about a particular EAPoUDP session, you can use the show eou ip command followed by the IP address of the host you are interested in. Example 5-13 shows the output of the show eou ip command to see detailed connection information about 10.10.10.10. The host resides out the GigabitEthernet0/1 interface of the router and has been given a Healthy posture token. Cisco Secure ACS is pushing a corresponding ACL called #ACSACL#-IP-healthy-42c46e7c to the Cisco IOS NAD that is applied to this host. Example 5-13 Displaying EOU Session Details for a Specific IP Address 6503-A# show eou ip Address Interface AuthType PostureToken Age(min) URL Redirect ACL Name User Name Revalidation Period Status Query Period
10.10.10.10 : 10.10.10.10 : GigabitEthernet0/1 : EAP : Healthy : 15 : NO URL REDIRECT : #ACSACL#-IP-healthy-42c46e7c : PCTOO:User1 : 18000 Seconds : 600 Seconds
You can view the global EAPoUDP parameters on Cisco IOS by using the show eou command, as shown in Example 5-14. It displays the EAPoUDP port that the Cisco IOS NAD uses, along with all the EAPoUDP timers. It also shows the clientless authentication parameters, if configured. Example 5-14 Displaying Global EOU Parameters IOS-NAD# show eou Global EAPoUDP Configuration ---------------------------EAPoUDP Version = 1 EAPoUDP Port = 0x5566 Clientless Hosts = Enabled IP Station ID = Enabled Revalidation = Disabled Revalidation Period = 18000 Seconds ReTransmit Period = 10 Seconds StatusQuery Period = 600 Seconds Hold Period = 300 Seconds AAA Timeout = 60 Seconds Max Retries = 3 EAP Rate Limit = 20 EAPoUDP Logging = Enabled Clientless Host Username = clientless Clientless Host Password = cisco123 Interface Specific EAPoUDP Configurations ----------------------------------------Interface GigabitEthernet0/1 No interface specific configuration
170
Chapter 5: Configuring Layer 3 NAC on Network Access Devices
Troubleshooting NAC If the inside hosts are not going through the posture-validation process or they are having difficulties accessing the network resources, make sure that you have the proper debugs and logging turned on. To troubleshoot a NAC issue, start by enabling EAPoUDP logging by using the eou logging command, as shown in Example 5-15. This command shows information about EAPoUDP for the new and existing sessions. In Example 5-15, a new host is detected on the GigabitEthernet0/1 interface with an IP address of 10.10.10.10. The Cisco IOS NAD initiates the EAPoUDP process and authorizes the host. The host has CTA installed, as detected by the Cisco IOS NAD. Example 5-15 Enabling EOU Logging IOS-NAD# configure terminal IOS-NAD(config)# eou logging *Feb 1 00:48:22.511: %EOU-6-SESSION: IP=10.10.10.10 HOST=DETECTED Interface=GigabitEthernet0/1 *Feb 1 00:48:22.515: %EOU-6-CTA: IP=10.10.10.10 CiscoTrustAgent=DETECTED *Feb 1 00:48:22.531: %EOU-6-POLICY: IP=10.10.10.10 HOSTNAME= *Feb 1 00:48:22.531: %EOU-6-POSTURE: IP=10.10.10.10 HOST=AUTHORIZE D Interface= GigabitEthernet0/1 *Feb 1 00:48:22.531: %EOU-6-AUTHTYPE: IP=10.10.10.10 AuthType=EAP
By enabling the previous command, you can send the information to a syslog server or an event-correlation system, such as CS-MARS.
NOTE
Chapter 17, “Monitoring the NAC Solution Using the Cisco Security Monitoring, Analysis, and Response System,” covers monitoring the NAC solution using CS-MARS.
If the EOU logging does not give you enough information about a NAC session, you can enable the EAPoUDP debugs using the debug eou all command, as shown in Example 5-16. When a host tries to access the network through the Cisco IOS NAD, the Cisco IOS NAD initiates the EAPoUDP process, as shaded in the first debug entry. It creates the EAPoUDP session and sends an EAPoUDP hello to the host. If the CTA service is active on the client, it responds to the hello packet. The Cisco IOS NAD contacts the Cisco Secure ACS server to determine the posture state of the client. In this example, the Cisco Secure ACS server returns a failed attribute to the Cisco IOS NAD. View the logs on the Cisco Secure ACS server to determine why it failed the session for this host. Example 5-16 Output of debug eou all IOS-NAD# debug eou all *Feb 1 01:02:51.983: eou-obj_create:EOU Init Validation for idb= GigabitEthernet0/ 1 src_mac= 0011.2582.399d src_ip= 10.10.10.10 *Feb 1 01:02:51.987: eou-ev:32.98.114.105: msg = 33(eventEouCreateSession)
Summary
Example 5-16 Output of debug eou all
171
(Continued)
*Feb 1 01:02:51.987: eou_auth 10.10.10.10: initial state eou_initialize has enter *Feb 1 01:02:51.987: eou-obj_create:10.10.10.10: EAPoUDP Session Created *Feb 1 01:02:51.987: eou-obj_link:10.10.10.10: EAPoUDP Session added to Hash table *Feb 1 01:02:51.987: %EOU-6-SESSION: IP=10.10.10.10| HOST=DETECTED| Interface=GigabitEthernet0/1 *Feb 1 01:02:51.987: eou_auth 10.10.10.10: during state eou_initialize, got event 1(eouCheckProfile) *Feb 1 01:02:51.987: @@@ eou_auth 10.10.10.10: eou_initialize -> eou_initialize *Feb 1 01:02:51.987: eou-ev:10.10.10.10: msg = 3(eventEouStartHello) *Feb 1 01:02:51.987: eou_auth 10.10.10.10: during state eou_initialize, got event 3(eouStartHello) *Feb 1 01:02:51.987: @@@ eou_auth 10.10.10.10: eou_initialize -> eou_hello *Feb 1 01:02:51.987: eou-ev:Starting Retransmit timer 10(10.10.10.10) *Feb 1 01:02:51.987: eou-ev:eou_send_hello_request: Send Hello Request host= 10.10.10.1 eou_port= 5566 (hex)