This document describes how to install the Cisco® Virtual Office head-end routers and management server. It is intended for IT administrators.
The installation process involves the following steps:
1. Assign hostnames and IP addresses to all head-end devices.
2. Open firewall rules in the corporate firewall to allow Cisco Virtual Office spokes to establish IP Security (IPSec) tunnels and be securely provisioned.
3. Configure the VPN head ends and management servers.
The configuration examples in this guide use Dynamic Multipoint VPN (DMVPN) for the Cisco Virtual Office data traffic, but they do not show how head ends are installed. For information on how to deploy the various types of head ends, visit http://www.cisco.com/go/cvo and look for the "CVO Converged VPN" white paper.
Cisco Virtual Office uses a Cisco IOS® Secure Device Provisioning (SDP) server, called a registrar, to securely deploy remote devices. The management console for Cisco Virtual Office is Cisco Security Manager. This management tool is complemented by Cisco Configuration Engine (CE), which interacts with remote devices and provides a "pull" based configuration.
For more information about Cisco Virtual Office, how to manage the converged VPN, and how to add new security features, visit http://www.cisco.com/go/cvo and look for "Converged VPN" and "Advanced Layered Identity."
Network Architecture
Figure 1 shows the Cisco Virtual Office network topology that is deployed internally at Cisco. We recommend having three tunnels available for any remote Cisco Virtual Office router at all times:
• One to access the management network
• One for primary data traffic
• One for failover
Public key infrastructure (PKI) is recommended instead of preshared keys (PSK) for ISAMKP, as it is more secure and is easier to manage, although PSK also works perfectly well.
Cisco recommends using the Cisco Security Manager management tool for large enterprise provisioning. This tool allows IT administrators to do zero-touch deployments, making day-to-day ongoing management activities very convenient, as it provides a framework for easily and quickly updating security policies for thousands of remote routers with centralized management.
Figure 1. Cisco Virtual Office Network Topology
Platforms and Images
Typical small office/home office (SOHO) user: Cisco 871W or Cisco 881W Integrated Services Router
Cisco Unified IP Phone 7965G
Data VPN head end: Cisco 7206 Router with Cisco 7200 Series NPE-G2 Network Processing Engine and VSA encryption card
Cisco IOS Software Release 12.4(15)T6 for VPN head ends and 12.4(20)T for SOHO boxes
PKI server: Cisco 2821 Integrated Services Router
Management gateway: Cisco 3845 Integrated Services Router (for up to 1500 sites) or a Cisco Catalyst® 6500 Series Switch with VPN SPA for many thousands of sites Cisco Secure ACS AAA Version 4.2 (optional, in case a RADIUS server exists already in the company)
1. Assign an Internet-facing IP address to the VPN gateways and SDP server.
2. Open ports on the corporate firewall.
VPN gateways need UDP 500, 4500, and ESP (IP 50).
SDP server needs SSL (443) and HTTP (can be 80, but it is better for it to be another one, such as TCP 8000).
3. Reserve the IP address for the Cisco Virtual Office remote routers.
For DMVPN, you need to have individual /29 subnets for each of the spokes (or whatever subnet makes more sense). These subnets need to be routed, companywide, to the respective DMVPN hub.
You also need to have unique multipoint generic routing encapsulation (mGRE) IP addresses for every router that is part of the domain. This pool of addresses is internal to the DMVPN domain and does not need to be routable back to the company. It can be any available private pool of addresses: 10net, 192.168net, 172.16net.
4. Choose a routing protocol for DMVPN. The recommended one is Enhanced Interior Gateway Routing Protocol (EIGRP). This routing system runs only between the DMVPN hub and spokes, and can be distributed into the corporate routing protocol.
Setting Up the Head Ends and Servers
1. Install the routers according to the list given earlier, with the correct versions (see Figure 1).
Make sure you enable cryptographic communication between the Configuration Engine and devices, to allow Cisco Security Manager to connect to Configuration Engine using its respective APIs. You will need to generate private RSA keys using Cisco OpenSSL in the Configuration Engine.
Installing Configuration Engine 2.0
To install CE 2.0, you first need a Linux Red Hat Enterprise server running version 3.0.
After Red Hat is running, start by executing the Cisco Configuration Engine software from the installation CD.
Then log in to Red Hat and follow these steps, which define the CE 2.0 settings and also let you install an SSL certificate, which will be used for the https connection between the Configuration Engine and Cisco Security Manager and remote devices.
Make sure to enable cryptographic operations when you see the following question during setup:
Enable cryptographic (crypto) operation between Event Gateway(s)/Config server and device(s) (y/n)?
The steps are as follows:
Log in to Red Hat and define the CE login credentials:
Username:root
Password: <...>
CE username: admin
CE password: demo123
Change the IP address of the eth0 interface:
ifconfig eth0 address <ip> netmask 255.255.255.0
Add the new IP address and hostname to /etc/hosts.
Add the new hostname to /etc/sysconfig/network.
Generate a Certificate Signing Request (CSR) and install the certificate.
Enter SMTP server (hostname.domainname or IP address):
Encryption settings:
--------------------
Enable cryptographic (crypto) operation between Event Gateway(s)/Config
server and device(s) (y/n)? [n] y
Enter absolute pathname of server key file: server.key
Enter absolute pathname of server certificate file: server.crt
Enabling plaintext operation will increase security risk.
Enable plaintext operation between Config Server and devices/GUI
administration (y/n)? [y]
Enable plaintext operation between Event Gateway and devices (y/n)? [y]
Enter port number for http web access: [80]
Enter port number for https web access: [443]
Enter Tomcat internal port number: [8009]
Enter Tomcat shutdown port number: [8005]
Authentication settings:
------------------------
IOS Devices are normally authenticated before being allowed to
connect to the Event Gateway/Config Server. Disabling
authentication will increase security risk.
Enable authentication (y/n)? [n]
Event services settings:
------------------------
Enter Event Gateway application parameter(s) for NSM: [config]
Enable Event Gateway debug log (y/n)? [n] y
Enter log file rotation timer (minutes, 0 = no rotation): [2]
Enter max log file size (Kbytes): [3072]
Enable log backup (y/n)? [y]
Each Event Gateway process serves 500 devices. Maximum number of
Event Gateways allowed is 11.
Enter number of Event Gateways that will be started with crypto operation:
[0] 6
Enter number of Event Gateways that will be started with plaintext
operation: [5]
Enter Cisco-CE Event Bus Network Parameter: [demo-ce]
Enter Cisco-CE Event Bus Service Parameter: [7500]
Enter Cisco-CE Event Bus Daemon Parameter: [7500]
Enable Cisco-CE Event Bus routing daemon logging (y/n)? [n]
Enter http port for Event Bus Web Administration GUI: [7580]
Event Bus Web Admin port should always be closed unless the Web
admin GUI is needed. Keeping web admin port open is a security
risk.
Would you like to open Event Bus Administration port (y/n)? [n] y
Current settings of IMGW:
-------------------------
Gateway ID: demo-ce
Run as daemon (y/n)? y
Timeout in seconds for a CLI command to complete: 180
Timeout in seconds to get the next prompt in Telnet session: 60
Concurrent Telnet session limit: 25
Hoptest success retry interval (sec): 0
Hoptest failure retry interval (sec): 0
Logging level (verbose, error, silent): error
Log file Prefix: IMGW-LOG
Log file size (bytes): 50331648
Log file rotation timer (seconds): 60
Logging mode (append, overwrite): append
Alternative username prompt for device using TACACS/RADIUS:
Alternative password prompt for device using TACACS/RADIUS:
Re-configure IMGW (y/n)? [n] n
CE Monitor Settings:
-----------------------
Enter CE Monitor timer (seconds): [1800]
Web Services settings:
----------------------
Enable CEConfigService web service (y/n)? [y]
Enable CEImageService web service (y/n)? [y]
Enable CEAdminService web service (y/n)? [y]
Enable CEExecService web service (y/n)? [y]
Enable CENSMService web service (y/n)? [y]
Please review the following parameters:
country code: us
company code: cisco
Configuration Engine login name: admin
Configuration Engine login password: *****
internal LDAP server port number: 389
internal LDAP server password: *****
SMTP server (hostname.domainname or IP address):
Enable cryptographic (crypto) operation between Event Gateway(s)/Config server and device(s) (y/n)? y
absolute pathname of server key file: server.key
absolute pathname of server certificate file: server.crt
Enable plaintext operation between Config Server and devices/GUI administration (y/n)? y
Enable plaintext operation between Event Gateway and devices (y/n)? y
port number for http web access: 80
port number for https web access: 443
Tomcat internal port number: 8009
Tomcat shutdown port number: 8005
Enable authentication (y/n)? n
Event Gateway application parameter(s) for NSM: config
Enable Event Gateway debug log (y/n)? y
log file rotation timer (minutes, 0 = no rotation): 2
max log file size (Kbytes): 3072
Enable log backup (y/n)? y
number of Event Gateways that will be started with crypto operation: 6
number of Event Gateways that will be started with plaintext operation: 5
Cisco-CE Event Bus Network Parameter: demo-ce
Cisco-CE Event Bus Service Parameter: 7500
Cisco-CE Event Bus Daemon Parameter: 7500
Enable Cisco-CE Event Bus routing daemon logging (y/n)? n
http port for Event Bus Web Administration GUI: 7580
Would you like to open Event Bus Administration port (y/n)? y
Re-configure IMGW (y/n)? n
CE Monitor timer (seconds): 1800
Enable CEConfigService web service (y/n)? y
Enable CEImageService web service (y/n)? y
Enable CEAdminService web service (y/n)? y
Enable CEExecService web service (y/n)? y
Enable CENSMService web service (y/n)? y
Warning: setup cannot be aborted while committing changes.
Commit changes (y/n):y
Install the certificate in the browser:
After Configuration Engine is installed and running, it is useful to install the certificate to the browser store, to prevent a security warning from popping up every time you want to log in to the Configuration Engine.
Go to https://<ip-of-ce>
A security warning will pop up.
Click "Certificate Error" on the right side of the URL.
Click "View Certificates" at the bottom of the pop-up.
Click "Install Certificate" in the pop-up to install the certificate.
The next time you log in to the Configuration Engine, the security warning will not pop up.
4. Enable Cisco Security Manager to talk to the Configuration Engine.
a. Start Cisco Security Manager.
b. Create a device on Cisco Security Manager.
c. Edit the device properties by double-clicking the device.
d. Under CNS-Configuration Engine, click "Add Configuration Engine" (Figure 2).
Figure 2. Adding a Configuration Engine to Cisco Security Manager
Enter the Cisco Networking Services access properties (Figure 3). Note that Cisco Security Manager will use only https, port 443, to talk to CE.
Figure 3. Entering Configuration Engine Properties in Cisco Security Manager
5. Install SDP (Cisco IOS Router) and its respective PKI CA server.
Installing an SDP Server
SDP has two main goals: install a PKI certificate in the client and push a template-based config.
We can push a full config or a bootstrap config. For Cisco Virtual Office in production, we push the bootstrap only with SDP.
For the SDP guide (formerly called EZSDD), go to the following URL:
SDP runs on any Cisco IOS Router. It grants a certificate to a remote user when the user provides valid credentials.
Note: The PKI server should not be put into auto-enroll mode, as it needs to be accessible from the Internet and you don't want people to get certificates all the time-only when they first join Cisco Virtual Office.
(a) Create a PKI server.
Start by setting the following:
1. Hostname
2. Domain name
3. Time zone and a Network Time Protocol (NTP) server for clock synchronization (if the router does not have a built-in hardware clock).
4. Enable HTTP to allow clients to do Simple Certificate Enrollment Protocol (SCEP) enrollment.
Finally, apply the PKI server configuration and save the config.
The following shows the process of creating a PKI server. Note that the items in red need to be changed to the local environment.
hostname <hostname>
ip domain name <domain.com>
ip http server
ip http authentication aaa
!
clock timezone PST -8
clock summer-time PDT recurring
!
!!! Add your own NTP servers here
!
ntp server 192.5.41.40
ntp server 198.123.30.132
!
!
!!! FTP access configuration for storing .crt, .cnm, and .crl files in external FTP server
Other methods could be used, ssh, tftp, telnet, http, etc.!!!
!
ip ftp username <ftp user>
ip ftp password <ftp password>
ip host ftpserver <ip address of server for certificate storage>
!
!!! RSA key pair is generated automatically when enabling Cisco IOS Certificate Server using 1024 bits. Optionally, RSA keys with the rsa-keypair name matching the certificate server can be generated manually with different options such as higher modulus, exportable, etc. Keys must be generated with the exportable option to export them for later restoration in case of certificate server failure. However, the user needs to take the utmost care to store keys securely as it would be easy for someone to get access with the keys.
!!! The following Cisco IOS Certificate Server configuration uses a complete database that stores separate .crt and .cnm files for each certificate it issues. In general, router flash memory has less capacity to store all these files; hence, only essential files should be stored in router flash memory, and all other files can be stored on an external FTP server. The lifetime values shown here are for illustration purposes only. !!!
!
crypto pki server pki-server
!!! pki server name must match rsakeypair name !!!
database level complete
database archive pkcs12 password <password>
!!! Keys can be auto archived !!!
issuer-name cn= pki-server,ou=IT
!!! Identification of the PKI server within Cisco CVO !!!
lifetime crl 24
!!! Every 24 hours the crl database is renewed and published !!!
lifetime certificate 365
!!! Issued router (client) certificates are valid for 1 year !!!
lifetime ca certificate 1825
!!! Root (certificate server)certificate is valid for 5 years !!!
cdp-url http://<cdp-address>/pki-server.crl
!!! PKI clients get CRL from this location !!!
database url ftp://<ftp-server>/pki
!!! All files are stored on this external FTP server!!!
no shutdown
(b) Enter the SDP config.
Now you will configure the SDP server itself. In the following example, $n is the username that you enter in your authentication. You must use it as the name of the file that contains the config you want to push, and it must be an individual file per the Cisco 871 to be provisioned.
Items shown in red need to be entered according to the local environment.
Note: To be able to enter "?" in the command-line interface, you need to press Ctrl-V first.
If you don't have Cisco Security Manager yet, then create configuration files in a file server, which can be use FTP, TFTP, HTTP, and so on. Any server that is reachable by the SDP server will do.
(e) Create a profile in the authentication, authorization, and accounting (AAA) for the SDP authentication.
This is the profile that the end user will enter during SDP client-side authentication.
Note: The username must match the file name $n of the configuration file (Cisco Security Manager device hostname) for the respective user.
6. Create a bootstrap FlexConfig in Cisco Security Manager. This will be the Cisco Virtual Office bootstrap config. It will do the following:
A. Create the management tunnel config for the new SOHO router.
B. Install a PKI certificate in the new SOHO router.
C. Configure the Cisco Networking Services agent on the SOHO router. This will cause the router to do a "call-home" and get its full config from the Configuration Engine, over the management tunnel.
SDP─Cisco Security Manager FlexConfig Example
Open Cisco Security Manager.
Go to Tools -> Policy Manager.
Go to the FlexConfig tab.
Click "Add FlexConfig."
$SYS_HOSTNAME and $SYS_MANAGEMENT_IP are Cisco Security Manager internal variables. They correspond to the device name and IP address shown in the Cisco Security Manager GUI.
Note: Insert these variables by using the mouse and right-clicking on the editor and then entering the respective variable.
Make sure all "$c" is set to "optional" when you save the FlexConfig.
All of the items in red need to be changed for your environment.
clock timezone PST -8
clock summer-time PDT recurring
hostname $SYS_HOSTNAME
no logg buffer
logg console debug
no ip inspect
bridge irb
bridge 10 route ip
bridge 20 route ip
interface vlan10
bridge-group 10
bridge-group 10 spanning-disabled
int vlan20
bridge-group 20
bridge-group 20 spanning-disabled
int bvi10
int bvi20
service timestamps debug datetime localtime show-timezone
service timestamps log datetime msec localtime show-timezone
do clock set #systemCurrentTimeInIOSFormat()
ntp server 192.5.41.40
!!! to kick off some traffic to the mgt tunnel
ntp server <management GW internal ip address> source bvi10
7. Enable the SDP registrar to grab the Cisco Virtual Office bootstrap config from Cisco Security Manager. Note that Cisco Security Manager allows only https to be used to get an instantiated FlexConfig.
Enabling SDP to Grab Cisco Virtual Office Bootstrap Configs from Cisco Security Manager
1. SDP will have to use https to talk to Cisco Security Manager. For SSL, you need to have the certificate of the server installed in the client. Start by adding your Cisco Security Manager SSL certificate to your SDP Cisco IOS Router, following these instructions:
(a) Install the Cisco Security Manager SSL certificate in your browser (Internet Explorer) by editing the https://your-csm presented certificate and then clicking "Install."
(b) From the browser, export the certificate as base64 encoded X.509, and then open the file newly created with Notepad.
You have to open IE Tools -> Internet Options -> Content -> Certificates, find the Cisco Security Manager certificate, and export it to a file.
(c) On the router, create a trustpoint and set it to manual authorization:
crypto pki trustpoint csm
enroll terminal
revocation-check none
exit
(d) Then authenticate:
crypto pki authenticate csm
It will let you paste in the certificate (copy and paste from Notepad, from the file you saved in step a.
Press Enter and, when asked if you want to accept it, click "Yes."
2. Enter the respective SDP registrar config to be able to talk to Cisco Security Manager and authenticate the end user against an AAA:
In this example, "-vpn" is concatenated to the device name. This is optional. It is to show you that you can add a prefix/suffix to the username of the end-user credentials. The template name is also customizable. It is whatever you created for SDP on Cisco Security Manager previously.
Create Templates/Parameters for Spokes in Cisco Security Manager
Go to Tools -> Object Manager, create a "Network/Host," and call it "protected-subnet" (Figure 4). Give it a random network number. This value will need to be overridden for every spoke.
Figure 4. Creating a Protected Subnet
Now edit your device properties. Go to Interface Roles and create an override for external and internal interfaces (Figure 5). It should be:
External: FastEthernet4, Dialer1, Outside
Internal: BVI10, BVI20
Figure 5. Creating Overrides for Internal and External Interfaces
Creating a Master Device in Cisco Security Manager
There are two main ways of adding devices initially to Cisco Security Manager. The first is to create an empty device and define its policies, one by one.
A faster method is to start with an existing Cisco Virtual Office router config and import it, thus allowing Cisco Security Manager to create policies on the fly (Figure 6).
Figure 6. Importing an Existing Device Configuration File into Cisco Security Manager
You will find a sample Cisco 881 router spoke config in Appendix 1.
To add an already configured Cisco 881, go to Cisco Security Manager and click "Create Device." You can use a network or config file. After the policies have been imported, make them all shared (Figure 7).
Figure 7. Making Policies Shared
If you created a device from scratch, you need to add interfaces for BVI10 and BVI20 (corporate and guest) VLANs (Figure 8).
Figure 8. Creating Router Interfaces
If you imported your existing Cisco 871 and want to make it "template 871," make sure that its properties for Interface Roles list the correct BVI number in the internal network (Figure 9).
Figure 9. Mark BVI10 and VLAN10 as Internal Interfaces
Now add your DMVPN hubs from the network or config file.
Open the properties for these DMVPN hubs (double-click them) and make them unmanaged in Cisco Security Manager, since you have them working already (Figure 10).
Figure 10. Marking Hubs as Unmanaged
Create a DMVPN policy: Go to Tools -> Site-to-Site VPN > DMVPN (Figure 11).
Figure 11. Creating a New DMVPN Policy
Add the hubs and spokes (Figure 12).
Figure 12. Adding Hubs and Spokes
Discovering an Existing DMVPN
You can use the information in the config given in Appendix 2, or your own config if you already have it.
• Create your existing spokes and hubs from "network" Figure 12 (see 3 slides back) Go to Policy -> Discover VPN.
• Select your hubs and spokes and discover them (Figure 13).
Figure 13. Adding Existing Head Ends
Edit and Change DMVPN Policies
• Edit hubs and select the actual interface for VPN external.
• Do the same for the spoke.
• Finish the DMVPN wizard.
• Unassign the preshared key policy.
• Edit the GRE Modes: Enter your correct routing protocol and the Tunnel Parameters on the network of your DMVPN internal cloud.
• Make the Protected Networks the "protected-subnet" you created before (Figure 14).
Figure 14. Specifying the Protected Network
Finally, click "Submit" to save the changes to the Cisco Security Manager database so that other users can see it.
cns image server http://configuration-engine.cisco.com/cns/HttpMsgDispatcher status http://configuration-engine.cisco.com/cns/HttpMsgDispatcher
end
Appendix 2: DMVPN Configuration
This configuration is for the case in which the corporate network runs the Open Shortest Path First (OSPF) protocol and DMVPN will run EIGRP internally.
This is a hub and spoke pair of configurations for your reference. Visit http://www.cisco.com/go/cvo and look for "CVO Converged VPN" for detailed information about how to converge DMVPN with other VPN types, and also for a "high concentration hub" design.