Skip to main content

Installing Cisco Secure ACS 5.3 in VirtualBox

ACS 5.3 is supported on a hardware appliance, VMWare ESX and VMWare Server. Even though not supported, it works without modification in VMWare Player. None of the above helps us if we want to test it with switches or routers in GNS3. While version 5.2 could be installed in VirtualBox, v5.3 consistently failed installation with “Unsupported hardware” error message. After trying all possible combinations of virtual hardware in VBox it still refused to install. After some hacking I eventually managed to get working.

Installation requires modification of the ISO image provided by Cisco and a bit of cheating in the kickstart file and pre-creation of partitions in the VM. We will need ISO editor (ISOpen or MagicISO), text editor (such as Notepad++) and a Linux live CD of your choice.

VBox hardware configuration:
OS Type: RedHat
RAM: 1024
CPU: PAE/NX enabled, VT-x/AMD-V disabled
Floppy: Disabled
Storage: Disk 70GB (I used dynamically expanded), Controller SCSI, SCSI Port 0
Audio: disabled
Network: Adapter Intel PRO/1000 MT
Serial Ports & USB: Disabled

All remaining settings stay at defaults.
Now we need to modify the kickstart file – ks.cfg – found in the root of the installation disk.

Red color shows old values and blue new ones. 

Change 0 to 1 on line 36


Delete line 54
54:   UDI_PID=`/sbin/cars_udi_util -p`

Set variable “ret” to 0

56:   ret="$?"0

Delete lines 57 to 61 inclusive

57: if [ "$ret" -eq 0 ]; then
58:   echo "***** Cisco UDI PID: $UDI_PID " > /dev/console
59:     case $UDI_PID in
60:       Cisco-VM-SPID)
61:         VM_APPLIANCE=1

Delete –all from line 104

104:             echo "#clearpart --all --initlabel";

Delete lines 186 to 195 inlcusive

186:   else
187:       echo "***** Error: Unsupported Hardware Configuration. " > /dev/console
188:       echo "*****        This software can only be installed on Cisco " > /dev/console
189:       echo "*****        supported hardware or Virtual Machine technology " > /dev/console
190:       echo "*****        meeting the requirements specified in the installation guide." > /dev/console
191:       echo "*****        Exiting Installation..." > /dev/console
192:       sleep 5
193:       /sbin/halt -f
194:       exit 0
195:   fi

Save the file, and replace the existing ks.cfg in the ISO image.  When saving the edited ISO make sure the it is still bootable (ISOopen shows if the disk is bootable in the main UI).

Edited ks.cfg file can be downloaded here:

If we try the installation with our edited ISO we’ll get further than before, the install will still fail though.
Now we need to create partitions on the disk we’ll be installing ACS to.
Boot the VM to a Live Linux distro of your choice, create 2GB partition /sda1 and format it as ext3.
Now we should be able to install ACS. Simply boot the edited installation disk and follow the prompts. 

When booting ACS sits on "ip_contract" for a few minutes so be patient it will eventually boot.


Popular posts from this blog

x.509 Certificates - Critical vs non-critical extensions

Extensions are used to associate additional information with the user or the key.  Each certificate extension has three attributes - extnID, critical, extnValue extnID - Extension ID - an OID that specifies the format and definitions of the extension critical - Critical flag - Boolean value extnValue - Extension value  Criticality flag specifies whether the information in an extension is important. If an application doesn't recognize the extension marked as critical, the certificate cannot be accepted. If an extension is not marked as critical (critical value False) it can be ignored by an application. In Windows, critical extensions are marked with a yellow exclamation mark,  View certificate extensions using OpenSSL: # openssl x509 -inform pem -in cert.pem -text -noout (output abbreviated)         X509v3 extensions:             X509v3 Key Usage: critical                 Digital Signature, Key Encipherment             X509v3 Subject Key Identifier

Count number of lines - 'findstr'

How do I count number of lines in a command output? findstr /r/n "^" | find /c ":" Above commands will display number of lines output by whatever command (well, nearly whatever) you specify in the front.  For example:  C:\>ping localhost | findstr /r/n "^" | find /c ":" FINDSTR: // ignored 12 This comes handy if you want to find out how many OUs you have in Active Directory: dsquery ou  -limit 0 | findstr /r/n "^" | find /c ":" How many user accounts there are: dsquery user -limit 0 | findstr /r/n "^" | find /c ":" Computers: dsquery computer -limit | findstr /r/n "^" | find /c ":"

Cisco ASA Certificate Revocation Checking

ASA supports status verification using CRLs and OCSP. CRL can be retrieved using HTTP, LDAP or SCEP. Revocation checking using CRL: Over HTTP: ciscoasa(config)# crypto ca trustpoint ASDM_TrustPoint2 ciscoasa(config-ca-trustpoint)# revocation-check crl ciscoasa(config-ca-crl)# protocol http By default ASA will use address listed in CDP extension of the certificate that is being validated.  To override default behaviour we need to add the following in the CRL configuration context. ciscoasa(config-ca-crl)# policy static ciscoasa(config-ca-crl)# url 1 Over LDAP: Certificate I'm using for this lab, doesn't have LDAP address in its CDP extension. Therefore I'm using "policy static"  to specify LDAP URL where CRL can be retrieved.  ciscoasa(config)# crypto ca trustpoint ASDM_TrustPoint2 ciscoasa(config-ca-trustpoint)# revocation-check crl ciscoasa(config-ca-trustpoint)# crl configure ciscoasa