Studying for CCIE Security? Buy this book!

Studying for CCIE Security? Buy this book!

It's not often I tout other people's books on here. Mostly because they are either ones you will obviously buy as they are on the official reading list, or they are just plain shite. That said, I saw someone asking if this book could be shared (i.e. so they don't have to pay for it), but I looked at the title (Practical Deployment of Cisco Identity Services Engine (ISE): Real-World Examples of AAA Deployments), found it on Amazon, looked at the blurb, and decided to buy it. So far, it's been a good investment.


If I wrote a book in ISE, this is the book I would like to have written.

Firstly, it feels nice to hold, its printed on smooth shiny paper, and it not too big. It's only 290 pages, but you do also get 12 blank pages at the end of the book. I guess this is something to do with the cover design (I understand this from designing my own book covers), alternatively it could be space to make notes, draw pictures of cats, or write out a shopping list. The possibilities are endless!

Anyway, why is this a good book? The official ISE book (Cisco ISE for BYOD and Secure Unified Access) is a big weighty tome, of all the Cisco Security books on my desk, it's probably the biggest. I have started to read it, but did not get that far. So I tried watching the INE videos, which I thought would make getting back into the book a bit easier, but the sheer size of it puts me off.

And then we have this book, in all it's shiny smooth glory.

It's nicely written, it feels like the authors are in the sme room as you, talking to you as an individual. It is a friendly book, written in plain english.

There are a couple of niggles, some of the pictures can be a little small (adding certificates), others can be overly large (generating certificates on the CA), but these are purely formatting, not a reflection on the writing.

It's quite clear that the writers, Andy Richter and Jeremy Wood, know their stuff. The book is filled with little tips to help you getting up and running, including all the little pitfalls along the way.

If you are like me, and ISE is all new to you, then this book is a great way to get into it, gradually, without being overwhelmed.

ISE takes up a fair old chunk of the CCIE Security exam, so it's an important technology to grasp, this book is an excellent way of helping you through labbing it up at home, and getting to grips with it quickly.

It is a good investment, and if you are looking for a smooth introduction into ISE, then you should definitely grab it:
Practical Deployment of Cisco Identity Services Engine (ISE): Real-World Examples of AAA Deployments

CCIE Security Lab: ISE-berg ahead! (Part one).

I know I have not devoted enough time to this learning as I need to. Work's been a bit busy with PCI audits, the new book has been published (CCNA and Beyond, not the Multicast one..), and it's been hard to find the time.

But I have a renewed interest, and this is down to picking up this book:


It's proving to be a great book so far, even though I am less than 100 pages in, it's got some really good real-world tips, it's well written, the pictures are a little small at times, but it is a good read. Well worth picking up from Amazon! So click on the picture and buy it, it's very good!

I have rolled out ISE 2.0 (although I think the CCIE lab uses 1.4), and the first step is to change the IP address:
ISE20/admin# sh run
!        
hostname ISE20
!        
ip domain-name lab.local
!        
interface GigabitEthernet 0
  ip address 192.168.90.205 255.255.255.0
  ipv6 address autoconfig
  ipv6 enable
!        
ip name-server 8.8.8.8  
!        
ip default-gateway 192.168.90.1
!        
ISE20/admin# conf t
ISE20/admin(config)# int gi 0
ISE20/admin(config-GigabitEthernet)# ip add 10.1.4.153 255.255.255.0

% Changing the IP address might cause ISE services to restart 
Continue with IP address change?  Y/N [N]: Y
Stopping ISE Monitoring & Troubleshooting Log Collector...
Stopping ISE Monitoring & Troubleshooting Log Processor...
ISE Identity Mapping Service is disabled
ISE pxGrid processes are disabled
Stopping ISE Application Server...
ISE Certificate Authority Service is disabled
ISE Sxp Engine Service is disabled
Stopping ISE Profiler Database...
Stopping ISE Monitoring & Troubleshooting Session Database...
Stopping ISE AD Connector...
Stopping ISE Database processes...

Error: Database listener not reachable! Reached timeout of 240 seconds


ISE20/admin(config-GigabitEthernet)# 
ISE20/admin(config-GigabitEthernet)# 
ISE20/admin(config-GigabitEthernet)# 
ISE20/admin(config-GigabitEthernet)# do sh run
!        
interface GigabitEthernet 0
  ip address 10.1.4.153 255.255.255.0
  ipv6 address autoconfig
  ipv6 enable
!        
ip name-server 8.8.8.8  
!        
ip default-gateway 192.168.90.1
!        
ISE20/admin(config-GigabitEthernet)# exi
ISE20/admin(config)# no ip default-gateway 192.168.90.1
ISE20/admin(config)# ip default-gateway 10.1.4.254
ISE20/admin(config)# do ping 10.1.4.254
PING 10.1.4.254 (10.1.4.254) 56(84) bytes of data.
64 bytes from 10.1.4.254: icmp_seq=1 ttl=255 time=11.6 ms
64 bytes from 10.1.4.254: icmp_seq=2 ttl=255 time=7.04 ms
64 bytes from 10.1.4.254: icmp_seq=3 ttl=255 time=8.79 ms
64 bytes from 10.1.4.254: icmp_seq=4 ttl=255 time=8.00 ms

--- 10.1.4.254 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3013ms
rtt min/avg/max/mdev = 7.044/8.875/11.663/1.728 ms

ISE20/admin(config)# end
ISE20/admin# copy run start
Generating configuration...
ISE20/admin# sh app stat ise

ISE PROCESS NAME                       STATE            PROCESS ID  
--------------------------------------------------------------------
Database Listener                      running          12147       
Database Server                        running          24 PROCESSES
Application Server                     not running                  
Profiler Database                      not running                  
AD Connector                           not running                  
M&T Session Database                   not running                  
M&T Log Collector                      not running                  
M&T Log Processor                      not running                  
Certificate Authority Service          disabled                     
SXP Engine Service                     disabled                     
pxGrid Infrastructure Service          disabled                     
pxGrid Publisher Subscriber Service    disabled                     
pxGrid Connection Manager              disabled                     
pxGrid Controller                      disabled                     
Identity Mapping Service               disabled                     
% WARNING: ISE DISK SIZE NOT LARGE ENOUGH FOR PRODUCTION USE
% RECOMMENDED DISK SIZE: 200 GB, CURRENT DISK SIZE: 128 GB 

ISE20/admin#
ISE20/admin#
ISE20/admin# app start ise
ISE Database processes already running, PID: 12147
Starting ISE Monitoring & Troubleshooting Session Database...
Starting ISE Profiler Database...
Starting ISE Application Server...
Starting ISE Monitoring & Troubleshooting Log Processor...
Starting ISE Monitoring & Troubleshooting Log Collector...
Starting ISE AD Connector...
Note: ISE Processes are initializing. Use 'show application status ise'
      CLI to verify all processes are in running state. 

ISE20/admin# sh app stat ise

ISE PROCESS NAME                       STATE            PROCESS ID  
--------------------------------------------------------------------
Database Listener                      running          12147       
Database Server                        running          35 PROCESSES
Application Server                     initializing                 
Profiler Database                      running          20877       
AD Connector                           running          22676       
M&T Session Database                   running          20790       
M&T Log Collector                      running          22573       
M&T Log Processor                      running          22524       
Certificate Authority Service          disabled                     
SXP Engine Service                     disabled                     
pxGrid Infrastructure Service          disabled                     
pxGrid Publisher Subscriber Service    disabled                     
pxGrid Connection Manager              disabled                     
pxGrid Controller                      disabled                     
Identity Mapping Service               disabled                     
% WARNING: ISE DISK SIZE NOT LARGE ENOUGH FOR PRODUCTION USE
% RECOMMENDED DISK SIZE: 200 GB, CURRENT DISK SIZE: 128 GB 

ISE20/admin#
ISE20/admin# sh app stat ise

ISE PROCESS NAME                       STATE            PROCESS ID  
--------------------------------------------------------------------
Database Listener                      running          12147       
Database Server                        running          43 PROCESSES
Application Server                     running          22485       
Profiler Database                      running          20877       
AD Connector                           running          22676       
M&T Session Database                   running          20790       
M&T Log Collector                      running          22573       
M&T Log Processor                      running          22524       
Certificate Authority Service          disabled                     
SXP Engine Service                     disabled                     
pxGrid Infrastructure Service          disabled                     
pxGrid Publisher Subscriber Service    disabled                     
pxGrid Connection Manager              disabled                     
pxGrid Controller                      disabled                     
Identity Mapping Service               disabled                     
% WARNING: ISE DISK SIZE NOT LARGE ENOUGH FOR PRODUCTION USE
% RECOMMENDED DISK SIZE: 200 GB, CURRENT DISK SIZE: 128 GB 

ISE20/admin# 
It does take a while to get everything up and running (mainly the application server), but once it's up, we *should* have access:

Cisco ISE 403 error

The logs are plentiful, and full of crap about Java. I hate Java, it sucks. So, I guess I will have to rebuild, and just accept the default IP address it comes with, and set up a new VLAN...

A little while later, and it's back up and running. With this configuration:
ISE20/admin# sh run
hostname ISE20
!        
ip domain-name lab.local
!        
interface GigabitEthernet 0
  ip address 192.168.90.205 255.255.255.0
  ipv6 address autoconfig
  ipv6 enable
!        
ip name-server 8.8.8.8  
!        
ip default-gateway 192.168.90.1
!        
ISE20/admin#
So, I need to add a new VLAN, VLAN interfaces etc etc. Yeah, I know, troubleshooting would have been a better way of learning, but I just want to get on and play!
SW3#vtp primary 
This system is becoming primary server for feature vlan 
No conflicting VTP3 devices found.
Do you want to continue? [confirm]
SW3#
SW3#
%SW_VLAN-4-VTP_PRIMARY_SERVER_CHG: 5000.0010.0000 has become the primary server for the VLAN VTP feature
SW3#
SW3#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
SW3(config)#vlan 90
SW3(config-vlan)#
SW3(config-vlan)#name ISE_VLAN
SW3(config-vlan)#
SW3(config-vlan)#exit

SW1(config)#interface Vlan90
SW1(config-if)# ip address 192.168.90.1 255.255.255.0
SW1(config-if)#no shut
SW1(config-if)#

SW4(config)#int gi 1/2
SW4(config-if)#swi acc vl 90
SW4(config-if)#do sh vlan

VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
1    default                          active    Gi0/0, Gi1/0, Gi1/1
4    Management                       active    Gi1/3
7    DMZ                              active    
9    Phones                           active    
11   Switch-MGMT                      active    
12   Junk_VLAN                        active    
20   Users-1                          active    
21   Users-2                          active    
55   Failover                         active    
90   ISE_VLAN                         active    Gi1/2
99   Data-Phone                       active             
SW4(config-if)#

ISE20/admin# ping 192.168.90.1
% Error: connect: Network is unreachable
ISE20/admin# conf t
Enter configuration commands, one per line.  End with CNTL/Z.
ISE20/admin(config)# int gi 0
ISE20/admin(config-GigabitEthernet)# no shut
ISE20/admin(config-GigabitEthernet)# end
ISE20/admin# ping 192.168.90.1
PING 192.168.90.1 (192.168.90.1) 56(84) bytes of data.
64 bytes from 192.168.90.1: icmp_seq=1 ttl=255 time=2.61 ms
64 bytes from 192.168.90.1: icmp_seq=2 ttl=255 time=3.16 ms
64 bytes from 192.168.90.1: icmp_seq=3 ttl=255 time=2.68 ms
64 bytes from 192.168.90.1: icmp_seq=4 ttl=255 time=2.98 ms

--- 192.168.90.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3008ms
rtt min/avg/max/mdev = 2.612/2.862/3.169/0.235 ms

ISE20/admin# 
Note that I gave each of the other switches a VLAN 90 interface, and IP address (192.168.90.2 for SW2 and so on). We can now ping it from the Windows host:

Pinging the Cisco ISE

We can't get to the interface, but this is because the application is not started properly:
ISE20/admin# sh app stat ise

ISE PROCESS NAME                       STATE            PROCESS ID  
--------------------------------------------------------------------
Database Listener                      running          2774        
Database Server                        running          27 PROCESSES
Application Server                     not running                  
Profiler Database                      not running                  
AD Connector                           not running                  
M&T Session Database                   running          2265        
M&T Log Collector                      not running                  
M&T Log Processor                      not running                  
Certificate Authority Service          disabled                     
SXP Engine Service                     disabled                     
pxGrid Infrastructure Service          disabled                     
pxGrid Publisher Subscriber Service    disabled                     
pxGrid Connection Manager              disabled                     
pxGrid Controller                      disabled                     
Identity Mapping Service               disabled                     
% WARNING: ISE DISK SIZE NOT LARGE ENOUGH FOR PRODUCTION USE
% RECOMMENDED DISK SIZE: 200 GB, CURRENT DISK SIZE: 128 GB 

ISE20/admin# app start ise

ISE Database processes already running, PID: 2774
ISE M&T Session Database is already running, PID: 2265
Starting ISE Profiler Database...
Starting ISE Application Server...
Starting ISE Monitoring & Troubleshooting Log Processor...
Starting ISE Monitoring & Troubleshooting Log Collector...
Starting ISE AD Connector...
Note: ISE Processes are initializing. Use 'show application status ise'
      CLI to verify all processes are in running state. 

ISE20/admin# show application status ise

ISE PROCESS NAME                       STATE            PROCESS ID  
--------------------------------------------------------------------
Database Listener                      running          2774        
Database Server                        running          36 PROCESSES
Application Server                     initializing                 
Profiler Database                      running          11371       
AD Connector                           running          13165       
M&T Session Database                   running          2265        
M&T Log Collector                      running          13069       
M&T Log Processor                      running          13020       
Certificate Authority Service          disabled                     
SXP Engine Service                     disabled                     
pxGrid Infrastructure Service          disabled                     
pxGrid Publisher Subscriber Service    disabled                     
pxGrid Connection Manager              disabled                     
pxGrid Controller                      disabled                     
Identity Mapping Service               disabled                     
% WARNING: ISE DISK SIZE NOT LARGE ENOUGH FOR PRODUCTION USE
% RECOMMENDED DISK SIZE: 200 GB, CURRENT DISK SIZE: 128 GB 

ISE20/admin#

ISE20/admin# sh app stat ise | i Application
Application Server                     initializing                 
ISE20/admin# sh app stat ise | i Application
Application Server                     initializing                 
ISE20/admin# sh app stat ise | i Application
Application Server                     initializing                 
ISE20/admin# sh app stat ise | i Application
Application Server                     running          12983       
ISE20/admin# 
It takes quite a while for it to get up and running! Eventually (after A LOT of refreshing the browser), we start to get somewhere!

ISE login page

After logging in I get that sinking feeling, like the Titanic hitting the ISE-berg (geddit?).

ISE login errors

So I tried Chrome, actually, I tried Chrome after updating UNL, and the underlying OS to the latests, and rebooting everything. Naturally I needed to do a no shut on the ISE Gig0 interface and start the application again. It's all a bit frustrating really, but no one said that this was going to be easy.

Anyway, I finally seem to be getting somewhere:

ISE Setup page

Clicking on "Yes" hasn't brought up any setup pages though... But it does look nice when you get into it.


Basically this is a crap start, and a large number of hours feel like they have been wasted. The Service Provider track would have been so much easier, with vastly less time having to rebuild shit from the start. It does not help that I am tired and a bit grumpy. Had a really crap night, went to sleep at about 11, got woken up at about 3am, and ended up getting up at about 4:30am and went downstairs to read (the ISE book above).

But sometimes you gotta take the rough with the smooth, and accept that studying does have it's pain-in-the-arse moments.

It's now just before 4pm in the afternoon and I am yawning my head off.

Anyway, in part 2 I will attempt to connect my 3750-X, and the Wifi, up to ISE and play around with some of the different options available - all cribbed from the ISE book at the top of this post, A: because it's a good book and B: because I am not feeling inventive enough to dive in.

Catch you soon, maybe once I am feeling a little brighter.

CCIE Security lab: IPS Part 2 - Oh, you motherf-IPS!

I posted yesterday about the IPS, in that it had a tendency to go to sleep on me, and not wake up. However, the IPS is a pretty big part of the CCIE Security lab, so it needs to be working! Through the power of the internet, it turns out that this is not an uncommon issue.

This guy is also working towards his CCIE Security, so follow him on Twitter.

So I started again from scratch, new source, followed the IPS creation docs (see the cznetlab link from yesterday), and everything booted up.

So I ran the setup:
sensor# setup


    --- Basic Setup ---

    --- System Configuration Dialog ---

At any point you may enter a question mark '?' for help.
User ctrl-c to abort configuration dialog at any prompt.
Default settings are in square brackets '[]'.



Current time: Wed May  4 09:45:54 2016

Setup Configuration last modified: Wed May 04 09:45:35 2016

Enter host name[sensor]: IPS-4240
Enter IP interface[192.168.1.2/24,192.168.1.1]: 10.1.4.155/24,10.1.4.254
Modify current access list?[no]: yes
Current access list entries:
  No entries
Permit: 10.1.4.0/24
Permit: 10.1.20.0/24
Permit: 
Use DNS server for Global Correlation?[no]: 
Use HTTP proxy server for Global Correlation?[no]: 
Modify system clock settings?[no]: 
Participation in the SensorBase Network allows Cisco to
collect aggregated statistics about traffic sent to your IPS.
SensorBase Network Participation level?[off]: 

The following configuration was entered.

service host
network-settings
host-ip 10.1.4.155/24,10.1.4.254
host-name IPS-4240
telnet-option disabled
access-list 10.1.4.0/24 
access-list 10.1.20.0/24 
ftp-timeout 300
no login-banner-text
dns-primary-server disabled
dns-secondary-server disabled
dns-tertiary-server disabled
http-proxy no-proxy
exit
time-zone-settings
offset 0
standard-time-zone-name UTC
exit
summertime-option disabled
ntp-option disabled
exit
service global-correlation
network-participation off
exit


[0] Go to the command prompt without saving this config.
[1] Return to setup without saving this config.
[2] Save this configuration and exit setup.
[3] Continue to Advanced setup.

Enter your selection[3]: 2
Warning: DNS or HTTP proxy is required for global correlation inspection and reputation filtering, but no DNS or proxy servers are defined.

--- Configuration Saved ---

Complete the advanced setup using CLI or IDM.
To use IDM,point your web browser at https://.

sensor#
All looked good. I switched to non-TLS, and IDM started to load... then hung. Again the IPS won't communicate with anything else.

So I get another IPS-4240 source, and the same things happens again. This is really starting to piss me off now.

Oddly, it only seems to crap out once I start to use the GUI, so could this be the issue? Am I destined know IPS purely by the CLI? That's no bad thing. So let's see how far I can go in the CLI. Starting by creating some users. Thankfully the IPS supports context sensitive help, and there is a username command:
IPS-4240(config)# username ipsadmin privilege administrator password Admin1234
IPS-4240(config)# username ipsoper privilege operator password Oper1234
IPS-4240(config)# username ipsview privilege viewer password View1234
IPS-4240(config)# 
That was a nice, easy start. The rest of the cool stuff lives under the "service command":
IPS-4240(config)# service ?
aaa                            Enter configuration mode for AAA options.
analysis-engine                Enter configuration mode for global analysis engine options.
anomaly-detection              Enter configuration mode for anomaly-detection.
authentication                 Enter configuration mode for user authentication options.
event-action-rules             Enter configuration mode for the event action rules.
external-product-interface     Enter configuration mode for the interfaces to external products.
global-correlation             Enter configuration mode for global correlation configuration.
health-monitor                 Enter configuration mode for health and security monitoring.
host                           Enter configuration mode for host configuration.
interface                      Enter configuration mode for interface configuration.
logger                         Enter configuration mode for debug logger.
network-access                 Enter configuration mode for the network access controller.
notification                   Enter configuration mode for the notification application.
signature-definition           Enter configuration mode for the signature definition.
ssh-known-hosts                Enter configuration mode for configuring SSH known hosts.
trusted-certificates           Enter configuration mode for configuring trusted certificates.
web-server                     Enter configuration mode for the web server application.
IPS-4240(config)# service 
Let's try and create a new signature. This will have some basic goals. It'll produce a high-severity alert on matches to tcp port 93. I kind of stumbled my way through, so have cleaned it up a bit:
IPS-4240(config)# service signature-definition sig2
Editing new instance sig2.

IPS-4240(config-sig)# 
IPS-4240(config-sig)# signatures ?
<1000-65000>     
IPS-4240(config-sig)# signatures 65000 ?
<0-255>     
IPS-4240(config-sig)# signatures 65000 0
IPS-4240(config-sig-sig)# alert-severity ?
high              Dangerous Alert.
medium            Medium level alert
low               Low level alert
informational     Informational alert.
IPS-4240(config-sig-sig)# alert-severity high
IPS-4240(config-sig-sig)# engine atomic-ip
IPS-4240(config-sig-sig-ato)# ?
default                          
event-action                     
exit                             
fragment-status                  
no                               
show                             
specify-ip-addr-options          
specify-ip-header-length         
specify-ip-id                    
specify-ip-option-inspection     
specify-ip-payload-length        
specify-ip-tos                   
specify-ip-total-length          
specify-ip-ttl                   
specify-ip-version               
specify-l4-protocol              
swap-attacker-victim             
IPS-4240(config-sig-sig-ato)# event-action produce-alert 
IPS-4240(config-sig-sig-ato)# specify-l4-protocol yes
IPS-4240(config-sig-sig-ato-yes)# l4-protocol tcp
IPS-4240(config-sig-sig-ato-yes-tcp)# exit
Error: /tcp/tcp-flags/ -- the value is empty and has no default
/tcp/tcp-mask/ -- the value is empty and has no default

% Please answer 'yes' or 'no'. no]: no tcp-flags
Would you like to exit anyway?[no]: no 
IPS-4240(config-sig-sig-ato-yes-tcp)# no tcp-flags 
IPS-4240(config-sig-sig-ato-yes-tcp)# no tcp-mask
IPS-4240(config-sig-sig-ato-yes-tcp)# specify-dst-port yes 
IPS-4240(config-sig-sig-ato-yes-tcp-yes)# dst-port 93
IPS-4240(config-sig-sig-ato-yes-tcp-yes)# exit
IPS-4240(config-sig-sig-ato-yes-tcp)# exit
IPS-4240(config-sig-sig-ato-yes)# exit
IPS-4240(config-sig-sig-ato)# exit
IPS-4240(config-sig-sig)# exit
Apply Changes?[yes]: yes 
IPS-4240(config)# 
So, that took a fair amount of time, so I thought I'd see if I could access it by the IDM, just in case I wasn't waiting long enough after booting. But even without trying IDM, I had still lost contact with the network:
IPS-4240# ping 10.1.4.254
PING 10.1.4.254 (10.1.4.254): 56 data bytes

--- 10.1.4.254 ping statistics ---
4 packets transmitted, 0 packets received, 100% packet loss
IPS-4240# 
Arse.

This is going to make using the IPS as an IPS so much harder!

Broadening the Google search I can across these posts:

https://supportforums.cisco.com/discussion/12207411/ips-70-gns3
https://gns3.com/qa/ips-7-network-connection-refused

Both have a similar issue (Connection Refused) - but that's through Telnet, whereas I would not see this on the console. The proposed fix is this though:
Qemu Options: -smbios type=1,product=IPS-4240,version=1.0,serial=12345789012,uuid=E0A32395-8DFE-D511-8C31-001FC641BA6B,sku=011,family=IPS-4240
The existing UNL template can be amended to achieve this quite easily.

So let's give this a go!

I edited the template, deleted and readded the IPS, fired it up, reconfigured it, and....

Cisco IPS on UNetLab not stable

Yep. It all stops again.

So I rebooted. EVERYTHING. All nodes were stopped. I turned the oven on (not related, I'm just hungry), UNL got rebooted, I closed the lab and reopened it, and things were started again.

So, what do you reckon?

Did it work?

Actually, I think it might have done. IDM has loaded, and the ping seems solid:

Cisco IPS on UNetLab nice and stable


So, for those having the same issue at home, just a little recap (some steps may not be needed, but this is what has worked for me tonight):

Turn off all nodes
Edit the template file: /opt/unetlab/html/templates/cips.php
Use this code:
<?php
# vim: syntax=php tabstop=4 softtabstop=0 noexpandtab laststatus=1 ruler

/**
 * html/templates/cips.php
 *
 * cips template for UNetLab.
 *
 * LICENSE:
 *
 * This file is part of UNetLab (Unified Networking Lab).
 *
 * UNetLab is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * UNetLab is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with UNetLab.If not, see .
 *
 * @author Andrea Dainese 
 * @copyright 2014-2016 Andrea Dainese
 * @license http://www.gnu.org/licenses/gpl.html
 * @link http://www.unetlab.com/
 * @version 20151116
 */

$p['type'] = 'qemu';
$p['name'] = 'IPS'; 
$p['icon'] = 'Network Analyzer.png';
$p['cpu'] = 1;
$p['ram'] = 2048; 
$p['ethernet'] = 5; 
$p['console'] = 'telnet'; 
$p['qemu_arch'] = 'i386';
$p['qemu_version'] = '1.3.1';
$p['qemu_options'] = '-machine type=pc-1.0 -serial mon:stdio -nographic -nodefconfig -nodefaults -rtc base=utc -no-shutdown -boot order=c -smbios type=1,product=IPS-4240/4255,version=1.0,serial=12345789012,uuid=E0A32395-8DFE-D511-8C31-001FC641BA6B,sku=011,family=IPS-4240/4255';
?>
Save it
Reboot UNL (completely)
Start things up again.

Hopefully it will work for you as well!

This is the only time I have been able to get into IDM, and so far (all 12 minutes), it has been stable!

EDIT: Make that 17 minutes! Wooo Hooo!

CCIE Security lab: IPS Part 1 - Wake up IPS, why are you sleeping?

Man, I hate Java. It sucks. It gets updated due to Security issues, and access to ASA and IPS GUIs breaks. So you have to either stay with the security issues and not upgrade, or lose access to your hardware. It sucks.

That said, it does mean that I can ditch the GUI and learn the IPS CLI better! You know, silver lining and all that jazz.

OK, so the easiest way to get up and running with the IPS is to use the "setup" command. Or you can find this useful command out later, and do it the hard way, like I did, but I got there in the end:
IDS-4240# conf t
IDS-4240(config)# service host
IDS-4240(config-hos)# network-settings 
IDS-4240(config-hos-net)# host-ip 10.1.4.155/24,10.1.4.254
IDS-4240(config-hos-net)# telnet-option enab
IDS-4240(config-hos-net)# exit
IDS-4240(config-hos)# show settings
   network-settings
   -----------------------------------------------
      host-ip: 10.1.4.155/24,10.1.4.254 default: 192.168.1.2/24,192.168.1.1
      host-name: IDS-4240 default: sensor
      telnet-option: enabled default: disabled
      access-list (min: 0, max: 512, current: 2)
      -----------------------------------------------
         network-address: 0.0.0.0/0
         -----------------------------------------------
         network-address: 192.168.1.0/24
         -----------------------------------------------
      -----------------------------------------------
      ftp-timeout: 300 seconds 
      login-banner-text:  
      dns-primary-server
IDS-4240(config-hos)# exit
Apply Changes?[yes]: yes 
Warning: DNS or HTTP proxy is required for global correlation inspection and reputation filtering, but no DNS or proxy servers are defined.
IDS-4240(config)# 
IDS-4240# ping 10.1.4.254
PING 10.1.4.254 (10.1.4.254): 56 data bytes
64 bytes from 10.1.4.254: icmp_seq=0 ttl=255 time=27.0 ms
64 bytes from 10.1.4.254: icmp_seq=1 ttl=255 time=5.2 ms
IDS-4240#
I needed to add a couple of ACLs, and we do that this way:
IDS-4240(config)# service host
IDS-4240(config-hos)#network-settings
IDS-4240(config-hos-net)# access-list 10.1.20.0/24
IDS-4240(config-hos-net)# access-list 10.1.4.0/24
IDS-4240(config-hos-net)# exit
IDS-4240(config-hos)#exit
If you want to run the IDM (the easy way), then you'll need to create an exception in Java for the http site, then turn off TLS (and props to CZNetlab for the tips):
IDS-4240(config)# service web-server
IDS-4240(config-web)# enable-tls false
IDS-4240(config-web)# port 80
IDS-4240(config-web)# ex
Apply Changes?[yes]: yes 
IDS-4240(config)# exit
We lose security, but gain accessibility. But it's a lab, so I guess thats OK. Oh, wait, it's a security exam though.... I won't tell if you won't.

Right, so what can we do now? Well, we need to do a few things:
  1. Set up VLAN-pairs for monitoring
  2. Set up some custom rules
  3. Set up a shun-list that can be used by the vWLC
This would be easier in the GUI, and it would also be a lot easier if the IPS was more stable. But it feels like it goes to sleep and does not wake up again. The IPS has been reset (rebooted), and UNetLab has been rebooted as well. But the IPS just does not seem to want to play ball for very long.

Cisco IPS on UNetLab not stable


Cisco IPS on UNetLab not stable

It hangs at 51%, and the pings fail:
IDS-4240# ping 10.1.4.254
PING 10.1.4.254 (10.1.4.254): 56 data bytes

--- 10.1.4.254 ping statistics ---
4 packets transmitted, 0 packets received, 100% packet loss
IDS-4240# ping 10.1.4.1
PING 10.1.4.1 (10.1.4.1): 56 data bytes

--- 10.1.4.1 ping statistics ---
4 packets transmitted, 0 packets received, 100% packet loss
IDS-4240# 
Even with doubling the memory, the same issue exists. I still have console access, so can set up everything I need to via the command line, but when it comes to testing it, I'll be shit out of luck at the moment as connectivity will drop.

Other devices are fine though, so it looks very much like its confined to the IPS.

Well, I am off to the drawing board (and the forum). If anyone has any ideas, please do post them below!